@asdp/ferryui 0.1.22-dev.8576 → 0.1.22-dev.8583
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.d.mts +19 -2
- package/dist/index.d.ts +19 -2
- package/dist/index.js +106 -80
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +106 -80
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -2
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ModalIllustration/ModalIllustration.tsx","../src/components/ModalIllustration/presets.ts","../src/components/CarouselWithCustomNav/CarouselWithCustomNav.tsx","../src/components/CardPromo/CardPromo.tsx","../src/components/CardBanner/CardBanner.tsx","../src/hooks/useWindowSize.ts","../src/constants/generated/tokens.ts","../src/constants/generated/tokensV2.ts","../src/constants/brandColors.ts","../src/constants/designTokens.ts","../src/constants/themes.ts","../src/components/CardTicket/CardTicket.tsx","../src/components/BackgroundTicketCard/BackgroundTicketCard.tsx","../src/components/BackgroundTicketCard/BackgroundTicketCardVertical.tsx","../src/components/CardServiceMenu/CardServiceMenu.tsx","../src/components/InputDynamic/DatePickerInput.tsx","../src/components/InputDynamic/InputDynamic.tsx","../src/components/InputDynamic/constants.ts","../src/components/CardTicketSearch/CardTicketSearch.constants.ts","../src/components/CardTicketSearch/CardTicketSearch.tsx","../src/components/CardTicketSearchSummary/CardTicketSearchSummary.constants.ts","../src/components/CardTicketSearchSummary/CardTicketSearchSummary.tsx","../src/components/ModalSearchHarbor/ModalSearchHarbor.tsx","../src/components/ModalSelectDate/ModalSelectDate.tsx","../src/components/ModalService/ModalService.tsx","../src/components/ModalTotalPassengers/constants.ts","../src/components/ModalTotalPassengers/ModalTotalPassengers.tsx","../src/components/ModalTypeOfService/ModalTypeOfService.tsx","../src/components/ModalTypeOfService/constants.ts","../src/components/SortMenu/SortMenu.constants.ts","../src/components/SortMenu/SortMenu.tsx","../src/components/ModalFilterTicket/ModalFilterTicket.constants.ts","../src/components/ModalFilterTicket/ModalFilterTicket.tsx","../src/components/DateFilter/DateFilter.constants.ts","../src/components/DateFilter/DateFilter.tsx","../src/components/ModalSearchTicket/ModalSearchTicket.constants.ts","../src/components/ModalSearchTicket/ModalSearchTicket.tsx","../src/components/Stepper/Stepper.tsx","../src/components/CardOrdererInfo/CardOrdererInfo.tsx","../src/components/ModalListPassenger/ModalListPassenger.tsx","../src/components/ModalPassengerForm/ModalPassengerForm.tsx","../src/utils/badge.ts","../src/components/CardPassengerList/CardPassengerList.tsx","../src/components/CardVehicleDetail/CardVehicleDetail.tsx","../src/components/CardVehicleOwnerForm/CardVehicleOwnerForm.tsx","../src/components/CardBookingTicket/CardBookingTicket.tsx","../src/components/CardFAQ/CardFAQ.tsx","../src/components/CardAddon/CardAddon.tsx","../src/components/CardMealCatalog/CardMealCatalog.tsx","../src/components/CardReview/CardReview.tsx","../src/components/CardReviewPassenger/CardReviewPassenger.tsx","../src/components/CardPriceDetails/PriceDetailsTerms.tsx","../src/components/CardPriceDetails/CardPriceDetails.tsx","../src/components/CardPaymentMethodList/CardPaymentMethodList.tsx","../src/components/CardPaymentGuide/CardPaymentGuide.tsx","../src/components/CardPaymentInfo/CardPaymentInfo.tsx","../src/components/CardStatusOrder/CardStatusOrder.tsx","../src/components/ModalPriceDetail/ModalPriceDetail.tsx","../src/components/CardProfileMenu/CardProfileMenu.tsx"],"names":["makeStyles","tokens","jsx","Dialog","DialogSurface","DialogBody","DialogTitle","DialogContent","jsxs","Body1","Button","useStyles","shorthands","useState","useCallback","Carousel","mergeClasses","CarouselViewport","CarouselSlider","CarouselNav","CarouselNavButton","CarouselCard","Skeleton","SkeletonItem","Row","Col","Subtitle2","useEffect","brandColors","lightModeColors","createLightTheme","createDarkTheme","Card","Tooltip","Badge","Icon","Visible","Caption1","Title2","Caption2","Divider","Title3","Caption1Strong","React","Fragment","forwardRef","Popover","PopoverTrigger","Input","PopoverSurface","Calendar","PhoneInputComponent","useRef","hasError","otpIndex","phoneValue","Textarea","Select","Switch","RadioGroup","Radio","Checkbox","typographyStyles","Controller","Field","Label","Text","useForm","useWatch","DEFAULT_LABELS","Body1Strong","useMemo","moment","MessageBar","MessageBarBody","Accordion","AccordionItem","AccordionHeader","AccordionPanel","Menu","MenuTrigger","MenuPopover","MenuList","Range","DialogActions","Caption2Strong","Subtitle1","Body1Stronger","Caption1Stronger","SubtractRegular","AddRegular","DeleteRegular","Display","InfoRegular","Image","Link","Title1","DialogTrigger","TabList","Tab","Body2"],"mappings":"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","file":"index.js","sourcesContent":["import React, { ReactNode } from 'react';\nimport {\n Body1,\n Button,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n makeStyles,\n tokens,\n} from '@fluentui/react-components';\n\nconst useStyles = makeStyles({\n dialogSurface: {\n maxWidth: '600px',\n width: '100%',\n },\n iconContainer: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: tokens.spacingVerticalL,\n textAlign: 'center',\n paddingTop: tokens.spacingVerticalL,\n paddingBottom: tokens.spacingVerticalL,\n },\n image: {\n maxWidth: '100%',\n height: 'auto',\n },\n buttonContainer: {\n display: 'flex',\n width: '100%',\n gap: tokens.spacingHorizontalM,\n },\n});\n\nexport interface ModalIllustrationButton {\n /**\n * Button text\n */\n text: string;\n \n /**\n * Button click handler\n */\n onClick: () => void;\n \n /**\n * Button appearance\n * @default \"primary\"\n */\n appearance?: 'primary' | 'outline' | 'secondary' | 'subtle' | 'transparent';\n}\n\nexport interface ModalIllustrationProps {\n /**\n * Whether the modal is open\n */\n open: boolean;\n \n /**\n * Callback when modal should close\n */\n onClose: () => void;\n \n /**\n * Modal title\n */\n title: string;\n \n /**\n * Modal message content\n * Can be a string or React node for more complex content\n */\n message: string | ReactNode;\n \n /**\n * Image source URL\n * @default \"/assets/images/illustrations/radius.svg\"\n * @remarks\n * When using this component in your application, ensure the asset is available at this path\n * in your public directory, or provide a custom imageSrc prop pointing to your own image.\n * The asset is included in the published package at `node_modules/@asdp/ferryui/dist/assets/images/illustrations/`\n */\n imageSrc?: string;\n \n /**\n * Image alt text\n * @default \"Illustration\"\n */\n imageAlt?: string;\n \n /**\n * Image width\n * @default 361\n */\n imageWidth?: number;\n \n /**\n * Image height\n * @default 203\n */\n imageHeight?: number;\n \n /**\n * Primary button configuration\n */\n primaryButton: ModalIllustrationButton;\n \n /**\n * Optional secondary button configuration\n * If provided, buttons will be displayed side by side\n */\n secondaryButton?: ModalIllustrationButton;\n}\n\nexport const ModalIllustration: React.FC<ModalIllustrationProps> = ({\n open,\n onClose,\n title,\n message,\n imageSrc = '/assets/images/illustrations/radius.svg',\n imageAlt = 'Illustration',\n imageWidth = 361,\n imageHeight = 203,\n primaryButton,\n secondaryButton,\n}) => {\n const styles = useStyles();\n\n return (\n <Dialog open={open} onOpenChange={(_, data) => !data.open && onClose()} modalType=\"modal\">\n <DialogSurface className={styles.dialogSurface}>\n <DialogBody>\n <DialogTitle>{title}</DialogTitle>\n <DialogContent>\n <div className={styles.iconContainer}>\n <img\n src={imageSrc}\n alt={imageAlt}\n width={imageWidth}\n height={imageHeight}\n className={styles.image}\n />\n {typeof message === 'string' ? (\n <Body1 style={{ textAlign: 'center' }}>{message}</Body1>\n ) : (\n message\n )}\n </div>\n <div className={styles.buttonContainer}>\n <Button\n style={{ width: '100%' }}\n type=\"button\"\n appearance={primaryButton.appearance || 'primary'}\n onClick={primaryButton.onClick}\n >\n {primaryButton.text}\n </Button>\n {secondaryButton && (\n <Button\n style={{ width: '100%' }}\n type=\"button\"\n appearance={secondaryButton.appearance || 'outline'}\n onClick={secondaryButton.onClick}\n >\n {secondaryButton.text}\n </Button>\n )}\n </div>\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n\nexport default ModalIllustration;\n","import { ModalIllustrationProps } from './ModalIllustration';\n\n/**\n * Preset configurations for common modal use cases\n */\nexport const MODAL_PRESETS = {\n /**\n * Modal for radius/location restriction\n */\n RADIUS: {\n title: 'Anda berada di luar area pemesanan',\n message: 'Pemesanan tiket tidak dapat dilakukan dari lokasi Anda saat ini. Fitur pembatasan wilayah sedang aktif untuk mencegah pemesanan tidak sah.',\n imageSrc: '/assets/images/illustrations/radius.svg',\n imageAlt: 'Radius Limitation Illustration',\n },\n \n /**\n * Modal for expired session\n */\n SESSION_EXPIRED: {\n title: 'Sesi anda telah berakhir',\n message: 'Waktu sesi Anda telah habis untuk alasan keamanan. Silakan klik tombol dibawah untuk masuk kembali.',\n imageSrc: '/assets/images/illustrations/sessionexp.svg',\n imageAlt: 'Session Expired Illustration',\n },\n \n /**\n * Modal for purchase period expired\n */\n PURCHASE_PERIOD_EXPIRED: {\n title: 'Waktu pembelian telah berakhir',\n message: 'Pemesanan tiket ditutup 1 jam sebelum jadwal keberangkatan. Silakan pilih jadwal keberangkatan lain yang masih tersedia.',\n imageSrc: '/assets/images/illustrations/pay.svg',\n imageAlt: 'Purchase Period Expired Illustration',\n },\n \n /**\n * Modal for transaction limit reached\n */\n TRANSACTION_LIMIT: {\n title: 'Anda mencapai batas transaksi tertunda',\n message: 'Anda telah mencapai batas transaksi tertunda. Pemesanan dapat dilakukan kembali setelah transaksi sebelumnya diselesaikan.',\n imageSrc: '/assets/images/illustrations/mobile-pay.svg',\n imageAlt: 'Transaction Limit Illustration',\n },\n} as const;\n\n/**\n * Type for preset keys\n */\nexport type ModalPresetKey = keyof typeof MODAL_PRESETS;\n\n/**\n * Helper function to get preset configuration\n */\nexport const getModalPreset = (presetKey: ModalPresetKey): Partial<ModalIllustrationProps> => {\n return MODAL_PRESETS[presetKey];\n};\n","import React, { ReactNode, useCallback, useEffect, useRef, useState } from 'react';\nimport {\n Carousel,\n CarouselAnnouncerFunction,\n CarouselNav,\n CarouselNavButton,\n CarouselSlider,\n CarouselViewport,\n makeStyles,\n mergeClasses,\n shorthands,\n tokens,\n} from '@fluentui/react-components';\n\nconst useStyles = makeStyles({\n carousel: {},\n customCarouselNav: {\n display: 'flex',\n gap: tokens.spacingHorizontalXS,\n justifyContent: 'center',\n alignItems: 'center',\n ...shorthands.padding(tokens.spacingVerticalS, tokens.spacingVerticalM),\n borderRadius: tokens.borderRadiusCircular,\n },\n carouselNavButton: {\n '& button': {\n padding: 0,\n marginInline: '0px',\n width: '45px',\n height: '16px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: 'transform 0.4s cubic-bezier(0.4, 0, 0.2, 1)',\n '@media (max-width: 425px)': {\n width: '35px',\n height: '10px',\n },\n },\n '& button::after': {\n content: '\"\"',\n transition:\n 'all 0.4s cubic-bezier(0.4, 0, 0.2, 1), transform 0.4s cubic-bezier(0.4, 0, 0.2, 1)',\n },\n \"& button[aria-selected='true']::after\": {\n backgroundImage: 'linear-gradient(to right,#00B3BD, #8DC63F)',\n width: '55px',\n height: '16px',\n borderRadius: tokens.borderRadiusCircular,\n transform: 'translateX(0)',\n '@media (max-width: 425px)': {\n width: '25px',\n height: '10px',\n },\n '@media (max-width: 768px)': {\n width: '35px',\n height: '13px',\n },\n },\n \"& button[aria-selected='false']::after\": {\n backgroundColor: '#D1D1D1',\n width: '15px',\n height: '15px',\n opacity: '90%',\n transform: 'scale(0.9)',\n '@media (max-width: 425px)': {\n width: '10px',\n height: '10px',\n },\n },\n },\n});\n\nconst defaultAnnouncement: CarouselAnnouncerFunction = (index: number, totalSlides: number) => {\n return `Carousel slide ${index + 1} of ${totalSlides}`;\n};\n\nexport interface CarouselWithCustomNavProps {\n /**\n * Carousel items/children\n */\n children: ReactNode;\n \n /**\n * Whether carousel should loop (circular)\n * @default true\n */\n circular?: boolean;\n \n /**\n * Whether carousel is draggable\n * @default true\n */\n draggable?: boolean;\n \n /**\n * Alignment of carousel items\n * @default \"start\"\n */\n align?: 'start' | 'center' | 'end';\n \n /**\n * Whether to remove whitespace between items\n * @default false\n */\n whitespace?: boolean;\n \n /**\n * Announcement function for accessibility\n */\n announcement?: CarouselAnnouncerFunction;\n \n /**\n * Active index (controlled)\n */\n activeIndex?: number;\n \n /**\n * Callback when active index changes\n */\n onActiveIndexChange?: (index: number) => void;\n \n /**\n * ARIA label for the carousel slider\n * @default \"Carousel\"\n */\n ariaLabel?: string;\n \n /**\n * Whether to use dark background for navigation\n * @default true\n */\n darkNavBackground?: boolean;\n \n /**\n * Additional className for carousel container\n */\n className?: string;\n \n /**\n * Whether to enable card focus mode\n * @default false\n */\n cardFocus?: boolean;\n}\n\nexport const CarouselWithCustomNav: React.FC<CarouselWithCustomNavProps> = ({\n children,\n circular = true,\n draggable = true,\n align = 'start',\n whitespace = false,\n announcement = defaultAnnouncement,\n activeIndex: controlledIndex,\n onActiveIndexChange,\n ariaLabel = 'Carousel',\n darkNavBackground = true,\n className,\n cardFocus = false,\n}) => {\n const styles = useStyles();\n const [internalIndex, setInternalIndex] = useState(0);\n \n // Use controlled index if provided, otherwise use internal state\n const activeIndex = controlledIndex !== undefined ? controlledIndex : internalIndex;\n \n const handleIndexChange = useCallback((index: number) => {\n if (controlledIndex === undefined) {\n setInternalIndex(index);\n }\n onActiveIndexChange?.(index);\n }, [controlledIndex, onActiveIndexChange]);\n\n return (\n <Carousel\n circular={circular}\n draggable={draggable}\n align={align}\n className={mergeClasses(styles.carousel, className)}\n whitespace={whitespace}\n announcement={announcement}\n activeIndex={activeIndex}\n onActiveIndexChange={(_, data) => handleIndexChange(data.index)}\n >\n <CarouselViewport>\n <CarouselSlider\n cardFocus={cardFocus}\n aria-label={ariaLabel}\n >\n {children}\n </CarouselSlider>\n </CarouselViewport>\n <CarouselNav\n style={{\n backgroundColor: darkNavBackground\n ? tokens.colorSubtleBackgroundInverted\n : tokens.colorSubtleBackground,\n marginTop: tokens.spacingVerticalXL,\n }}\n appearance=\"brand\"\n className={styles.carouselNavButton}\n >\n {index => <CarouselNavButton aria-label={`Slide ${index + 1}`} />}\n </CarouselNav>\n </Carousel>\n );\n};\n\nexport default CarouselWithCustomNav;\n","import React from 'react';\nimport {\n Body1,\n Button,\n CarouselCard,\n makeStyles,\n mergeClasses,\n Skeleton,\n SkeletonItem,\n Subtitle2,\n tokens,\n} from '@fluentui/react-components';\nimport { Col, Row } from 'react-grid-system';\n\nconst useStyles = makeStyles({\n actionCard: {\n borderRadius: tokens.borderRadiusXLarge,\n overflow: 'hidden',\n textAlign: 'center',\n width: '360px',\n maxWidth: '360px',\n margin: '0px 6px',\n boxShadow: tokens.shadow4,\n backgroundColor: tokens.colorNeutralForegroundInverted,\n '@media (max-width: 1024px)': {\n width: '200px',\n maxWidth: '200px',\n },\n '@media (max-width: 768px)': {\n width: '190px',\n maxWidth: '190px',\n },\n '@media (max-width: 480px)': {\n width: '180px',\n maxWidth: '180px',\n margin: '0px 4px',\n },\n },\n imageContainer: {\n position: 'relative',\n width: '100%',\n height: '202px',\n overflow: 'hidden',\n '@media (max-width: 1024px)': {\n height: '120px',\n },\n '@media (max-width: 768px)': {\n height: '110px',\n },\n '@media (max-width: 480px)': {\n height: '100px',\n },\n },\n image: {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n objectPosition: 'center',\n },\n info: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n alignContent: 'center',\n justifyContent: 'space-between',\n gap: tokens.spacingVerticalSNudge,\n '@media (max-width: 1024px)': {\n padding: tokens.spacingHorizontalSNudge,\n gap: tokens.spacingVerticalSNudge,\n },\n '@media (max-width: 768px)': {\n padding: tokens.spacingVerticalS,\n gap: tokens.spacingVerticalXS,\n },\n '@media (max-width: 480px)': {\n padding: tokens.spacingVerticalSNudge,\n gap: tokens.spacingVerticalXS,\n },\n },\n infoWrapper: {\n padding: tokens.spacingHorizontalM,\n },\n buttonWrapper:{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n title:{\n lineClamp: 2,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n display: '-webkit-box',\n WebkitLineClamp: 2,\n WebkitBoxOrient: 'vertical',\n }\n});\n\nexport interface CardPromoProps {\n /**\n * Image URL for the promo\n */\n imageUrl: string;\n \n /**\n * Promo title/heading\n */\n title: string;\n \n /**\n * Promo description/subtitle\n */\n description: string;\n \n /**\n * Image alt text\n * @default \"Promo image\"\n */\n imageAlt?: string;\n \n /**\n * Index of the card (for accessibility)\n */\n index?: number;\n \n /**\n * Total number of cards (for accessibility)\n */\n totalCards?: number;\n \n /**\n * Click handler for the card\n */\n onClick?: () => void;\n\n /**\n * Show Button\n */\n showButton?: boolean;\n\n /**\n * Button Text\n */\n buttonText?: string;\n\n /**\n * custom className\n */\n className?: string;\n\n /**\n * custom image className\n */\n imageClassName?: string;\n\n /**\n * custom description className\n */\n descriptionClassName?: string;\n\n /**\n * Loading state\n */\n isLoading?: boolean;\n\n /**\n * Image Only\n */\n imageOnly?: boolean;\n}\n\nexport const CardPromo: React.FC<CardPromoProps> = ({\n imageUrl,\n title,\n description,\n imageAlt = 'Promo image',\n index = 0,\n totalCards,\n onClick,\n showButton = false,\n buttonText = 'Lihat Detail',\n className,\n imageClassName,\n descriptionClassName,\n isLoading = false,\n imageOnly = false,\n}) => {\n const classes = useStyles();\n\n const ariaLabel = totalCards\n ? `Card ${index + 1} of ${totalCards}`\n : `Promo card ${index + 1}`;\n\n if (isLoading) {\n return (\n <CarouselCard\n autoSize\n className={mergeClasses(classes.actionCard, className)}\n style={{ cursor: 'default' }}\n >\n <Skeleton aria-label=\"Loading content\">\n <div className={mergeClasses(classes.imageContainer, imageClassName)}>\n <SkeletonItem shape=\"rectangle\" style={{ width: '100%', height: '100%' }} />\n </div>\n {!imageOnly && (\n <Row className={classes.infoWrapper}>\n <Col className={classes.info} xs={12}>\n <SkeletonItem style={{ width: '70%', height: '20px' }} />\n <SkeletonItem style={{ width: '90%', height: '16px' }} />\n <SkeletonItem style={{ width: '80%', height: '16px' }} />\n </Col>\n </Row>\n )}\n </Skeleton>\n </CarouselCard>\n );\n }\n\n return (\n <CarouselCard\n autoSize\n className={mergeClasses(classes.actionCard, className)}\n aria-label={ariaLabel}\n onClick={onClick}\n style={{ cursor: onClick ? 'pointer' : 'default' }}\n >\n <div className={mergeClasses(classes.imageContainer, imageClassName)}>\n <img\n className={classes.image}\n src={imageUrl}\n role=\"presentation\"\n alt={imageAlt}\n />\n </div>\n {!imageOnly && (\n <Row className={classes.infoWrapper}>\n <Col className={classes.info} xs={12} sm={12} md={12} lg={showButton ? 8 : 12} xl={showButton ? 8 : 12} xxl={showButton ? 8 : 12} xxxl={showButton ? 8 : 12}>\n <Subtitle2 className={classes.title}>{title}</Subtitle2>\n <Body1 className={mergeClasses(classes.title, descriptionClassName)}>{description}</Body1>\n </Col>\n {showButton && (\n <Col className={classes.buttonWrapper} xs={12} sm={12} md={12} lg={showButton ? 4 : 0} xl={showButton ? 4 : 0} xxl={showButton ? 4 : 0} xxxl={showButton ? 4 : 0}>\n <Button\n appearance=\"primary\"\n size=\"small\"\n onClick={onClick}\n style={{ cursor: onClick ? 'pointer' : 'default' }}\n shape='circular'\n >\n {buttonText}\n </Button>\n </Col>\n )}\n </Row>\n )}\n </CarouselCard>\n );\n};\n\nexport default CardPromo;\n","import React from 'react';\nimport {\n CarouselCard,\n makeStyles,\n Skeleton,\n SkeletonItem,\n tokens,\n} from '@fluentui/react-components';\n\nconst useStyles = makeStyles({\n bannerCard: {\n overflow: 'hidden',\n width: '100%',\n maxWidth: '100%',\n margin: 0,\n padding: 0,\n backgroundColor: 'transparent',\n border: 'none',\n height: '450px',\n borderRadius: tokens.borderRadiusXLarge,\n },\n bannerImage: {\n width: '100%',\n height: 'auto',\n objectFit: 'cover',\n display: 'block',\n cursor: 'pointer',\n borderRadius: tokens.borderRadiusXLarge,\n },\n});\n\nexport interface CardBannerProps {\n /**\n * Banner image URL\n */\n imageUrl: string;\n \n /**\n * Banner alt text\n */\n alt: string;\n \n /**\n * Index of the banner (for accessibility)\n */\n index?: number;\n \n /**\n * Total number of banners (for accessibility)\n */\n totalBanners?: number;\n \n /**\n * Click handler for the banner\n */\n onClick?: () => void;\n\n /**\n * Loading state\n */\n isLoading?: boolean;\n}\n\nexport const CardBanner: React.FC<CardBannerProps> = ({\n imageUrl,\n alt,\n index = 0,\n totalBanners,\n onClick,\n isLoading = false,\n}) => {\n const classes = useStyles();\n\n const ariaLabel = totalBanners\n ? `Banner ${index + 1} of ${totalBanners}`\n : `Banner ${index + 1}`;\n\n if (isLoading) {\n return (\n <CarouselCard className={classes.bannerCard}>\n <Skeleton aria-label=\"Loading banner\" style={{ width: '100%', height: '100%' }}>\n <SkeletonItem \n shape=\"rectangle\" \n style={{ \n width: '100%', \n height: '100%', \n borderRadius: tokens.borderRadiusXLarge \n }} \n />\n </Skeleton>\n </CarouselCard>\n );\n }\n\n return (\n <CarouselCard\n className={classes.bannerCard}\n aria-label={ariaLabel}\n >\n <img\n className={classes.bannerImage}\n src={imageUrl}\n alt={alt}\n role=\"presentation\"\n onClick={onClick}\n style={{ cursor: onClick ? 'pointer' : 'default' }}\n />\n </CarouselCard>\n );\n};\n\nexport default CardBanner;\n","import { useEffect, useState } from 'react';\n\n// Hook to get window size\nexport function useWindowSize() {\n const [windowSize, setWindowSize] = useState<{ width: number; height: number }>({\n width: 0,\n height: 0,\n });\n\n useEffect(() => {\n // Handler to call on window resize\n function handleResize() {\n // Set window width/height to state\n setWindowSize({\n width: window.innerWidth,\n height: window.innerHeight,\n });\n }\n\n // Add event listener\n window.addEventListener('resize', handleResize);\n\n // Call handler right away so state gets updated with initial window size\n handleResize();\n\n // Remove event listener on cleanup\n return () => window.removeEventListener('resize', handleResize);\n }, []); // Empty array ensures that effect is only run on mount\n\n return windowSize;\n}\n","/**\n * Auto-generated Figma Tokens\n * Generated by custom build script\n * Source: tokens.json\n * DO NOT EDIT MANUALLY - Run 'npm run tokens:build' to regenerate\n */\n\n// Brand Colors (Brand-10 to Brand-160)\nexport const brandColors = {\n '10': '#000000',\n '20': '#03060e',\n '30': '#060b1c',\n '40': '#09112a',\n '50': '#0c1738',\n '60': '#122255',\n '70': '#182e71',\n '80': '#1e398d',\n '90': '#4b60a4',\n '100': '#7787bb',\n '110': '#a4afd1',\n '120': '#bac2dd',\n '130': '#d0d6e8',\n '140': '#e7e9f4',\n '150': '#fdfdff',\n '160': '#ffffff',\n};\n\n// Design System Tokens\nexport const spacing = {\n '20': 2,\n '30': 3,\n '40': 4,\n '60': 6,\n '80': 8,\n '100': 10,\n '120': 12,\n '130': 13,\n '150': 15,\n '160': 16,\n '180': 18,\n '200': 20,\n '220': 22,\n '240': 24,\n '280': 28,\n '300': 30,\n '320': 32,\n '340': 34,\n '360': 36,\n '400': 40,\n '440': 44,\n '450': 45,\n '470': 47,\n '480': 48,\n '500': 50,\n '510': 51,\n '520': 52,\n '560': 56,\n '600': 60,\n '790': 79,\n '900': 90,\n '960': 96,\n '1000': 100,\n '1050': 105,\n '1120': 112,\n '1200': 120,\n '1222': 122,\n '1360': 136,\n '1520': 152,\n '2000': 200,\n};\n\nexport const borderRadius = {\n '20': 2,\n '40': 4,\n '60': 6,\n '80': 8,\n '120': 12,\n '160': 16,\n '240': 24,\n '320': 32,\n '400': 40,\n 'Circular': 9999,\n};\n\nexport const fontSize = {\n '220': 22,\n};\n\nexport const fontWeight = {\n 'medium': 500,\n 'semibold': 600,\n 'bold': 700,\n};\n\nexport const lineHeight = {};\n\nexport const strokeWidth = {\n '10': 1,\n '15': 1.5,\n '20': 2,\n '30': 3,\n '40': 4,\n '60': 6,\n '05': 0.5,\n};\n\n// Shared Global Colors (Palettes: Secondary, Green, Blue, etc.)\nexport const sharedColors = {\n 'Shared_Dark_red_Shade_50': '#130204',\n 'Shared_Dark_red_Shade_40': '#230308',\n 'Shared_Dark_red_Shade_30': '#420610',\n 'Shared_Dark_red_Shade_20': '#590815',\n 'Shared_Dark_red_Shade_10': '#690a19',\n 'Shared_Dark_red_Primary': '#750b1c',\n 'Shared_Dark_red_Tint_10': '#861b2c',\n 'Shared_Dark_red_Tint_20': '#962f3f',\n 'Shared_Dark_red_Tint_30': '#ac4f5e',\n 'Shared_Dark_red_Tint_40': '#d69ca5',\n 'Shared_Dark_red_Tint_50': '#e9c7cd',\n 'Shared_Dark_red_Tint_60': '#f9f0f2',\n 'Shared_Burgundy_Shade_50': '#1a0607',\n 'Shared_Burgundy_Shade_40': '#310b0d',\n 'Shared_Burgundy_Shade_30': '#5c1519',\n 'Shared_Burgundy_Shade_20': '#7d1d21',\n 'Shared_Burgundy_Shade_10': '#942228',\n 'Shared_Burgundy_Primary': '#a4262c',\n 'Shared_Burgundy_Tint_10': '#af393e',\n 'Shared_Burgundy_Tint_20': '#ba4d52',\n 'Shared_Burgundy_Tint_30': '#c86c70',\n 'Shared_Burgundy_Tint_40': '#e4afb2',\n 'Shared_Burgundy_Tint_50': '#f0d3d4',\n 'Shared_Burgundy_Tint_60': '#fbf4f4',\n 'Shared_Cranberry_Shade_50': '#200205',\n 'Shared_Cranberry_Shade_40': '#3b0509',\n 'Shared_Cranberry_Shade_30': '#6e0811',\n 'Shared_Cranberry_Shade_20': '#960b18',\n 'Shared_Cranberry_Shade_10': '#b10e1c',\n 'Shared_Cranberry_Primary': '#c50f1f',\n 'Shared_Cranberry_Tint_10': '#cc2635',\n 'Shared_Cranberry_Tint_20': '#d33f4c',\n 'Shared_Cranberry_Tint_30': '#dc626d',\n 'Shared_Cranberry_Tint_40': '#eeacb2',\n 'Shared_Cranberry_Tint_50': '#f6d1d5',\n 'Shared_Cranberry_Tint_60': '#fdf3f4',\n 'Shared_Red_Shade_50': '#210809',\n 'Shared_Red_Shade_40': '#3f1011',\n 'Shared_Red_Shade_30': '#751d1f',\n 'Shared_Red_Shade_20': '#9f282b',\n 'Shared_Red_Shade_10': '#bc2f32',\n 'Shared_Red_Primary': '#d13438',\n 'Shared_Red_Tint_10': '#d7494c',\n 'Shared_Red_Tint_20': '#dc5e62',\n 'Shared_Red_Tint_30': '#e37d80',\n 'Shared_Red_Tint_40': '#f1bbbc',\n 'Shared_Red_Tint_50': '#f8dadb',\n 'Shared_Red_Tint_60': '#fdf6f6',\n 'Shared_Dark_orange_Shade_50': '#230900',\n 'Shared_Dark_orange_Shade_40': '#411200',\n 'Shared_Dark_orange_Shade_30': '#7a2101',\n 'Shared_Dark_orange_Shade_20': '#a62d01',\n 'Shared_Dark_orange_Shade_10': '#c43501',\n 'Shared_Dark_orange_Primary': '#da3b01',\n 'Shared_Dark_orange_Tint_10': '#de501c',\n 'Shared_Dark_orange_Tint_20': '#e36537',\n 'Shared_Dark_orange_Tint_30': '#e9835e',\n 'Shared_Dark_orange_Tint_40': '#f4bfab',\n 'Shared_Dark_orange_Tint_50': '#f9dcd1',\n 'Shared_Dark_orange_Tint_60': '#fdf6f3',\n 'Shared_Bronze_Shade_50': '#1b0a01',\n 'Shared_Bronze_Shade_40': '#321303',\n 'Shared_Bronze_Shade_30': '#5e2405',\n 'Shared_Bronze_Shade_20': '#7f3107',\n 'Shared_Bronze_Shade_10': '#963a08',\n 'Shared_Bronze_Primary': '#a74109',\n 'Shared_Bronze_Tint_10': '#b2521e',\n 'Shared_Bronze_Tint_20': '#bc6535',\n 'Shared_Bronze_Tint_30': '#ca8057',\n 'Shared_Bronze_Tint_40': '#e5bba4',\n 'Shared_Bronze_Tint_50': '#f1d9cc',\n 'Shared_Bronze_Tint_60': '#fbf5f2',\n 'Shared_Pumpkin_Shade_50': '#200d03',\n 'Shared_Pumpkin_Shade_40': '#3d1805',\n 'Shared_Pumpkin_Shade_30': '#712d09',\n 'Shared_Pumpkin_Shade_20': '#9a3d0c',\n 'Shared_Pumpkin_Shade_10': '#b6480e',\n 'Shared_Pumpkin_Primary': '#ca5010',\n 'Shared_Pumpkin_Tint_10': '#d06228',\n 'Shared_Pumpkin_Tint_20': '#d77440',\n 'Shared_Pumpkin_Tint_30': '#df8e64',\n 'Shared_Pumpkin_Tint_40': '#efc4ad',\n 'Shared_Pumpkin_Tint_50': '#f7dfd2',\n 'Shared_Pumpkin_Tint_60': '#fdf7f4',\n 'Shared_Orange_Shade_50': '#271002',\n 'Shared_Orange_Shade_40': '#4a1e04',\n 'Shared_Orange_Shade_30': '#8a3707',\n 'Shared_Orange_Shade_20': '#bc4b09',\n 'Shared_Orange_Shade_10': '#de590b',\n 'Shared_Orange_Primary': '#f7630c',\n 'Shared_Orange_Tint_10': '#f87528',\n 'Shared_Orange_Tint_20': '#f98845',\n 'Shared_Orange_Tint_30': '#faa06b',\n 'Shared_Orange_Tint_40': '#fdcfb4',\n 'Shared_Orange_Tint_50': '#fee5d7',\n 'Shared_Orange_Tint_60': '#fff9f5',\n 'Shared_Peach_Shade_50': '#291600',\n 'Shared_Peach_Shade_40': '#4d2a00',\n 'Shared_Peach_Shade_30': '#8f4e00',\n 'Shared_Peach_Shade_20': '#c26a00',\n 'Shared_Peach_Shade_10': '#e67e00',\n 'Shared_Peach_Primary': '#ff8c00',\n 'Shared_Peach_Tint_10': '#ff9a1f',\n 'Shared_Peach_Tint_20': '#ffa83d',\n 'Shared_Peach_Tint_30': '#ffba66',\n 'Shared_Peach_Tint_40': '#ffddb3',\n 'Shared_Peach_Tint_50': '#ffedd6',\n 'Shared_Peach_Tint_60': '#fffaf5',\n 'Shared_Marigold_Shade_50': '#251a00',\n 'Shared_Marigold_Shade_40': '#463100',\n 'Shared_Marigold_Shade_30': '#835b00',\n 'Shared_Marigold_Shade_20': '#b27c00',\n 'Shared_Marigold_Shade_10': '#d39300',\n 'Shared_Marigold_Primary': '#eaa300',\n 'Shared_Marigold_Tint_10': '#edad1c',\n 'Shared_Marigold_Tint_20': '#efb839',\n 'Shared_Marigold_Tint_30': '#f2c661',\n 'Shared_Marigold_Tint_40': '#f9e2ae',\n 'Shared_Marigold_Tint_50': '#fcefd3',\n 'Shared_Marigold_Tint_60': '#fefbf4',\n 'Shared_Yellow_Shade_50': '#282400',\n 'Shared_Yellow_Shade_40': '#4c4400',\n 'Shared_Yellow_Shade_30': '#817400',\n 'Shared_Yellow_Shade_20': '#c0ad00',\n 'Shared_Yellow_Shade_10': '#e4cc00',\n 'Shared_Yellow_Primary': '#fde300',\n 'Shared_Yellow_Tint_10': '#fde61e',\n 'Shared_Yellow_Tint_20': '#fdea3d',\n 'Shared_Yellow_Tint_30': '#feee66',\n 'Shared_Yellow_Tint_40': '#fef7b2',\n 'Shared_Yellow_Tint_50': '#fffad6',\n 'Shared_Yellow_Tint_60': '#fffef5',\n 'Shared_Gold_Shade_50': '#1f1900',\n 'Shared_Gold_Shade_40': '#3a2f00',\n 'Shared_Gold_Shade_30': '#6c5700',\n 'Shared_Gold_Shade_20': '#937700',\n 'Shared_Gold_Shade_10': '#ae8c00',\n 'Shared_Gold_Primary': '#c19c00',\n 'Shared_Gold_Tint_10': '#c8a718',\n 'Shared_Gold_Tint_20': '#d0b232',\n 'Shared_Gold_Tint_30': '#dac157',\n 'Shared_Gold_Tint_40': '#ecdfa5',\n 'Shared_Gold_Tint_50': '#f5eece',\n 'Shared_Gold_Tint_60': '#fdfbf2',\n 'Shared_Brass_Shade_50': '#181202',\n 'Shared_Brass_Shade_40': '#2e2103',\n 'Shared_Brass_Shade_30': '#553e06',\n 'Shared_Brass_Shade_20': '#745408',\n 'Shared_Brass_Shade_10': '#89640a',\n 'Shared_Brass_Primary': '#986f0b',\n 'Shared_Brass_Tint_10': '#a47d1e',\n 'Shared_Brass_Tint_20': '#b18c34',\n 'Shared_Brass_Tint_30': '#c1a256',\n 'Shared_Brass_Tint_40': '#e0cea2',\n 'Shared_Brass_Tint_50': '#efe4cb',\n 'Shared_Brass_Tint_60': '#fbf8f2',\n 'Shared_Brown_Shade_50': '#170e07',\n 'Shared_Brown_Shade_40': '#2b1a0e',\n 'Shared_Brown_Shade_30': '#50301a',\n 'Shared_Brown_Shade_20': '#6c4123',\n 'Shared_Brown_Shade_10': '#804d29',\n 'Shared_Brown_Primary': '#8e562e',\n 'Shared_Brown_Tint_10': '#9c663f',\n 'Shared_Brown_Tint_20': '#a97652',\n 'Shared_Brown_Tint_30': '#bb8f6f',\n 'Shared_Brown_Tint_40': '#ddc3b0',\n 'Shared_Brown_Tint_50': '#edded3',\n 'Shared_Brown_Tint_60': '#faf7f4',\n 'Shared_Dark_brown_Shade_50': '#0c0704',\n 'Shared_Dark_brown_Shade_40': '#170c08',\n 'Shared_Dark_brown_Shade_30': '#2b1710',\n 'Shared_Dark_brown_Shade_20': '#3a1f15',\n 'Shared_Dark_brown_Shade_10': '#452519',\n 'Shared_Dark_brown_Primary': '#4d291c',\n 'Shared_Dark_brown_Tint_10': '#623a2b',\n 'Shared_Dark_brown_Tint_20': '#784d3e',\n 'Shared_Dark_brown_Tint_30': '#946b5c',\n 'Shared_Dark_brown_Tint_40': '#caada3',\n 'Shared_Dark_brown_Tint_50': '#e3d2cb',\n 'Shared_Dark_brown_Tint_60': '#f8f3f2',\n 'Shared_Lime_Shade_50': '#121b06',\n 'Shared_Lime_Shade_40': '#23330b',\n 'Shared_Lime_Shade_30': '#405f14',\n 'Shared_Lime_Shade_20': '#57811b',\n 'Shared_Lime_Shade_10': '#689920',\n 'Shared_Lime_Primary': '#73aa24',\n 'Shared_Lime_Tint_10': '#81b437',\n 'Shared_Lime_Tint_20': '#90be4c',\n 'Shared_Lime_Tint_30': '#a4cc6c',\n 'Shared_Lime_Tint_40': '#cfe5af',\n 'Shared_Lime_Tint_50': '#e5f1d3',\n 'Shared_Lime_Tint_60': '#f8fcf4',\n 'Shared_Forest_Shade_50': '#0c1501',\n 'Shared_Forest_Shade_40': '#162702',\n 'Shared_Forest_Shade_30': '#294903',\n 'Shared_Forest_Shade_20': '#376304',\n 'Shared_Forest_Shade_10': '#427505',\n 'Shared_Forest_Primary': '#498205',\n 'Shared_Forest_Tint_10': '#599116',\n 'Shared_Forest_Tint_20': '#6ba02b',\n 'Shared_Forest_Tint_30': '#85b44c',\n 'Shared_Forest_Tint_40': '#bdd99b',\n 'Shared_Forest_Tint_50': '#dbebc7',\n 'Shared_Forest_Tint_60': '#f6faf0',\n 'Shared_Seafoam_Shade_50': '#002111',\n 'Shared_Seafoam_Shade_40': '#003d20',\n 'Shared_Seafoam_Shade_30': '#00723b',\n 'Shared_Seafoam_Shade_20': '#009b51',\n 'Shared_Seafoam_Shade_10': '#00b85f',\n 'Shared_Seafoam_Primary': '#00cc6a',\n 'Shared_Seafoam_Tint_10': '#19d279',\n 'Shared_Seafoam_Tint_20': '#34d889',\n 'Shared_Seafoam_Tint_30': '#5ae0a0',\n 'Shared_Seafoam_Tint_40': '#a8f0cd',\n 'Shared_Seafoam_Tint_50': '#cff7e4',\n 'Shared_Seafoam_Tint_60': '#f3fdf8',\n 'Shared_Light_green_Shade_50': '#031a02',\n 'Shared_Light_green_Shade_40': '#063004',\n 'Shared_Light_green_Shade_30': '#0b5a08',\n 'Shared_Light_green_Shade_20': '#0e7a0b',\n 'Shared_Light_green_Shade_10': '#11910d',\n 'Shared_Light_green_Primary': '#13a10e',\n 'Shared_Light_green_Tint_10': '#27ac22',\n 'Shared_Light_green_Tint_20': '#3db838',\n 'Shared_Light_green_Tint_30': '#5ec75a',\n 'Shared_Light_green_Tint_40': '#a7e3a5',\n 'Shared_Light_green_Tint_50': '#cef0cd',\n 'Shared_Light_green_Tint_60': '#f2fbf2',\n 'Shared_Green_Shade_50': '#031403',\n 'Shared_Green_Shade_40': '#052505',\n 'Shared_Green_Shade_30': '#094509',\n 'Shared_Green_Shade_20': '#0c5e0c',\n 'Shared_Green_Shade_10': '#0e700e',\n 'Shared_Green_Primary': '#107c10',\n 'Shared_Green_Tint_10': '#218c21',\n 'Shared_Green_Tint_20': '#359b35',\n 'Shared_Green_Tint_30': '#54b054',\n 'Shared_Green_Tint_40': '#9fd89f',\n 'Shared_Green_Tint_50': '#c9eac9',\n 'Shared_Green_Tint_60': '#f1faf1',\n 'Shared_Dark_green_Shade_50': '#021102',\n 'Shared_Dark_green_Shade_40': '#032003',\n 'Shared_Dark_green_Shade_30': '#063b06',\n 'Shared_Dark_green_Shade_20': '#085108',\n 'Shared_Dark_green_Shade_10': '#0a5f0a',\n 'Shared_Dark_green_Primary': '#0b6a0b',\n 'Shared_Dark_green_Tint_10': '#1a7c1a',\n 'Shared_Dark_green_Tint_20': '#2d8e2d',\n 'Shared_Dark_green_Tint_30': '#4da64d',\n 'Shared_Dark_green_Tint_40': '#9ad29a',\n 'Shared_Dark_green_Tint_50': '#c6e7c6',\n 'Shared_Dark_green_Tint_60': '#f0f9f0',\n 'Shared_Light_teal_Shade_50': '#001d1f',\n 'Shared_Light_teal_Shade_40': '#00373a',\n 'Shared_Light_teal_Shade_30': '#00666d',\n 'Shared_Light_teal_Shade_20': '#008b94',\n 'Shared_Light_teal_Shade_10': '#00a5af',\n 'Shared_Light_teal_Primary': '#00b7c3',\n 'Shared_Light_teal_Tint_10': '#18bfca',\n 'Shared_Light_teal_Tint_20': '#32c8d1',\n 'Shared_Light_teal_Tint_30': '#58d3db',\n 'Shared_Light_teal_Tint_40': '#a6e9ed',\n 'Shared_Light_teal_Tint_50': '#cef3f5',\n 'Shared_Light_teal_Tint_60': '#f2fcfd',\n 'Shared_Teal_Shade_50': '#001516',\n 'Shared_Teal_Shade_40': '#012728',\n 'Shared_Teal_Shade_30': '#02494c',\n 'Shared_Teal_Shade_20': '#026467',\n 'Shared_Teal_Shade_10': '#037679',\n 'Shared_Teal_Primary': '#038387',\n 'Shared_Teal_Tint_10': '#159195',\n 'Shared_Teal_Tint_20': '#2aa0a4',\n 'Shared_Teal_Tint_30': '#4cb4b7',\n 'Shared_Teal_Tint_40': '#9bd9db',\n 'Shared_Teal_Tint_50': '#c7ebec',\n 'Shared_Teal_Tint_60': '#f0fafa',\n 'Shared_Dark_teal_Shade_50': '#001010',\n 'Shared_Dark_teal_Shade_40': '#001f1f',\n 'Shared_Dark_teal_Shade_30': '#003939',\n 'Shared_Dark_teal_Shade_20': '#004e4e',\n 'Shared_Dark_teal_Shade_10': '#005c5c',\n 'Shared_Dark_teal_Primary': '#006666',\n 'Shared_Dark_teal_Tint_10': '#0e7878',\n 'Shared_Dark_teal_Tint_20': '#218b8b',\n 'Shared_Dark_teal_Tint_30': '#41a3a3',\n 'Shared_Dark_teal_Tint_40': '#92d1d1',\n 'Shared_Dark_teal_Tint_50': '#c2e7e7',\n 'Shared_Dark_teal_Tint_60': '#eff9f9',\n 'Shared_Cyan_Shade_50': '#00181e',\n 'Shared_Cyan_Shade_40': '#002e38',\n 'Shared_Cyan_Shade_30': '#005669',\n 'Shared_Cyan_Shade_20': '#00748f',\n 'Shared_Cyan_Shade_10': '#008aa9',\n 'Shared_Cyan_Primary': '#0099bc',\n 'Shared_Cyan_Tint_10': '#18a4c4',\n 'Shared_Cyan_Tint_20': '#31afcc',\n 'Shared_Cyan_Tint_30': '#56bfd7',\n 'Shared_Cyan_Tint_40': '#a4deeb',\n 'Shared_Cyan_Tint_50': '#cdedf4',\n 'Shared_Cyan_Tint_60': '#f2fafc',\n 'Shared_Steel_Shade_50': '#000f12',\n 'Shared_Steel_Shade_40': '#001b22',\n 'Shared_Steel_Shade_30': '#00333f',\n 'Shared_Steel_Shade_20': '#004555',\n 'Shared_Steel_Shade_10': '#005265',\n 'Shared_Steel_Primary': '#005b70',\n 'Shared_Steel_Tint_10': '#0f6c81',\n 'Shared_Steel_Tint_20': '#237d92',\n 'Shared_Steel_Tint_30': '#4496a9',\n 'Shared_Steel_Tint_40': '#94c8d4',\n 'Shared_Steel_Tint_50': '#c3e1e8',\n 'Shared_Steel_Tint_60': '#eff7f9',\n 'Shared_Light_blue_Shade_50': '#091823',\n 'Shared_Light_blue_Shade_40': '#112d42',\n 'Shared_Light_blue_Shade_30': '#20547c',\n 'Shared_Light_blue_Shade_20': '#2c72a8',\n 'Shared_Light_blue_Shade_10': '#3487c7',\n 'Shared_Light_blue_Primary': '#3a96dd',\n 'Shared_Light_blue_Tint_10': '#4fa1e1',\n 'Shared_Light_blue_Tint_20': '#65ade5',\n 'Shared_Light_blue_Tint_30': '#83bdeb',\n 'Shared_Light_blue_Tint_40': '#bfddf5',\n 'Shared_Light_blue_Tint_50': '#dcedfa',\n 'Shared_Light_blue_Tint_60': '#f6fafe',\n 'Shared_Blue_Shade_50': '#001322',\n 'Shared_Blue_Shade_40': '#002440',\n 'Shared_Blue_Shade_30': '#004377',\n 'Shared_Blue_Shade_20': '#005ba1',\n 'Shared_Blue_Shade_10': '#006cbf',\n 'Shared_Blue_Primary': '#0078d4',\n 'Shared_Blue_Tint_10': '#1a86d9',\n 'Shared_Blue_Tint_20': '#3595de',\n 'Shared_Blue_Tint_30': '#5caae5',\n 'Shared_Blue_Tint_40': '#a9d3f2',\n 'Shared_Blue_Tint_50': '#d0e7f8',\n 'Shared_Blue_Tint_60': '#f3f9fd',\n 'Shared_Royal_blue_Shade_50': '#000c16',\n 'Shared_Royal_blue_Shade_40': '#00172a',\n 'Shared_Royal_blue_Shade_30': '#002c4e',\n 'Shared_Royal_blue_Shade_20': '#003b6a',\n 'Shared_Royal_blue_Shade_10': '#00467e',\n 'Shared_Royal_blue_Primary': '#004e8c',\n 'Shared_Royal_blue_Tint_10': '#125e9a',\n 'Shared_Royal_blue_Tint_20': '#286fa8',\n 'Shared_Royal_blue_Tint_30': '#4a89ba',\n 'Shared_Royal_blue_Tint_40': '#9abfdc',\n 'Shared_Royal_blue_Tint_50': '#c7dced',\n 'Shared_Royal_blue_Tint_60': '#f0f6fa',\n 'Shared_Dark_blue_Shade_50': '#000910',\n 'Shared_Dark_blue_Shade_40': '#00111f',\n 'Shared_Dark_blue_Shade_30': '#002039',\n 'Shared_Dark_blue_Shade_20': '#002b4e',\n 'Shared_Dark_blue_Shade_10': '#00335c',\n 'Shared_Dark_blue_Primary': '#003966',\n 'Shared_Dark_blue_Tint_10': '#0e4a78',\n 'Shared_Dark_blue_Tint_20': '#215c8b',\n 'Shared_Dark_blue_Tint_30': '#4178a3',\n 'Shared_Dark_blue_Tint_40': '#92b5d1',\n 'Shared_Dark_blue_Tint_50': '#c2d6e7',\n 'Shared_Dark_blue_Tint_60': '#eff4f9',\n 'Shared_Cornflower_Shade_50': '#0d1126',\n 'Shared_Cornflower_Shade_40': '#182047',\n 'Shared_Cornflower_Shade_30': '#2c3c85',\n 'Shared_Cornflower_Shade_20': '#3c51b4',\n 'Shared_Cornflower_Shade_10': '#4760d5',\n 'Shared_Cornflower_Primary': '#4f6bed',\n 'Shared_Cornflower_Tint_10': '#637cef',\n 'Shared_Cornflower_Tint_20': '#778df1',\n 'Shared_Cornflower_Tint_30': '#93a4f4',\n 'Shared_Cornflower_Tint_40': '#c8d1fa',\n 'Shared_Cornflower_Tint_50': '#e1e6fc',\n 'Shared_Cornflower_Tint_60': '#f7f9fe',\n 'Shared_Navy_Shade_50': '#00061d',\n 'Shared_Navy_Shade_40': '#000c36',\n 'Shared_Navy_Shade_30': '#001665',\n 'Shared_Navy_Shade_20': '#001e89',\n 'Shared_Navy_Shade_10': '#0023a2',\n 'Shared_Navy_Primary': '#0027b4',\n 'Shared_Navy_Tint_10': '#173bbd',\n 'Shared_Navy_Tint_20': '#3050c6',\n 'Shared_Navy_Tint_30': '#546fd2',\n 'Shared_Navy_Tint_40': '#a3b2e8',\n 'Shared_Navy_Tint_50': '#ccd5f3',\n 'Shared_Navy_Tint_60': '#f2f4fc',\n 'Shared_Lavender_Shade_50': '#120f25',\n 'Shared_Lavender_Shade_40': '#221d46',\n 'Shared_Lavender_Shade_30': '#3f3682',\n 'Shared_Lavender_Shade_20': '#5649b0',\n 'Shared_Lavender_Shade_10': '#6656d1',\n 'Shared_Lavender_Primary': '#7160e8',\n 'Shared_Lavender_Tint_10': '#8172eb',\n 'Shared_Lavender_Tint_20': '#9184ee',\n 'Shared_Lavender_Tint_30': '#a79cf1',\n 'Shared_Lavender_Tint_40': '#d2ccf8',\n 'Shared_Lavender_Tint_50': '#e7e4fb',\n 'Shared_Lavender_Tint_60': '#f9f8fe',\n 'Shared_Purple_Shade_50': '#0f0717',\n 'Shared_Purple_Shade_40': '#1c0e2b',\n 'Shared_Purple_Shade_30': '#341a51',\n 'Shared_Purple_Shade_20': '#46236e',\n 'Shared_Purple_Shade_10': '#532982',\n 'Shared_Purple_Primary': '#5c2e91',\n 'Shared_Purple_Tint_10': '#6b3f9e',\n 'Shared_Purple_Tint_20': '#7c52ab',\n 'Shared_Purple_Tint_30': '#9470bd',\n 'Shared_Purple_Tint_40': '#c6b1de',\n 'Shared_Purple_Tint_50': '#e0d3ed',\n 'Shared_Purple_Tint_60': '#f7f4fb',\n 'Shared_Dark_purple_Shade_50': '#0a0411',\n 'Shared_Dark_purple_Shade_40': '#130820',\n 'Shared_Dark_purple_Shade_30': '#240f3c',\n 'Shared_Dark_purple_Shade_20': '#311552',\n 'Shared_Dark_purple_Shade_10': '#3a1861',\n 'Shared_Dark_purple_Primary': '#401b6c',\n 'Shared_Dark_purple_Tint_10': '#512b7e',\n 'Shared_Dark_purple_Tint_20': '#633e8f',\n 'Shared_Dark_purple_Tint_30': '#7e5ca7',\n 'Shared_Dark_purple_Tint_40': '#b9a3d3',\n 'Shared_Dark_purple_Tint_50': '#d8cce7',\n 'Shared_Dark_purple_Tint_60': '#f5f2f9',\n 'Shared_Orchid_Shade_50': '#16101d',\n 'Shared_Orchid_Shade_40': '#281e37',\n 'Shared_Orchid_Shade_30': '#4c3867',\n 'Shared_Orchid_Shade_20': '#674c8c',\n 'Shared_Orchid_Shade_10': '#795aa6',\n 'Shared_Orchid_Primary': '#8764b8',\n 'Shared_Orchid_Tint_10': '#9373c0',\n 'Shared_Orchid_Tint_20': '#a083c9',\n 'Shared_Orchid_Tint_30': '#b29ad4',\n 'Shared_Orchid_Tint_40': '#d7caea',\n 'Shared_Orchid_Tint_50': '#e9e2f4',\n 'Shared_Orchid_Tint_60': '#f9f8fc',\n 'Shared_Grape_Shade_50': '#160418',\n 'Shared_Grape_Shade_40': '#29072e',\n 'Shared_Grape_Shade_30': '#4c0d55',\n 'Shared_Grape_Shade_20': '#671174',\n 'Shared_Grape_Shade_10': '#7a1589',\n 'Shared_Grape_Primary': '#881798',\n 'Shared_Grape_Tint_10': '#952aa4',\n 'Shared_Grape_Tint_20': '#a33fb1',\n 'Shared_Grape_Tint_30': '#b55fc1',\n 'Shared_Grape_Tint_40': '#d9a7e0',\n 'Shared_Grape_Tint_50': '#eaceef',\n 'Shared_Grape_Tint_60': '#faf2fb',\n 'Shared_Berry_Shade_50': '#1f091d',\n 'Shared_Berry_Shade_40': '#3a1136',\n 'Shared_Berry_Shade_30': '#6d2064',\n 'Shared_Berry_Shade_20': '#932b88',\n 'Shared_Berry_Shade_10': '#af33a1',\n 'Shared_Berry_Primary': '#c239b3',\n 'Shared_Berry_Tint_10': '#c94cbc',\n 'Shared_Berry_Tint_20': '#d161c4',\n 'Shared_Berry_Tint_30': '#da7ed0',\n 'Shared_Berry_Tint_40': '#edbbe7',\n 'Shared_Berry_Tint_50': '#f5daf2',\n 'Shared_Berry_Tint_60': '#fdf5fc',\n 'Shared_Lilac_Shade_50': '#1c0b1f',\n 'Shared_Lilac_Shade_40': '#35153a',\n 'Shared_Lilac_Shade_30': '#63276d',\n 'Shared_Lilac_Shade_20': '#863593',\n 'Shared_Lilac_Shade_10': '#9f3faf',\n 'Shared_Lilac_Primary': '#b146c2',\n 'Shared_Lilac_Tint_10': '#ba58c9',\n 'Shared_Lilac_Tint_20': '#c36bd1',\n 'Shared_Lilac_Tint_30': '#cf87da',\n 'Shared_Lilac_Tint_40': '#e6bfed',\n 'Shared_Lilac_Tint_50': '#f2dcf5',\n 'Shared_Lilac_Tint_60': '#fcf6fd',\n 'Shared_Pink_Shade_50': '#24091b',\n 'Shared_Pink_Shade_40': '#441232',\n 'Shared_Pink_Shade_30': '#80215d',\n 'Shared_Pink_Shade_20': '#ad2d7e',\n 'Shared_Pink_Shade_10': '#cd3595',\n 'Shared_Pink_Primary': '#e43ba6',\n 'Shared_Pink_Tint_10': '#e750b0',\n 'Shared_Pink_Tint_20': '#ea66ba',\n 'Shared_Pink_Tint_30': '#ef85c8',\n 'Shared_Pink_Tint_40': '#f7c0e3',\n 'Shared_Pink_Tint_50': '#fbddf0',\n 'Shared_Pink_Tint_60': '#fef6fb',\n 'Shared_Hot_pink_Shade_50': '#240016',\n 'Shared_Hot_pink_Shade_40': '#44002a',\n 'Shared_Hot_pink_Shade_30': '#7f004e',\n 'Shared_Hot_pink_Shade_20': '#ad006a',\n 'Shared_Hot_pink_Shade_10': '#cc007e',\n 'Shared_Hot_pink_Primary': '#e3008c',\n 'Shared_Hot_pink_Tint_10': '#e61c99',\n 'Shared_Hot_pink_Tint_20': '#ea38a6',\n 'Shared_Hot_pink_Tint_30': '#ee5fb7',\n 'Shared_Hot_pink_Tint_40': '#f7adda',\n 'Shared_Hot_pink_Tint_50': '#fbd2eb',\n 'Shared_Hot_pink_Tint_60': '#fef4fa',\n 'Shared_Magenta_Shade_50': '#1f0013',\n 'Shared_Magenta_Shade_40': '#390024',\n 'Shared_Magenta_Shade_30': '#6b0043',\n 'Shared_Magenta_Shade_20': '#91005a',\n 'Shared_Magenta_Shade_10': '#ac006b',\n 'Shared_Magenta_Primary': '#bf0077',\n 'Shared_Magenta_Tint_10': '#c71885',\n 'Shared_Magenta_Tint_20': '#ce3293',\n 'Shared_Magenta_Tint_30': '#d957a8',\n 'Shared_Magenta_Tint_40': '#eca5d1',\n 'Shared_Magenta_Tint_50': '#f5cee6',\n 'Shared_Magenta_Tint_60': '#fcf2f9',\n 'Shared_Plum_Shade_50': '#13000c',\n 'Shared_Plum_Shade_40': '#240017',\n 'Shared_Plum_Shade_30': '#43002b',\n 'Shared_Plum_Shade_20': '#5a003b',\n 'Shared_Plum_Shade_10': '#6b0045',\n 'Shared_Plum_Primary': '#77004d',\n 'Shared_Plum_Tint_10': '#87105d',\n 'Shared_Plum_Tint_20': '#98246f',\n 'Shared_Plum_Tint_30': '#ad4589',\n 'Shared_Plum_Tint_40': '#d696c0',\n 'Shared_Plum_Tint_50': '#e9c4dc',\n 'Shared_Plum_Tint_60': '#faf0f6',\n 'Shared_Beige_Shade_50': '#141313',\n 'Shared_Beige_Shade_40': '#252323',\n 'Shared_Beige_Shade_30': '#444241',\n 'Shared_Beige_Shade_20': '#5d5958',\n 'Shared_Beige_Shade_10': '#6e6968',\n 'Shared_Beige_Primary': '#7a7574',\n 'Shared_Beige_Tint_10': '#8a8584',\n 'Shared_Beige_Tint_20': '#9a9594',\n 'Shared_Beige_Tint_30': '#afabaa',\n 'Shared_Beige_Tint_40': '#d7d4d4',\n 'Shared_Beige_Tint_50': '#eae8e8',\n 'Shared_Beige_Tint_60': '#faf9f9',\n 'Shared_Mink_Shade_50': '#0f0e0e',\n 'Shared_Mink_Shade_40': '#1c1b1a',\n 'Shared_Mink_Shade_30': '#343231',\n 'Shared_Mink_Shade_20': '#474443',\n 'Shared_Mink_Shade_10': '#54514f',\n 'Shared_Mink_Primary': '#5d5a58',\n 'Shared_Mink_Tint_10': '#706d6b',\n 'Shared_Mink_Tint_20': '#84817e',\n 'Shared_Mink_Tint_30': '#9e9b99',\n 'Shared_Mink_Tint_40': '#cecccb',\n 'Shared_Mink_Tint_50': '#e5e4e3',\n 'Shared_Mink_Tint_60': '#f8f8f8',\n 'Shared_Silver_Shade_50': '#151818',\n 'Shared_Silver_Shade_40': '#282d2e',\n 'Shared_Silver_Shade_30': '#4a5356',\n 'Shared_Silver_Shade_20': '#657174',\n 'Shared_Silver_Shade_10': '#78868a',\n 'Shared_Silver_Primary': '#859599',\n 'Shared_Silver_Tint_10': '#92a1a5',\n 'Shared_Silver_Tint_20': '#a0aeb1',\n 'Shared_Silver_Tint_30': '#b3bfc2',\n 'Shared_Silver_Tint_40': '#d8dfe0',\n 'Shared_Silver_Tint_50': '#eaeeef',\n 'Shared_Silver_Tint_60': '#fafbfb',\n 'Shared_Platinum_Shade_50': '#111314',\n 'Shared_Platinum_Shade_40': '#1f2426',\n 'Shared_Platinum_Shade_30': '#3b4447',\n 'Shared_Platinum_Shade_20': '#505c60',\n 'Shared_Platinum_Shade_10': '#5f6d71',\n 'Shared_Platinum_Primary': '#69797e',\n 'Shared_Platinum_Tint_10': '#79898d',\n 'Shared_Platinum_Tint_20': '#89989d',\n 'Shared_Platinum_Tint_30': '#a0adb2',\n 'Shared_Platinum_Tint_40': '#cdd6d8',\n 'Shared_Platinum_Tint_50': '#e4e9ea',\n 'Shared_Platinum_Tint_60': '#f8f9fa',\n 'Shared_Anchor_Shade_50': '#090a0b',\n 'Shared_Anchor_Shade_40': '#111315',\n 'Shared_Anchor_Shade_30': '#202427',\n 'Shared_Anchor_Shade_20': '#2b3135',\n 'Shared_Anchor_Shade_10': '#333a3f',\n 'Shared_Anchor_Primary': '#394146',\n 'Shared_Anchor_Tint_10': '#4d565c',\n 'Shared_Anchor_Tint_20': '#626c72',\n 'Shared_Anchor_Tint_30': '#808a90',\n 'Shared_Anchor_Tint_40': '#bcc3c7',\n 'Shared_Anchor_Tint_50': '#dbdfe1',\n 'Shared_Anchor_Tint_60': '#f6f7f8',\n 'Shared_Charcoal_Shade_50': '#090909',\n 'Shared_Charcoal_Shade_40': '#111111',\n 'Shared_Charcoal_Shade_30': '#202020',\n 'Shared_Charcoal_Shade_20': '#2b2b2b',\n 'Shared_Charcoal_Shade_10': '#333333',\n 'Shared_Charcoal_Primary': '#393939',\n 'Shared_Charcoal_Tint_10': '#515151',\n 'Shared_Charcoal_Tint_20': '#686868',\n 'Shared_Charcoal_Tint_30': '#888888',\n 'Shared_Charcoal_Tint_40': '#c4c4c4',\n 'Shared_Charcoal_Tint_50': '#dfdfdf',\n 'Shared_Charcoal_Tint_60': '#f7f7f7',\n 'Shared_Charcoal_Color': '#ffffff',\n 'Shared_Secondary_Shade_50': '#1c280d',\n 'Shared_Secondary_Shade_40': '#334717',\n 'Shared_Secondary_Shade_30': '#496721',\n 'Shared_Secondary_Shade_20': '#60872b',\n 'Shared_Secondary_Shade_10': '#76a635',\n 'Shared_Secondary_Primary': '#8dc63f',\n 'Shared_Secondary_Tint_10': '#9fcf5e',\n 'Shared_Secondary_Tint_20': '#b1d87c',\n 'Shared_Secondary_Tint_30': '#c4e19b',\n 'Shared_Secondary_Tint_40': '#d6eaba',\n 'Shared_Secondary_Tint_50': '#e8f4d9',\n 'Shared_Secondary_Tint_60': '#fafdf7',\n 'Shared_Tertiary_Shade_50': '#002330',\n 'Shared_Tertiary_Shade_40': '#003f56',\n 'Shared_Tertiary_Shade_30': '#005a7c',\n 'Shared_Tertiary_Shade_20': '#0076a3',\n 'Shared_Tertiary_Shade_10': '#0092c9',\n 'Shared_Tertiary_Primary': '#00aeef',\n 'Shared_Tertiary_Tint_10': '#29bbf2',\n 'Shared_Tertiary_Tint_20': '#52c8f4',\n 'Shared_Tertiary_Tint_30': '#7ad5f7',\n 'Shared_Tertiary_Tint_40': '#a3e2f9',\n 'Shared_Tertiary_Tint_50': '#cceffc',\n 'Shared_Tertiary_Tint_60': '#f5fcfe',\n 'Shared_Quarternary_Shade_50': '#002426',\n 'Shared_Quarternary_Shade_40': '#004044',\n 'Shared_Quarternary_Shade_30': '#005d62',\n 'Shared_Quarternary_Shade_20': '#007a81',\n 'Shared_Quarternary_Shade_10': '#00969f',\n 'Shared_Quarternary_Primary': '#00b3bd',\n 'Shared_Quarternary_Tint_10': '#29bfc8',\n 'Shared_Quarternary_Tint_20': '#52cbd2',\n 'Shared_Quarternary_Tint_30': '#7ad7dd',\n 'Shared_Quarternary_Tint_40': '#a3e4e7',\n 'Shared_Quarternary_Tint_50': '#ccf0f2',\n 'Shared_Quarternary_Tint_60': '#f5fcfc',\n};\n\n// Light Mode Colors\nexport const lightModeColors = {\n 'Neutral_Background_1_Rest': '#ffffff',\n 'Neutral_Background_1_Hover': '#f5f5f5',\n 'Neutral_Background_1_Pressed': '#e0e0e0',\n 'Neutral_Background_1_Selected': '#ebebeb',\n 'Neutral_Background_2_Rest': '#fafafa',\n 'Neutral_Background_2_Hover': '#f0f0f0',\n 'Neutral_Background_2_Pressed': '#dbdbdb',\n 'Neutral_Background_2_Selected': '#e6e6e6',\n 'Neutral_Background_3_Rest': '#f5f5f5',\n 'Neutral_Background_3_Hover': '#ebebeb',\n 'Neutral_Background_3_Pressed': '#d6d6d6',\n 'Neutral_Background_3_Selected': '#e0e0e0',\n 'Neutral_Background_4_Rest': '#f0f0f0',\n 'Neutral_Background_4_Hover': '#fafafa',\n 'Neutral_Background_4_Pressed': '#f5f5f5',\n 'Neutral_Background_4_Selected': '#ffffff',\n 'Neutral_Background_5_Rest': '#ebebeb',\n 'Neutral_Background_5_Hover': '#f5f5f5',\n 'Neutral_Background_5_Pressed': '#f0f0f0',\n 'Neutral_Background_5_Selected': '#fafafa',\n 'Neutral_Background_6_Rest': '#e6e6e6',\n 'Neutral_Background_Inverted_Rest': '#292929',\n 'Neutral_Background_Inverted_Disabled_Rest': 1,\n 'Neutral_Background_Alpha_1_Rest': '#1a1a1a80',\n 'Neutral_Background_Alpha_2_Rest': 8,\n 'Neutral_Background_Static_Rest': '#333333',\n 'Neutral_Background_Subtle_Rest': '#00000000',\n 'Neutral_Background_Subtle_Hover': '#f5f5f5',\n 'Neutral_Background_Subtle_Pressed': '#e0e0e0',\n 'Neutral_Background_Subtle_Selected': '#ebebeb',\n 'Neutral_Background_Subtle_Light alpha_Hover': '#1a1a1ab3',\n 'Neutral_Background_Subtle_Light alpha_Pressed': '#1a1a1a80',\n 'Neutral_Background_Subtle_Light alpha_Selected': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Rest': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Hover': 1,\n 'Neutral_Background_Subtle_Inverted_Pressed': 3,\n 'Neutral_Background_Subtle_Inverted_Selected': 2,\n 'Neutral_Background_Transparent_Rest': '#00000000',\n 'Neutral_Background_Transparent_Hover': '#00000000',\n 'Neutral_Background_Transparent_Pressed': '#00000000',\n 'Neutral_Background_Transparent_Selected': '#00000000',\n 'Neutral_Background_Disabled_Rest': '#f0f0f0',\n 'Neutral_Background_Stencil_1_Rest': '#e6e6e6',\n 'Neutral_Background_Stencil_1_Alpha_Rest': 1,\n 'Neutral_Background_Stencil_2_Rest': '#fafafa',\n 'Neutral_Background_Stencil_2_Alpha_Rest': '#1a1a1a0d',\n 'Neutral_Background_Overlay_Rest': 4,\n 'Neutral_Background_Overlay_Scrollbar_Rest': '#1a1a1a80',\n 'Neutral_Foreground_1_Rest': '#242424',\n 'Neutral_Foreground_1_Hover': '#242424',\n 'Neutral_Foreground_1_Pressed': '#242424',\n 'Neutral_Foreground_1_Selected': '#242424',\n 'Neutral_Foreground_2_Rest': '#424242',\n 'Neutral_Foreground_2_Hover': '#242424',\n 'Neutral_Foreground_2_Pressed': '#242424',\n 'Neutral_Foreground_2_Selected': '#242424',\n 'Neutral_Foreground_2_Brand_Hover': '#1e398d',\n 'Neutral_Foreground_2_Brand_Pressed': '#182e71',\n 'Neutral_Foreground_2_Brand_Selected': '#1e398d',\n 'Neutral_Foreground_2_Link_Rest': '#424242',\n 'Neutral_Foreground_2_Link_Hover': '#242424',\n 'Neutral_Foreground_2_Link_Pressed': '#242424',\n 'Neutral_Foreground_2_Link_Selected': '#242424',\n 'Neutral_Foreground_3_Rest': '#616161',\n 'Neutral_Foreground_3_Hover': '#424242',\n 'Neutral_Foreground_3_Pressed': '#424242',\n 'Neutral_Foreground_3_Selected': '#424242',\n 'Neutral_Foreground_3_Brand_Hover': '#1e398d',\n 'Neutral_Foreground_3_Brand_Pressed': '#182e71',\n 'Neutral_Foreground_3_Brand_Selected': '#1e398d',\n 'Neutral_Foreground_4_Rest': '#707070',\n 'Neutral_Foreground_Disabled_Rest': '#bdbdbd',\n 'Neutral_Foreground_Static_Rest': '#242424',\n 'Neutral_Foreground_Static_Inverted_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Hover': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Pressed': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Selected': '#ffffff',\n 'Neutral_Foreground_Inverted_2_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_Disabled_Rest': 4,\n 'Neutral_Foreground_Inverted_Link_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Hover': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Pressed': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Selected': '#ffffff',\n 'Neutral_Foreground_On Brand_Rest': '#ffffff',\n 'Neutral_Stroke_1_Rest': '#d1d1d1',\n 'Neutral_Stroke_1_Hover': '#c7c7c7',\n 'Neutral_Stroke_1_Pressed': '#b3b3b3',\n 'Neutral_Stroke_1_Selected': '#bdbdbd',\n 'Neutral_Stroke_2_Rest': '#e0e0e0',\n 'Neutral_Stroke_3_Rest': '#f0f0f0',\n 'Neutral_Stroke_Alpha_1_Rest': '#1a1a1a0d',\n 'Neutral_Stroke_Alpha_2_Rest': 2,\n 'Neutral_Stroke_Subtle_Rest': '#e0e0e0',\n 'Neutral_Stroke_on Brand_1_Rest': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Rest': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Hover': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Pressed': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Selected': '#ffffff',\n 'Neutral_Stroke_Accessible_Rest': '#616161',\n 'Neutral_Stroke_Accessible_Hover': '#575757',\n 'Neutral_Stroke_Accessible_Pressed': '#4d4d4d',\n 'Neutral_Stroke_Accessible_Selected': '#1e398d',\n 'Neutral_Stroke_Focus_1_Rest': '#ffffff',\n 'Neutral_Stroke_Focus_2_Rest': '#000000',\n 'Neutral_Stroke_Transparent_Interactive_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Disabled_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Rest': '#00000000',\n 'Neutral_Stroke_Disabled_Rest': '#e0e0e0',\n 'Neutral_Stroke_Disabled_Inverted_Rest': 4,\n 'Brand_Background_1_Rest': '#1e398d',\n 'Brand_Background_1_Hover': '#182e71',\n 'Brand_Background_1_Pressed': '#09112a',\n 'Brand_Background_1_Selected': '#122255',\n 'Brand_Background_2_Rest': '#ffffff',\n 'Brand_Background_2_Hover': '#fdfdff',\n 'Brand_Background_2_Pressed': '#d0d6e8',\n 'Brand_Background_Inverted_Rest': '#ffffff',\n 'Brand_Background_Inverted_Hover': '#ffffff',\n 'Brand_Background_Inverted_Pressed': '#e7e9f4',\n 'Brand_Background_Inverted_Selected': '#fdfdff',\n 'Brand_Background_Compound_Rest': '#1e398d',\n 'Brand_Background_Compound_Hover': '#182e71',\n 'Brand_Background_Compound_Pressed': '#122255',\n 'Brand_Background_Static_1_Rest': '#1e398d',\n 'Brand_Background_Static_3_Rest': '#122255',\n 'Brand_Background_Static_4_Rest': '#09112a',\n 'Brand_Foreground_1_Rest': '#1e398d',\n 'Brand_Foreground_2_Rest': '#182e71',\n 'Brand_Foreground_2_Hover': '#122255',\n 'Brand_Foreground_2_Pressed': '#060b1c',\n 'Brand_Foreground_Link_Rest': '#182e71',\n 'Brand_Foreground_Link_Hover': '#122255',\n 'Brand_Foreground_Link_Pressed': '#09112a',\n 'Brand_Foreground_Link_Selected': '#182e71',\n 'Brand_Foreground_Inverted_Rest': '#7787bb',\n 'Brand_Foreground_Inverted_Hover': '#a4afd1',\n 'Brand_Foreground_Inverted_Pressed': '#7787bb',\n 'Brand_Foreground_On Light_Rest': '#1e398d',\n 'Brand_Foreground_On Light_Hover': '#182e71',\n 'Brand_Foreground_On Light_Pressed': '#0c1738',\n 'Brand_Foreground_On Light_Selected': '#122255',\n 'Brand_Foreground_Compound_Rest': '#1e398d',\n 'Brand_Foreground_Compound_Hover': '#182e71',\n 'Brand_Foreground_Compound_Pressed': '#122255',\n 'Brand_Stroke_1_Rest': '#1e398d',\n 'Brand_Stroke_2_Rest': '#e7e9f4',\n 'Brand_Stroke_2_Hover': '#bac2dd',\n 'Brand_Stroke_2_Pressed': '#1e398d',\n 'Brand_Stroke_2_Contrast_Rest': '#e7e9f4',\n 'Brand_Stroke_Compound_Rest': '#1e398d',\n 'Brand_Stroke_Compound_Hover': '#182e71',\n 'Brand_Stroke_Compound_Pressed': '#122255',\n 'Status_Danger_Background_1_Rest': '#f5fcfc',\n 'Status_Danger_Background_2_Rest': '#a3e4e7',\n 'Status_Danger_Background_3_Rest': '#00b3bd',\n 'Status_Danger_Foreground_1_Rest': '#00969f',\n 'Status_Danger_Foreground_2_Rest': '#005d62',\n 'Status_Danger_Foreground_3_Rest': '#00b3bd',\n 'Status_Danger_Foreground_3_Pressed': '#007a81',\n 'Status_Danger_Foreground_3_Hover': '#00969f',\n 'Status_Danger_Foreground_Inverted_Rest': '#7ad7dd',\n 'Status_Danger_Stroke_1_Rest': '#a3e4e7',\n 'Status_Danger_Stroke_2_Rest': '#00b3bd',\n 'Status_Success_Background_1_Rest': '#f5fcfc',\n 'Status_Success_Background_2_Rest': '#a3e4e7',\n 'Status_Success_Background_3_Rest': '#00b3bd',\n 'Status_Success_Foreground_1_Rest': '#00969f',\n 'Status_Success_Foreground_2_Rest': '#005d62',\n 'Status_Success_Foreground_3_Rest': '#00b3bd',\n 'Status_Success_Foreground_Inverted_Rest': '#52cbd2',\n 'Status_Success_Stroke_1_Rest': '#a3e4e7',\n 'Status_Success_Stroke_2_Rest': '#00b3bd',\n 'Status_Warning_Background_1_Rest': '#f5fcfc',\n 'Status_Warning_Background_2_Rest': '#a3e4e7',\n 'Status_Warning_Background_3_Rest': '#00b3bd',\n 'Status_Warning_Foreground_1_Rest': '#007a81',\n 'Status_Warning_Foreground_2_Rest': '#005d62',\n 'Status_Warning_Foreground_3_Rest': '#007a81',\n 'Status_Warning_Foreground_Inverted_Rest': '#7ad7dd',\n 'Status_Warning_Stroke_1_Rest': '#a3e4e7',\n 'Status_Warning_Stroke_2_Rest': '#007a81',\n 'Status_Oof_Foreground_3_Rest': '#00b3bd',\n 'Status_Away_Background_3_Rest': '#00b3bd',\n 'Status_Available_Foreground_3_Rest': '#00b3bd',\n 'Status_Severe_Background_1_Rest': '#f5fcfc',\n 'Status_Severe_Background_2_Rest': '#a3e4e7',\n 'Status_Severe_Background_3_Rest': '#00b3bd',\n 'Status_Severe_Foreground_1_Rest': '#007a81',\n 'Status_Severe_Foreground_2_Rest': '#007a81',\n 'Status_Severe_Foreground_3_Rest': '#007a81',\n 'Status_Severe_Foreground_Inverted_Rest': '#7ad7dd',\n 'Status_Severe_Stroke_1_Rest': '#a3e4e7',\n 'Status_Severe_Stroke_2_Rest': '#007a81',\n 'Palette_Dark red_Background_2_Rest': '#a3e4e7',\n 'Palette_Dark red_Foreground_2_Rest': '#005d62',\n 'Palette_Dark red_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Cranberry_Background_2_Rest': '#a3e4e7',\n 'Palette_Cranberry_Foreground_2_Rest': '#005d62',\n 'Palette_Cranberry_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Red_Background_1_Rest': '#f5fcfc',\n 'Palette_Red_Background_2_Rest': '#a3e4e7',\n 'Palette_Red_Background_3_Rest': '#00b3bd',\n 'Palette_Red_Foreground_1_Rest': '#00969f',\n 'Palette_Red_Foreground_2_Rest': '#005d62',\n 'Palette_Red_Foreground_3_Rest': '#00b3bd',\n 'Palette_Red_Foreground_Inverted_Rest': '#52cbd2',\n 'Palette_Red_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Red_Stroke_2_Rest': '#00b3bd',\n 'Palette_Red_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Pumpkin_Background_2_Rest': '#a3e4e7',\n 'Palette_Pumpkin_Foreground_2_Rest': '#005d62',\n 'Palette_Pumpkin_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Peach_Background_2_Rest': '#a3e4e7',\n 'Palette_Peach_Foreground_2_Rest': '#005d62',\n 'Palette_Peach_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Marigold_Background_1_Rest': '#f5fcfc',\n 'Palette_Marigold_Background_2_Rest': '#a3e4e7',\n 'Palette_Marigold_Background_3_Rest': '#00b3bd',\n 'Palette_Marigold_Foreground_1_Rest': '#00969f',\n 'Palette_Marigold_Foreground_1_Rest 2': '#00b3bd',\n 'Palette_Marigold_Foreground_2_Rest': '#005d62',\n 'Palette_Marigold_Foreground_3_Rest': '#00b3bd',\n 'Palette_Marigold_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Marigold_Stroke_2_Rest': '#00b3bd',\n 'Palette_Marigold_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Gold_Background_2_Rest': '#a3e4e7',\n 'Palette_Gold_Foreground_2_Rest': '#005d62',\n 'Palette_Gold_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Brass_Background_2_Rest': '#a3e4e7',\n 'Palette_Brass_Foreground_2_Rest': '#005d62',\n 'Palette_Brass_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Brown_Background_2_Rest': '#a3e4e7',\n 'Palette_Brown_Foreground_2_Rest': '#005d62',\n 'Palette_Brown_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Forest_Background_2_Rest': '#a3e4e7',\n 'Palette_Forest_Foreground_2_Rest': '#005d62',\n 'Palette_Forest_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Seafoam_Background_2_Rest': '#a3e4e7',\n 'Palette_Seafoam_Foreground_2_Rest': '#005d62',\n 'Palette_Seafoam_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Dark green_Background_2_Rest': '#a3e4e7',\n 'Palette_Dark green_Foreground_2_Rest': '#005d62',\n 'Palette_Dark green_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Light teal_Background_2_Rest': '#a3e4e7',\n 'Palette_Light teal_Foreground_2_Rest': '#005d62',\n 'Palette_Light teal_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Teal_Background_2_Rest': '#a3e4e7',\n 'Palette_Teal_Foreground_2_Rest': '#005d62',\n 'Palette_Teal_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Steel_Background_2_Rest': '#a3e4e7',\n 'Palette_Steel_Foreground_2_Rest': '#005d62',\n 'Palette_Steel_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Blue_Background_2_Rest': '#a3e4e7',\n 'Palette_Blue_Foreground_2_Rest': '#005d62',\n 'Palette_Blue_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Royal blue_Background_2_Rest': '#a3e4e7',\n 'Palette_Royal blue_Foreground_2_Rest': '#005d62',\n 'Palette_Royal blue_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Cornflower_Background_2_Rest': '#a3e4e7',\n 'Palette_Cornflower_Foreground_2_Rest': '#005d62',\n 'Palette_Cornflower_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Navy_Background_2_Rest': '#a3e4e7',\n 'Palette_Navy_Foreground_2_Rest': '#005d62',\n 'Palette_Navy_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Lavender_Background_2_Rest': '#a3e4e7',\n 'Palette_Lavender_Foreground_2_Rest': '#005d62',\n 'Palette_Lavender_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Purple_Background_2_Rest': '#a3e4e7',\n 'Palette_Purple_Foreground_2_Rest': '#005d62',\n 'Palette_Purple_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Grape_Background_2_Rest': '#a3e4e7',\n 'Palette_Grape_Foreground_2_Rest': '#005d62',\n 'Palette_Grape_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Lilac_Background_2_Rest': '#a3e4e7',\n 'Palette_Lilac_Foreground_2_Rest': '#005d62',\n 'Palette_Lilac_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Pink_Background_2_Rest': '#a3e4e7',\n 'Palette_Pink_Foreground_2_Rest': '#005d62',\n 'Palette_Pink_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Magenta_Background_2_Rest': '#a3e4e7',\n 'Palette_Magenta_Foreground_2_Rest': '#005d62',\n 'Palette_Magenta_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Plum_Background_2_Rest': '#a3e4e7',\n 'Palette_Plum_Foreground_2_Rest': '#005d62',\n 'Palette_Plum_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Beige_Background_2_Rest': '#a3e4e7',\n 'Palette_Beige_Foreground_2_Rest': '#005d62',\n 'Palette_Beige_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Mink_Background_2_Rest': '#a3e4e7',\n 'Palette_Mink_Foreground_2_Rest': '#005d62',\n 'Palette_Mink_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Platinum_Background_2_Rest': '#a3e4e7',\n 'Palette_Platinum_Foreground_2_Rest': '#005d62',\n 'Palette_Platinum_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Anchor_Background_2_Rest': '#a3e4e7',\n 'Palette_Anchor_Foreground_2_Rest': '#005d62',\n 'Palette_Anchor_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Green_Background_1_Rest': '#f5fcfc',\n 'Palette_Green_Background_2_Rest': '#a3e4e7',\n 'Palette_Green_Background_3_Rest': '#00b3bd',\n 'Palette_Green_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Green_Stroke_2_Rest': '#00b3bd',\n 'Palette_Green_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Green_Foreground_1_Rest': '#00969f',\n 'Palette_Green_Foreground_2_Rest': '#005d62',\n 'Palette_Green_Foreground_3_Rest': '#00b3bd',\n 'Palette_Green_Foreground_Inverted_Rest': '#52cbd2',\n 'Palette_Dark orange_Foreground_1_Rest': '#00969f',\n 'Palette_Dark orange_Foreground_2_Rest': '#005d62',\n 'Palette_Dark orange_Foreground_3_Rest': '#00b3bd',\n 'Palette_Dark orange_Background_1_Rest': '#f5fcfc',\n 'Palette_Dark orange_Background_2_Rest': '#a3e4e7',\n 'Palette_Dark orange_Background_3_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Dark orange_Stroke_2_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Yellow_Foreground_1_Rest': '#005d62',\n 'Palette_Yellow_Foreground_2_Rest': '#005d62',\n 'Palette_Yellow_Foreground_3_Rest': '#00b3bd',\n 'Palette_Yellow_Foreground_Inverted_Rest': '#a3e4e7',\n 'Palette_Yellow_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Yellow_Stroke_2_Rest': '#00b3bd',\n 'Palette_Yellow_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Yellow_Background_1_Rest': '#f5fcfc',\n 'Palette_Yellow_Background_2_Rest': '#a3e4e7',\n 'Palette_Yellow_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Foreground_1_Rest': '#00969f',\n 'Palette_Berry_Foreground_2_Rest': '#005d62',\n 'Palette_Berry_Foreground_3_Rest': '#00b3bd',\n 'Palette_Berry_Background_1_Rest': '#f5fcfc',\n 'Palette_Berry_Background_2_Rest': '#a3e4e7',\n 'Palette_Berry_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Berry_Stroke_2_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Light Green_Foreground_1_Rest': '#00969f',\n 'Palette_Light Green_Foreground_2_Rest': '#005d62',\n 'Palette_Light Green_Foreground_3_Rest': '#00b3bd',\n 'Palette_Light Green_Background_1_Rest': '#f5fcfc',\n 'Palette_Light Green_Background_2_Rest': '#a3e4e7',\n 'Palette_Light Green_Background_3_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Light Green_Stroke_2_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_Active_Rest': '#00b3bd',\n 'Shadow_Ambient': '#0000001f',\n 'Shadow_Ambient lighter': '#0000000f',\n 'Shadow_Ambient darker': '#00000033',\n 'Shadow_Brand ambient': '#00000040',\n 'Shadow_Key': '#00000024',\n 'Shadow_Key lighter': '#00000012',\n 'Shadow_Key darker': '#0000003d',\n 'Shadow_Brand key': '#0000004d',\n 'Material_Acrylic_Stroke_Stop 2': '#cfe4fa33',\n 'Material_Acrylic_Stroke_Stop 3': 2,\n 'Material_Acrylic_Stroke_Stop 1': 2,\n 'Material_Acrylic_Background_Secondary': '#e7ecf3b3',\n 'Material_Acrylic_Background_Primary': '#1a1a1a80',\n 'Material_Acrylic_Background_Blur': 60,\n};\n\n// Dark Mode Colors\nexport const darkModeColors = {\n 'Neutral_Background_1_Rest': '#292929',\n 'Neutral_Background_1_Hover': '#3d3d3d',\n 'Neutral_Background_1_Pressed': '#1f1f1f',\n 'Neutral_Background_1_Selected': '#383838',\n 'Neutral_Background_2_Rest': '#1f1f1f',\n 'Neutral_Background_2_Hover': '#333333',\n 'Neutral_Background_2_Pressed': '#141414',\n 'Neutral_Background_2_Selected': '#2e2e2e',\n 'Neutral_Background_3_Rest': '#141414',\n 'Neutral_Background_3_Hover': '#292929',\n 'Neutral_Background_3_Pressed': '#0a0a0a',\n 'Neutral_Background_3_Selected': '#242424',\n 'Neutral_Background_4_Rest': '#0a0a0a',\n 'Neutral_Background_4_Hover': '#1f1f1f',\n 'Neutral_Background_4_Pressed': '#000000',\n 'Neutral_Background_4_Selected': '#1a1a1a',\n 'Neutral_Background_5_Rest': '#000000',\n 'Neutral_Background_5_Hover': '#141414',\n 'Neutral_Background_5_Pressed': '#050505',\n 'Neutral_Background_5_Selected': '#0f0f0f',\n 'Neutral_Background_6_Rest': '#333333',\n 'Neutral_Background_Inverted_Rest': '#ffffff',\n 'Neutral_Background_Inverted_Disabled_Rest': 1,\n 'Neutral_Background_Alpha_1_Rest': '#1a1a1a80',\n 'Neutral_Background_Alpha_2_Rest': '#1a1a1ab3',\n 'Neutral_Background_Static_Rest': '#3d3d3d',\n 'Neutral_Background_Subtle_Rest': '#00000000',\n 'Neutral_Background_Subtle_Hover': '#383838',\n 'Neutral_Background_Subtle_Pressed': '#2e2e2e',\n 'Neutral_Background_Subtle_Selected': '#333333',\n 'Neutral_Background_Subtle_Light alpha_Hover': 8,\n 'Neutral_Background_Subtle_Light alpha_Pressed': '#1a1a1a80',\n 'Neutral_Background_Subtle_Light alpha_Selected': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Rest': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Hover': 1,\n 'Neutral_Background_Subtle_Inverted_Pressed': 3,\n 'Neutral_Background_Subtle_Inverted_Selected': 2,\n 'Neutral_Background_Transparent_Rest': '#00000000',\n 'Neutral_Background_Transparent_Hover': '#00000000',\n 'Neutral_Background_Transparent_Pressed': '#00000000',\n 'Neutral_Background_Transparent_Selected': '#00000000',\n 'Neutral_Background_Disabled_Rest': '#141414',\n 'Neutral_Background_Stencil_1_Rest': '#575757',\n 'Neutral_Background_Stencil_1_Alpha_Rest': 1,\n 'Neutral_Background_Stencil_2_Rest': '#333333',\n 'Neutral_Background_Stencil_2_Alpha_Rest': '#1a1a1a0d',\n 'Neutral_Background_Overlay_Rest': '#1a1a1a80',\n 'Neutral_Background_Overlay_Scrollbar_Rest': 6,\n 'Neutral_Foreground_1_Rest': '#ffffff',\n 'Neutral_Foreground_1_Hover': '#ffffff',\n 'Neutral_Foreground_1_Pressed': '#ffffff',\n 'Neutral_Foreground_1_Selected': '#ffffff',\n 'Neutral_Foreground_2_Rest': '#d6d6d6',\n 'Neutral_Foreground_2_Hover': '#ffffff',\n 'Neutral_Foreground_2_Pressed': '#ffffff',\n 'Neutral_Foreground_2_Selected': '#ffffff',\n 'Neutral_Foreground_2_Brand_Hover': '#7787bb',\n 'Neutral_Foreground_2_Brand_Pressed': '#a4afd1',\n 'Neutral_Foreground_2_Brand_Selected': '#7787bb',\n 'Neutral_Foreground_2_Link_Rest': '#d6d6d6',\n 'Neutral_Foreground_2_Link_Hover': '#ffffff',\n 'Neutral_Foreground_2_Link_Pressed': '#ffffff',\n 'Neutral_Foreground_2_Link_Selected': '#ffffff',\n 'Neutral_Foreground_3_Rest': '#adadad',\n 'Neutral_Foreground_3_Hover': '#d6d6d6',\n 'Neutral_Foreground_3_Pressed': '#d6d6d6',\n 'Neutral_Foreground_3_Selected': '#d6d6d6',\n 'Neutral_Foreground_3_Brand_Hover': '#7787bb',\n 'Neutral_Foreground_3_Brand_Pressed': '#a4afd1',\n 'Neutral_Foreground_3_Brand_Selected': '#7787bb',\n 'Neutral_Foreground_4_Rest': '#999999',\n 'Neutral_Foreground_Disabled_Rest': '#5c5c5c',\n 'Neutral_Foreground_Static_Rest': '#242424',\n 'Neutral_Foreground_Static_Inverted_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Rest': '#242424',\n 'Neutral_Foreground_Inverted_1_Hover': '#242424',\n 'Neutral_Foreground_Inverted_1_Pressed': '#242424',\n 'Neutral_Foreground_Inverted_1_Selected': '#242424',\n 'Neutral_Foreground_Inverted_2_Rest': '#242424',\n 'Neutral_Foreground_Inverted_Disabled_Rest': 4,\n 'Neutral_Foreground_Inverted_Link_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Hover': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Pressed': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Selected': '#ffffff',\n 'Neutral_Foreground_On Brand_Rest': '#ffffff',\n 'Neutral_Stroke_1_Rest': '#666666',\n 'Neutral_Stroke_1_Hover': '#757575',\n 'Neutral_Stroke_1_Pressed': '#6b6b6b',\n 'Neutral_Stroke_1_Selected': '#707070',\n 'Neutral_Stroke_2_Rest': '#525252',\n 'Neutral_Stroke_3_Rest': '#3d3d3d',\n 'Neutral_Stroke_Alpha_1_Rest': 1,\n 'Neutral_Stroke_Alpha_2_Rest': 2,\n 'Neutral_Stroke_Subtle_Rest': '#0a0a0a',\n 'Neutral_Stroke_on Brand_1_Rest': '#292929',\n 'Neutral_Stroke_on Brand_2_Rest': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Hover': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Pressed': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Selected': '#ffffff',\n 'Neutral_Stroke_Accessible_Rest': '#adadad',\n 'Neutral_Stroke_Accessible_Hover': '#bdbdbd',\n 'Neutral_Stroke_Accessible_Pressed': '#b3b3b3',\n 'Neutral_Stroke_Accessible_Selected': '#7787bb',\n 'Neutral_Stroke_Focus_1_Rest': '#000000',\n 'Neutral_Stroke_Focus_2_Rest': '#ffffff',\n 'Neutral_Stroke_Transparent_Interactive_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Disabled_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Rest': '#00000000',\n 'Neutral_Stroke_Disabled_Rest': '#424242',\n 'Neutral_Stroke_Disabled_Inverted_Rest': 4,\n 'Brand_Background_1_Rest': '#182e71',\n 'Brand_Background_1_Hover': '#1e398d',\n 'Brand_Background_1_Pressed': '#09112a',\n 'Brand_Background_1_Selected': '#122255',\n 'Brand_Background_2_Rest': '#03060e',\n 'Brand_Background_2_Hover': '#09112a',\n 'Brand_Background_2_Pressed': '#000000',\n 'Brand_Background_Inverted_Rest': '#ffffff',\n 'Brand_Background_Inverted_Hover': '#ffffff',\n 'Brand_Background_Inverted_Pressed': '#e7e9f4',\n 'Brand_Background_Inverted_Selected': '#fdfdff',\n 'Brand_Background_Compound_Rest': '#7787bb',\n 'Brand_Background_Compound_Hover': '#a4afd1',\n 'Brand_Background_Compound_Pressed': '#4b60a4',\n 'Brand_Background_Static_1_Rest': '#1e398d',\n 'Brand_Background_Static_3_Rest': '#122255',\n 'Brand_Background_Static_4_Rest': '#09112a',\n 'Brand_Foreground_1_Rest': '#7787bb',\n 'Brand_Foreground_2_Rest': '#a4afd1',\n 'Brand_Foreground_2_Hover': '#d0d6e8',\n 'Brand_Foreground_2_Pressed': '#7787bb',\n 'Brand_Foreground_Link_Rest': '#7787bb',\n 'Brand_Foreground_Link_Hover': '#a4afd1',\n 'Brand_Foreground_Link_Pressed': '#4b60a4',\n 'Brand_Foreground_Link_Selected': '#7787bb',\n 'Brand_Foreground_Inverted_Rest': '#1e398d',\n 'Brand_Foreground_Inverted_Hover': '#182e71',\n 'Brand_Foreground_Inverted_Pressed': '#122255',\n 'Brand_Foreground_On Light_Rest': '#182e71',\n 'Brand_Foreground_On Light_Hover': '#182e71',\n 'Brand_Foreground_On Light_Pressed': '#0c1738',\n 'Brand_Foreground_On Light_Selected': '#122255',\n 'Brand_Foreground_Compound_Rest': '#7787bb',\n 'Brand_Foreground_Compound_Hover': '#a4afd1',\n 'Brand_Foreground_Compound_Pressed': '#4b60a4',\n 'Brand_Stroke_1_Rest': '#7787bb',\n 'Brand_Stroke_2_Rest': '#0c1738',\n 'Brand_Stroke_2_Hover': '#4b60a4',\n 'Brand_Stroke_2_Pressed': '#182e71',\n 'Brand_Stroke_2_Contrast_Rest': '#0c1738',\n 'Brand_Stroke_Compound_Rest': '#7787bb',\n 'Brand_Stroke_Compound_Hover': '#a4afd1',\n 'Brand_Stroke_Compound_Pressed': '#4b60a4',\n 'Status_Danger_Background_1_Rest': '#004044',\n 'Status_Danger_Background_2_Rest': '#005d62',\n 'Status_Danger_Background_3_Rest': '#00b3bd',\n 'Status_Danger_Foreground_1_Rest': '#7ad7dd',\n 'Status_Danger_Foreground_2_Rest': '#a3e4e7',\n 'Status_Danger_Foreground_3_Rest': '#a3e4e7',\n 'Status_Danger_Foreground_3_Pressed': '#007a81',\n 'Status_Danger_Foreground_3_Hover': '#00969f',\n 'Status_Danger_Foreground_Inverted_Rest': '#00969f',\n 'Status_Danger_Stroke_1_Rest': '#00b3bd',\n 'Status_Danger_Stroke_2_Rest': '#7ad7dd',\n 'Status_Success_Background_1_Rest': '#004044',\n 'Status_Success_Background_2_Rest': '#005d62',\n 'Status_Success_Background_3_Rest': '#00b3bd',\n 'Status_Success_Foreground_1_Rest': '#7ad7dd',\n 'Status_Success_Foreground_2_Rest': '#a3e4e7',\n 'Status_Success_Foreground_3_Rest': '#a3e4e7',\n 'Status_Success_Foreground_Inverted_Rest': '#00b3bd',\n 'Status_Success_Stroke_1_Rest': '#00b3bd',\n 'Status_Success_Stroke_2_Rest': '#a3e4e7',\n 'Status_Warning_Background_1_Rest': '#004044',\n 'Status_Warning_Background_2_Rest': '#005d62',\n 'Status_Warning_Background_3_Rest': '#00b3bd',\n 'Status_Warning_Foreground_1_Rest': '#52cbd2',\n 'Status_Warning_Foreground_2_Rest': '#a3e4e7',\n 'Status_Warning_Foreground_3_Rest': '#a3e4e7',\n 'Status_Warning_Foreground_Inverted_Rest': '#007a81',\n 'Status_Warning_Stroke_1_Rest': '#00969f',\n 'Status_Warning_Stroke_2_Rest': '#52cbd2',\n 'Status_Oof_Foreground_3_Rest': '#52cbd2',\n 'Status_Away_Background_3_Rest': '#00b3bd',\n 'Status_Available_Foreground_3_Rest': '#00b3bd',\n 'Status_Severe_Background_1_Rest': '#004044',\n 'Status_Severe_Background_2_Rest': '#005d62',\n 'Status_Severe_Background_3_Rest': '#00b3bd',\n 'Status_Severe_Foreground_1_Rest': '#52cbd2',\n 'Status_Severe_Foreground_2_Rest': '#a3e4e7',\n 'Status_Severe_Foreground_3_Rest': '#a3e4e7',\n 'Status_Severe_Foreground_Inverted_Rest': '#007a81',\n 'Status_Severe_Stroke_1_Rest': '#00969f',\n 'Status_Severe_Stroke_2_Rest': '#52cbd2',\n 'Palette_Dark red_Background_2_Rest': '#007a81',\n 'Palette_Dark red_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Dark red_Stroke_Active_Rest': '#52cbd2',\n 'Palette_Cranberry_Background_2_Rest': '#005d62',\n 'Palette_Cranberry_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Cranberry_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Red_Background_1_Rest': '#004044',\n 'Palette_Red_Background_2_Rest': '#005d62',\n 'Palette_Red_Background_3_Rest': '#00b3bd',\n 'Palette_Red_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Red_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Red_Foreground_3_Rest': '#7ad7dd',\n 'Palette_Red_Foreground_Inverted_Rest': '#00b3bd',\n 'Palette_Red_Stroke_1_Rest': '#00b3bd',\n 'Palette_Red_Stroke_2_Rest': '#7ad7dd',\n 'Palette_Red_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Pumpkin_Background_2_Rest': '#005d62',\n 'Palette_Pumpkin_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Pumpkin_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Peach_Background_2_Rest': '#005d62',\n 'Palette_Peach_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Peach_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Marigold_Background_1_Rest': '#004044',\n 'Palette_Marigold_Background_2_Rest': '#005d62',\n 'Palette_Marigold_Background_3_Rest': '#00b3bd',\n 'Palette_Marigold_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Marigold_Foreground_1_Rest 2': '#52cbd2',\n 'Palette_Marigold_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Marigold_Foreground_3_Rest': '#52cbd2',\n 'Palette_Marigold_Stroke_1_Rest': '#00b3bd',\n 'Palette_Marigold_Stroke_2_Rest': '#52cbd2',\n 'Palette_Marigold_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Gold_Background_2_Rest': '#005d62',\n 'Palette_Gold_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Gold_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Brass_Background_2_Rest': '#005d62',\n 'Palette_Brass_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Brass_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Brown_Background_2_Rest': '#005d62',\n 'Palette_Brown_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Brown_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Forest_Background_2_Rest': '#005d62',\n 'Palette_Forest_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Forest_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Seafoam_Background_2_Rest': '#005d62',\n 'Palette_Seafoam_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Seafoam_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Dark green_Background_2_Rest': '#005d62',\n 'Palette_Dark green_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Dark green_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Light teal_Background_2_Rest': '#005d62',\n 'Palette_Light teal_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Light teal_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Teal_Background_2_Rest': '#005d62',\n 'Palette_Teal_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Teal_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Steel_Background_2_Rest': '#005d62',\n 'Palette_Steel_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Steel_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Blue_Background_2_Rest': '#005d62',\n 'Palette_Blue_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Blue_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Royal blue_Background_2_Rest': '#005d62',\n 'Palette_Royal blue_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Royal blue_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Cornflower_Background_2_Rest': '#005d62',\n 'Palette_Cornflower_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Cornflower_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Navy_Background_2_Rest': '#005d62',\n 'Palette_Navy_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Navy_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Lavender_Background_2_Rest': '#005d62',\n 'Palette_Lavender_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Lavender_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Purple_Background_2_Rest': '#005d62',\n 'Palette_Purple_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Purple_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Grape_Background_2_Rest': '#005d62',\n 'Palette_Grape_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Grape_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Lilac_Background_2_Rest': '#005d62',\n 'Palette_Lilac_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Lilac_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Pink_Background_2_Rest': '#005d62',\n 'Palette_Pink_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Pink_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Magenta_Background_2_Rest': '#005d62',\n 'Palette_Magenta_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Magenta_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Plum_Background_2_Rest': '#007a81',\n 'Palette_Plum_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Plum_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Beige_Background_2_Rest': '#005d62',\n 'Palette_Beige_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Beige_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Mink_Background_2_Rest': '#005d62',\n 'Palette_Mink_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Mink_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Platinum_Background_2_Rest': '#005d62',\n 'Palette_Platinum_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Platinum_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Anchor_Background_2_Rest': '#005d62',\n 'Palette_Anchor_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Anchor_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Green_Background_1_Rest': '#004044',\n 'Palette_Green_Background_2_Rest': '#005d62',\n 'Palette_Green_Background_3_Rest': '#00b3bd',\n 'Palette_Green_Stroke_1_Rest': '#00b3bd',\n 'Palette_Green_Stroke_2_Rest': '#7ad7dd',\n 'Palette_Green_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Green_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Green_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Green_Foreground_3_Rest': '#7ad7dd',\n 'Palette_Green_Foreground_Inverted_Rest': '#00b3bd',\n 'Palette_Dark orange_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Dark orange_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Dark orange_Foreground_3_Rest': '#7ad7dd',\n 'Palette_Dark orange_Background_1_Rest': '#004044',\n 'Palette_Dark orange_Background_2_Rest': '#005d62',\n 'Palette_Dark orange_Background_3_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_1_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_2_Rest': '#7ad7dd',\n 'Palette_Dark orange_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Yellow_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Yellow_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Yellow_Foreground_3_Rest': '#52cbd2',\n 'Palette_Yellow_Foreground_Inverted_Rest': '#005d62',\n 'Palette_Yellow_Stroke_1_Rest': '#00b3bd',\n 'Palette_Yellow_Stroke_2_Rest': '#52cbd2',\n 'Palette_Yellow_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Yellow_Background_1_Rest': '#004044',\n 'Palette_Yellow_Background_2_Rest': '#005d62',\n 'Palette_Yellow_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Berry_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Berry_Foreground_3_Rest': '#52cbd2',\n 'Palette_Berry_Background_1_Rest': '#004044',\n 'Palette_Berry_Background_2_Rest': '#005d62',\n 'Palette_Berry_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_1_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_2_Rest': '#52cbd2',\n 'Palette_Berry_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Light Green_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Light Green_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Light Green_Foreground_3_Rest': '#52cbd2',\n 'Palette_Light Green_Background_1_Rest': '#004044',\n 'Palette_Light Green_Background_2_Rest': '#005d62',\n 'Palette_Light Green_Background_3_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_1_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_2_Rest': '#52cbd2',\n 'Palette_Light Green_Stroke_Active_Rest': '#7ad7dd',\n 'Shadow_Ambient': '#0000003d',\n 'Shadow_Ambient lighter': '#0000001f',\n 'Shadow_Ambient darker': '#00000066',\n 'Shadow_Brand ambient': '#00000040',\n 'Shadow_Key': '#00000047',\n 'Shadow_Key lighter': '#00000024',\n 'Shadow_Key darker': '#0000007a',\n 'Shadow_Brand key': '#0000004d',\n 'Material_Acrylic_Stroke_Stop 2': '#2c3136',\n 'Material_Acrylic_Stroke_Stop 3': 2,\n 'Material_Acrylic_Stroke_Stop 1': 2,\n 'Material_Acrylic_Background_Secondary': '#46406e99',\n 'Material_Acrylic_Background_Primary': '#2e2e2ecc',\n 'Material_Acrylic_Background_Blur': 60,\n};\n\nexport const schemaColors = {\n 'secondary': '#426900',\n 'outline_variant': '#C4C7C7',\n 'Surface_Variant': '#E0E3E3',\n 'Primary': '#004F8F',\n};\n\n// Default export\nexport default {\n brandColors,\n spacing,\n borderRadius,\n fontSize,\n fontWeight,\n lineHeight,\n strokeWidth,\n sharedColors,\n lightModeColors,\n darkModeColors,\n schemaColors,\n};\n","/**\n * Auto-generated Figma Tokens\n * Generated by custom build script\n * Source: tokens.json\n * DO NOT EDIT MANUALLY - Run 'npm run tokens:build' to regenerate\n */\n\n// Brand Colors (Brand-10 to Brand-160)\nexport const brandColors = {\n '10': '#001a1bff',\n '20': '#02383bff',\n '30': '#002426',\n '40': '#004044',\n '50': '#005D62',\n '60': '#007A81',\n '70': '#00969F',\n '80': '#00B3BD',\n '90': '#29BFC8',\n '100': '#52CBD2',\n '110': '#7AD7DD',\n '120': '#A3E4E7',\n '130': '#CCF0F2',\n '140': '#E1F7F8',\n '150': '#fdfdff',\n '160': '#ffffff',\n};\n\n// Design System Tokens\nexport const spacing = {\n '20': 2,\n '40': 4,\n '60': 6,\n '70': 7,\n '80': 8,\n '100': 10,\n '120': 12,\n '150': 15,\n '160': 16,\n '170': 17,\n '180': 18,\n '190': 19,\n '200': 20,\n '220': 22,\n '240': 24,\n '260': 26,\n '270': 27,\n '280': 28,\n '320': 32,\n '360': 36,\n '400': 40,\n '480': 48,\n '520': 52,\n '560': 56,\n '580': 58,\n '600': 60,\n '640': 64,\n '680': 68,\n '720': 72,\n '760': 76,\n '800': 80,\n '860': 86,\n '900': 90,\n '960': 96,\n '1000': 100,\n '1020': 102,\n};\n\nexport const borderRadius = {\n '20': 2,\n '40': 4,\n '60': 6,\n '80': 8,\n '120': 12,\n '160': 16,\n '240': 24,\n '320': 32,\n '400': 40,\n 'Circular': 9999,\n};\n\nexport const fontSize = {\n '190': 19,\n '200': 20,\n '220': 22,\n};\n\nexport const fontWeight = {\n 'Regular': 400,\n 'Medium': 500,\n 'Semibold': 600,\n};\n\nexport const lineHeight = {\n 'lineHeightBase210': 21,\n};\n\nexport const strokeWidth = {\n '10': 1,\n '15': 1.5,\n '20': 2,\n '30': 3,\n '40': 4,\n '60': 6,\n '05': 0.5,\n};\n\n// Shared Global Colors (Palettes: Secondary, Green, Blue, etc.)\nexport const sharedColors = {\n 'Shared_Dark_red_Shade_50': '#130204',\n 'Shared_Dark_red_Shade_40': '#230308',\n 'Shared_Dark_red_Shade_30': '#420610',\n 'Shared_Dark_red_Shade_20': '#590815',\n 'Shared_Dark_red_Shade_10': '#690a19',\n 'Shared_Dark_red_Primary': '#750b1c',\n 'Shared_Dark_red_Tint_10': '#861b2c',\n 'Shared_Dark_red_Tint_20': '#962f3f',\n 'Shared_Dark_red_Tint_30': '#ac4f5e',\n 'Shared_Dark_red_Tint_40': '#d69ca5',\n 'Shared_Dark_red_Tint_50': '#e9c7cd',\n 'Shared_Dark_red_Tint_60': '#f9f0f2',\n 'Shared_Burgundy_Shade_50': '#1a0607',\n 'Shared_Burgundy_Shade_40': '#310b0d',\n 'Shared_Burgundy_Shade_30': '#5c1519',\n 'Shared_Burgundy_Shade_20': '#7d1d21',\n 'Shared_Burgundy_Shade_10': '#942228',\n 'Shared_Burgundy_Primary': '#a4262c',\n 'Shared_Burgundy_Tint_10': '#af393e',\n 'Shared_Burgundy_Tint_20': '#ba4d52',\n 'Shared_Burgundy_Tint_30': '#c86c70',\n 'Shared_Burgundy_Tint_40': '#e4afb2',\n 'Shared_Burgundy_Tint_50': '#f0d3d4',\n 'Shared_Burgundy_Tint_60': '#fbf4f4',\n 'Shared_Cranberry_Shade_50': '#200205',\n 'Shared_Cranberry_Shade_40': '#3b0509',\n 'Shared_Cranberry_Shade_30': '#6e0811',\n 'Shared_Cranberry_Shade_20': '#960b18',\n 'Shared_Cranberry_Shade_10': '#b10e1c',\n 'Shared_Cranberry_Primary': '#c50f1f',\n 'Shared_Cranberry_Tint_10': '#cc2635',\n 'Shared_Cranberry_Tint_20': '#d33f4c',\n 'Shared_Cranberry_Tint_30': '#dc626d',\n 'Shared_Cranberry_Tint_40': '#eeacb2',\n 'Shared_Cranberry_Tint_50': '#f6d1d5',\n 'Shared_Cranberry_Tint_60': '#fdf3f4',\n 'Shared_Red_Shade_50': '#210809',\n 'Shared_Red_Shade_40': '#3f1011',\n 'Shared_Red_Shade_30': '#751d1f',\n 'Shared_Red_Shade_20': '#9f282b',\n 'Shared_Red_Shade_10': '#bc2f32',\n 'Shared_Red_Primary': '#d13438',\n 'Shared_Red_Tint_10': '#d7494c',\n 'Shared_Red_Tint_20': '#dc5e62',\n 'Shared_Red_Tint_30': '#e37d80',\n 'Shared_Red_Tint_40': '#f1bbbc',\n 'Shared_Red_Tint_50': '#f8dadb',\n 'Shared_Red_Tint_60': '#fdf6f6',\n 'Shared_Dark_orange_Shade_50': '#230900',\n 'Shared_Dark_orange_Shade_40': '#411200',\n 'Shared_Dark_orange_Shade_30': '#7a2101',\n 'Shared_Dark_orange_Shade_20': '#a62d01',\n 'Shared_Dark_orange_Shade_10': '#c43501',\n 'Shared_Dark_orange_Primary': '#da3b01',\n 'Shared_Dark_orange_Tint_10': '#de501c',\n 'Shared_Dark_orange_Tint_20': '#e36537',\n 'Shared_Dark_orange_Tint_30': '#e9835e',\n 'Shared_Dark_orange_Tint_40': '#f4bfab',\n 'Shared_Dark_orange_Tint_50': '#f9dcd1',\n 'Shared_Dark_orange_Tint_60': '#fdf6f3',\n 'Shared_Bronze_Shade_50': '#1b0a01',\n 'Shared_Bronze_Shade_40': '#321303',\n 'Shared_Bronze_Shade_30': '#5e2405',\n 'Shared_Bronze_Shade_20': '#7f3107',\n 'Shared_Bronze_Shade_10': '#963a08',\n 'Shared_Bronze_Primary': '#a74109',\n 'Shared_Bronze_Tint_10': '#b2521e',\n 'Shared_Bronze_Tint_20': '#bc6535',\n 'Shared_Bronze_Tint_30': '#ca8057',\n 'Shared_Bronze_Tint_40': '#e5bba4',\n 'Shared_Bronze_Tint_50': '#f1d9cc',\n 'Shared_Bronze_Tint_60': '#fbf5f2',\n 'Shared_Pumpkin_Shade_50': '#200d03',\n 'Shared_Pumpkin_Shade_40': '#3d1805',\n 'Shared_Pumpkin_Shade_30': '#712d09',\n 'Shared_Pumpkin_Shade_20': '#9a3d0c',\n 'Shared_Pumpkin_Shade_10': '#b6480e',\n 'Shared_Pumpkin_Primary': '#ca5010',\n 'Shared_Pumpkin_Tint_10': '#d06228',\n 'Shared_Pumpkin_Tint_20': '#d77440',\n 'Shared_Pumpkin_Tint_30': '#df8e64',\n 'Shared_Pumpkin_Tint_40': '#efc4ad',\n 'Shared_Pumpkin_Tint_50': '#f7dfd2',\n 'Shared_Pumpkin_Tint_60': '#fdf7f4',\n 'Shared_Orange_Shade_50': '#271002',\n 'Shared_Orange_Shade_40': '#4a1e04',\n 'Shared_Orange_Shade_30': '#8a3707',\n 'Shared_Orange_Shade_20': '#bc4b09',\n 'Shared_Orange_Shade_10': '#de590b',\n 'Shared_Orange_Primary': '#f7630c',\n 'Shared_Orange_Tint_10': '#f87528',\n 'Shared_Orange_Tint_20': '#f98845',\n 'Shared_Orange_Tint_30': '#faa06b',\n 'Shared_Orange_Tint_40': '#fdcfb4',\n 'Shared_Orange_Tint_50': '#fee5d7',\n 'Shared_Orange_Tint_60': '#fff9f5',\n 'Shared_Peach_Shade_50': '#291600',\n 'Shared_Peach_Shade_40': '#4d2a00',\n 'Shared_Peach_Shade_30': '#8f4e00',\n 'Shared_Peach_Shade_20': '#c26a00',\n 'Shared_Peach_Shade_10': '#e67e00',\n 'Shared_Peach_Primary': '#ff8c00',\n 'Shared_Peach_Tint_10': '#ff9a1f',\n 'Shared_Peach_Tint_20': '#ffa83d',\n 'Shared_Peach_Tint_30': '#ffba66',\n 'Shared_Peach_Tint_40': '#ffddb3',\n 'Shared_Peach_Tint_50': '#ffedd6',\n 'Shared_Peach_Tint_60': '#fffaf5',\n 'Shared_Marigold_Shade_50': '#251a00',\n 'Shared_Marigold_Shade_40': '#463100',\n 'Shared_Marigold_Shade_30': '#835b00',\n 'Shared_Marigold_Shade_20': '#b27c00',\n 'Shared_Marigold_Shade_10': '#d39300',\n 'Shared_Marigold_Primary': '#eaa300',\n 'Shared_Marigold_Tint_10': '#edad1c',\n 'Shared_Marigold_Tint_20': '#efb839',\n 'Shared_Marigold_Tint_30': '#f2c661',\n 'Shared_Marigold_Tint_40': '#f9e2ae',\n 'Shared_Marigold_Tint_50': '#fcefd3',\n 'Shared_Marigold_Tint_60': '#fefbf4',\n 'Shared_Yellow_Shade_50': '#282400',\n 'Shared_Yellow_Shade_40': '#4c4400',\n 'Shared_Yellow_Shade_30': '#817400',\n 'Shared_Yellow_Shade_20': '#c0ad00',\n 'Shared_Yellow_Shade_10': '#e4cc00',\n 'Shared_Yellow_Primary': '#fde300',\n 'Shared_Yellow_Tint_10': '#fde61e',\n 'Shared_Yellow_Tint_20': '#fdea3d',\n 'Shared_Yellow_Tint_30': '#feee66',\n 'Shared_Yellow_Tint_40': '#fef7b2',\n 'Shared_Yellow_Tint_50': '#fffad6',\n 'Shared_Yellow_Tint_60': '#fffef5',\n 'Shared_Gold_Shade_50': '#1f1900',\n 'Shared_Gold_Shade_40': '#3a2f00',\n 'Shared_Gold_Shade_30': '#6c5700',\n 'Shared_Gold_Shade_20': '#937700',\n 'Shared_Gold_Shade_10': '#ae8c00',\n 'Shared_Gold_Primary': '#c19c00',\n 'Shared_Gold_Tint_10': '#c8a718',\n 'Shared_Gold_Tint_20': '#d0b232',\n 'Shared_Gold_Tint_30': '#dac157',\n 'Shared_Gold_Tint_40': '#ecdfa5',\n 'Shared_Gold_Tint_50': '#f5eece',\n 'Shared_Gold_Tint_60': '#fdfbf2',\n 'Shared_Brass_Shade_50': '#181202',\n 'Shared_Brass_Shade_40': '#2e2103',\n 'Shared_Brass_Shade_30': '#553e06',\n 'Shared_Brass_Shade_20': '#745408',\n 'Shared_Brass_Shade_10': '#89640a',\n 'Shared_Brass_Primary': '#986f0b',\n 'Shared_Brass_Tint_10': '#a47d1e',\n 'Shared_Brass_Tint_20': '#b18c34',\n 'Shared_Brass_Tint_30': '#c1a256',\n 'Shared_Brass_Tint_40': '#e0cea2',\n 'Shared_Brass_Tint_50': '#efe4cb',\n 'Shared_Brass_Tint_60': '#fbf8f2',\n 'Shared_Brown_Shade_50': '#170e07',\n 'Shared_Brown_Shade_40': '#2b1a0e',\n 'Shared_Brown_Shade_30': '#50301a',\n 'Shared_Brown_Shade_20': '#6c4123',\n 'Shared_Brown_Shade_10': '#804d29',\n 'Shared_Brown_Primary': '#8e562e',\n 'Shared_Brown_Tint_10': '#9c663f',\n 'Shared_Brown_Tint_20': '#a97652',\n 'Shared_Brown_Tint_30': '#bb8f6f',\n 'Shared_Brown_Tint_40': '#ddc3b0',\n 'Shared_Brown_Tint_50': '#edded3',\n 'Shared_Brown_Tint_60': '#faf7f4',\n 'Shared_Dark_brown_Shade_50': '#0c0704',\n 'Shared_Dark_brown_Shade_40': '#170c08',\n 'Shared_Dark_brown_Shade_30': '#2b1710',\n 'Shared_Dark_brown_Shade_20': '#3a1f15',\n 'Shared_Dark_brown_Shade_10': '#452519',\n 'Shared_Dark_brown_Primary': '#4d291c',\n 'Shared_Dark_brown_Tint_10': '#623a2b',\n 'Shared_Dark_brown_Tint_20': '#784d3e',\n 'Shared_Dark_brown_Tint_30': '#946b5c',\n 'Shared_Dark_brown_Tint_40': '#caada3',\n 'Shared_Dark_brown_Tint_50': '#e3d2cb',\n 'Shared_Dark_brown_Tint_60': '#f8f3f2',\n 'Shared_Lime_Shade_50': '#121b06',\n 'Shared_Lime_Shade_40': '#23330b',\n 'Shared_Lime_Shade_30': '#405f14',\n 'Shared_Lime_Shade_20': '#57811b',\n 'Shared_Lime_Shade_10': '#689920',\n 'Shared_Lime_Primary': '#73aa24',\n 'Shared_Lime_Tint_10': '#81b437',\n 'Shared_Lime_Tint_20': '#90be4c',\n 'Shared_Lime_Tint_30': '#a4cc6c',\n 'Shared_Lime_Tint_40': '#cfe5af',\n 'Shared_Lime_Tint_50': '#e5f1d3',\n 'Shared_Lime_Tint_60': '#f8fcf4',\n 'Shared_Forest_Shade_50': '#0c1501',\n 'Shared_Forest_Shade_40': '#162702',\n 'Shared_Forest_Shade_30': '#294903',\n 'Shared_Forest_Shade_20': '#376304',\n 'Shared_Forest_Shade_10': '#427505',\n 'Shared_Forest_Primary': '#498205',\n 'Shared_Forest_Tint_10': '#599116',\n 'Shared_Forest_Tint_20': '#6ba02b',\n 'Shared_Forest_Tint_30': '#85b44c',\n 'Shared_Forest_Tint_40': '#bdd99b',\n 'Shared_Forest_Tint_50': '#dbebc7',\n 'Shared_Forest_Tint_60': '#f6faf0',\n 'Shared_Seafoam_Shade_50': '#002111',\n 'Shared_Seafoam_Shade_40': '#003d20',\n 'Shared_Seafoam_Shade_30': '#00723b',\n 'Shared_Seafoam_Shade_20': '#009b51',\n 'Shared_Seafoam_Shade_10': '#00b85f',\n 'Shared_Seafoam_Primary': '#00cc6a',\n 'Shared_Seafoam_Tint_10': '#19d279',\n 'Shared_Seafoam_Tint_20': '#34d889',\n 'Shared_Seafoam_Tint_30': '#5ae0a0',\n 'Shared_Seafoam_Tint_40': '#a8f0cd',\n 'Shared_Seafoam_Tint_50': '#cff7e4',\n 'Shared_Seafoam_Tint_60': '#f3fdf8',\n 'Shared_Light_green_Shade_50': '#031a02',\n 'Shared_Light_green_Shade_40': '#063004',\n 'Shared_Light_green_Shade_30': '#0b5a08',\n 'Shared_Light_green_Shade_20': '#0e7a0b',\n 'Shared_Light_green_Shade_10': '#11910d',\n 'Shared_Light_green_Primary': '#13a10e',\n 'Shared_Light_green_Tint_10': '#27ac22',\n 'Shared_Light_green_Tint_20': '#3db838',\n 'Shared_Light_green_Tint_30': '#5ec75a',\n 'Shared_Light_green_Tint_40': '#a7e3a5',\n 'Shared_Light_green_Tint_50': '#cef0cd',\n 'Shared_Light_green_Tint_60': '#f2fbf2',\n 'Shared_Green_Shade_50': '#031403',\n 'Shared_Green_Shade_40': '#052505',\n 'Shared_Green_Shade_30': '#094509',\n 'Shared_Green_Shade_20': '#0c5e0c',\n 'Shared_Green_Shade_10': '#0e700e',\n 'Shared_Green_Primary': '#107c10',\n 'Shared_Green_Tint_10': '#218c21',\n 'Shared_Green_Tint_20': '#359b35',\n 'Shared_Green_Tint_30': '#54b054',\n 'Shared_Green_Tint_40': '#9fd89f',\n 'Shared_Green_Tint_50': '#c9eac9',\n 'Shared_Green_Tint_60': '#f1faf1',\n 'Shared_Dark_green_Shade_50': '#021102',\n 'Shared_Dark_green_Shade_40': '#032003',\n 'Shared_Dark_green_Shade_30': '#063b06',\n 'Shared_Dark_green_Shade_20': '#085108',\n 'Shared_Dark_green_Shade_10': '#0a5f0a',\n 'Shared_Dark_green_Primary': '#0b6a0b',\n 'Shared_Dark_green_Tint_10': '#1a7c1a',\n 'Shared_Dark_green_Tint_20': '#2d8e2d',\n 'Shared_Dark_green_Tint_30': '#4da64d',\n 'Shared_Dark_green_Tint_40': '#9ad29a',\n 'Shared_Dark_green_Tint_50': '#c6e7c6',\n 'Shared_Dark_green_Tint_60': '#f0f9f0',\n 'Shared_Light_teal_Shade_50': '#001d1f',\n 'Shared_Light_teal_Shade_40': '#00373a',\n 'Shared_Light_teal_Shade_30': '#00666d',\n 'Shared_Light_teal_Shade_20': '#008b94',\n 'Shared_Light_teal_Shade_10': '#00a5af',\n 'Shared_Light_teal_Primary': '#00b7c3',\n 'Shared_Light_teal_Tint_10': '#18bfca',\n 'Shared_Light_teal_Tint_20': '#32c8d1',\n 'Shared_Light_teal_Tint_30': '#58d3db',\n 'Shared_Light_teal_Tint_40': '#a6e9ed',\n 'Shared_Light_teal_Tint_50': '#cef3f5',\n 'Shared_Light_teal_Tint_60': '#f2fcfd',\n 'Shared_Teal_Shade_50': '#001516',\n 'Shared_Teal_Shade_40': '#012728',\n 'Shared_Teal_Shade_30': '#02494c',\n 'Shared_Teal_Shade_20': '#026467',\n 'Shared_Teal_Shade_10': '#037679',\n 'Shared_Teal_Primary': '#038387',\n 'Shared_Teal_Tint_10': '#159195',\n 'Shared_Teal_Tint_20': '#2aa0a4',\n 'Shared_Teal_Tint_30': '#4cb4b7',\n 'Shared_Teal_Tint_40': '#9bd9db',\n 'Shared_Teal_Tint_50': '#c7ebec',\n 'Shared_Teal_Tint_60': '#f0fafa',\n 'Shared_Dark_teal_Shade_50': '#001010',\n 'Shared_Dark_teal_Shade_40': '#001f1f',\n 'Shared_Dark_teal_Shade_30': '#003939',\n 'Shared_Dark_teal_Shade_20': '#004e4e',\n 'Shared_Dark_teal_Shade_10': '#005c5c',\n 'Shared_Dark_teal_Primary': '#006666',\n 'Shared_Dark_teal_Tint_10': '#0e7878',\n 'Shared_Dark_teal_Tint_20': '#218b8b',\n 'Shared_Dark_teal_Tint_30': '#41a3a3',\n 'Shared_Dark_teal_Tint_40': '#92d1d1',\n 'Shared_Dark_teal_Tint_50': '#c2e7e7',\n 'Shared_Dark_teal_Tint_60': '#eff9f9',\n 'Shared_Cyan_Shade_50': '#00181e',\n 'Shared_Cyan_Shade_40': '#002e38',\n 'Shared_Cyan_Shade_30': '#005669',\n 'Shared_Cyan_Shade_20': '#00748f',\n 'Shared_Cyan_Shade_10': '#008aa9',\n 'Shared_Cyan_Primary': '#0099bc',\n 'Shared_Cyan_Tint_10': '#18a4c4',\n 'Shared_Cyan_Tint_20': '#31afcc',\n 'Shared_Cyan_Tint_30': '#56bfd7',\n 'Shared_Cyan_Tint_40': '#a4deeb',\n 'Shared_Cyan_Tint_50': '#cdedf4',\n 'Shared_Cyan_Tint_60': '#f2fafc',\n 'Shared_Steel_Shade_50': '#000f12',\n 'Shared_Steel_Shade_40': '#001b22',\n 'Shared_Steel_Shade_30': '#00333f',\n 'Shared_Steel_Shade_20': '#004555',\n 'Shared_Steel_Shade_10': '#005265',\n 'Shared_Steel_Primary': '#005b70',\n 'Shared_Steel_Tint_10': '#0f6c81',\n 'Shared_Steel_Tint_20': '#237d92',\n 'Shared_Steel_Tint_30': '#4496a9',\n 'Shared_Steel_Tint_40': '#94c8d4',\n 'Shared_Steel_Tint_50': '#c3e1e8',\n 'Shared_Steel_Tint_60': '#eff7f9',\n 'Shared_Light_blue_Shade_50': '#091823',\n 'Shared_Light_blue_Shade_40': '#112d42',\n 'Shared_Light_blue_Shade_30': '#20547c',\n 'Shared_Light_blue_Shade_20': '#2c72a8',\n 'Shared_Light_blue_Shade_10': '#3487c7',\n 'Shared_Light_blue_Primary': '#3a96dd',\n 'Shared_Light_blue_Tint_10': '#4fa1e1',\n 'Shared_Light_blue_Tint_20': '#65ade5',\n 'Shared_Light_blue_Tint_30': '#83bdeb',\n 'Shared_Light_blue_Tint_40': '#bfddf5',\n 'Shared_Light_blue_Tint_50': '#dcedfa',\n 'Shared_Light_blue_Tint_60': '#f6fafe',\n 'Shared_Blue_Shade_50': '#001322',\n 'Shared_Blue_Shade_40': '#002440',\n 'Shared_Blue_Shade_30': '#004377',\n 'Shared_Blue_Shade_20': '#005ba1',\n 'Shared_Blue_Shade_10': '#006cbf',\n 'Shared_Blue_Primary': '#0078d4',\n 'Shared_Blue_Tint_10': '#1a86d9',\n 'Shared_Blue_Tint_20': '#3595de',\n 'Shared_Blue_Tint_30': '#5caae5',\n 'Shared_Blue_Tint_40': '#a9d3f2',\n 'Shared_Blue_Tint_50': '#d0e7f8',\n 'Shared_Blue_Tint_60': '#f3f9fd',\n 'Shared_Royal_blue_Shade_50': '#000c16',\n 'Shared_Royal_blue_Shade_40': '#00172a',\n 'Shared_Royal_blue_Shade_30': '#002c4e',\n 'Shared_Royal_blue_Shade_20': '#003b6a',\n 'Shared_Royal_blue_Shade_10': '#00467e',\n 'Shared_Royal_blue_Primary': '#004e8c',\n 'Shared_Royal_blue_Tint_10': '#125e9a',\n 'Shared_Royal_blue_Tint_20': '#286fa8',\n 'Shared_Royal_blue_Tint_30': '#4a89ba',\n 'Shared_Royal_blue_Tint_40': '#9abfdc',\n 'Shared_Royal_blue_Tint_50': '#c7dced',\n 'Shared_Royal_blue_Tint_60': '#f0f6fa',\n 'Shared_Dark_blue_Shade_50': '#000910',\n 'Shared_Dark_blue_Shade_40': '#00111f',\n 'Shared_Dark_blue_Shade_30': '#002039',\n 'Shared_Dark_blue_Shade_20': '#002b4e',\n 'Shared_Dark_blue_Shade_10': '#00335c',\n 'Shared_Dark_blue_Primary': '#003966',\n 'Shared_Dark_blue_Tint_10': '#0e4a78',\n 'Shared_Dark_blue_Tint_20': '#215c8b',\n 'Shared_Dark_blue_Tint_30': '#4178a3',\n 'Shared_Dark_blue_Tint_40': '#92b5d1',\n 'Shared_Dark_blue_Tint_50': '#c2d6e7',\n 'Shared_Dark_blue_Tint_60': '#eff4f9',\n 'Shared_Cornflower_Shade_50': '#0d1126',\n 'Shared_Cornflower_Shade_40': '#182047',\n 'Shared_Cornflower_Shade_30': '#2c3c85',\n 'Shared_Cornflower_Shade_20': '#3c51b4',\n 'Shared_Cornflower_Shade_10': '#4760d5',\n 'Shared_Cornflower_Primary': '#4f6bed',\n 'Shared_Cornflower_Tint_10': '#637cef',\n 'Shared_Cornflower_Tint_20': '#778df1',\n 'Shared_Cornflower_Tint_30': '#93a4f4',\n 'Shared_Cornflower_Tint_40': '#c8d1fa',\n 'Shared_Cornflower_Tint_50': '#e1e6fc',\n 'Shared_Cornflower_Tint_60': '#f7f9fe',\n 'Shared_Navy_Shade_50': '#00061d',\n 'Shared_Navy_Shade_40': '#000c36',\n 'Shared_Navy_Shade_30': '#001665',\n 'Shared_Navy_Shade_20': '#001e89',\n 'Shared_Navy_Shade_10': '#0023a2',\n 'Shared_Navy_Primary': '#0027b4',\n 'Shared_Navy_Tint_10': '#173bbd',\n 'Shared_Navy_Tint_20': '#3050c6',\n 'Shared_Navy_Tint_30': '#546fd2',\n 'Shared_Navy_Tint_40': '#a3b2e8',\n 'Shared_Navy_Tint_50': '#ccd5f3',\n 'Shared_Navy_Tint_60': '#f2f4fc',\n 'Shared_Lavender_Shade_50': '#120f25',\n 'Shared_Lavender_Shade_40': '#221d46',\n 'Shared_Lavender_Shade_30': '#3f3682',\n 'Shared_Lavender_Shade_20': '#5649b0',\n 'Shared_Lavender_Shade_10': '#6656d1',\n 'Shared_Lavender_Primary': '#7160e8',\n 'Shared_Lavender_Tint_10': '#8172eb',\n 'Shared_Lavender_Tint_20': '#9184ee',\n 'Shared_Lavender_Tint_30': '#a79cf1',\n 'Shared_Lavender_Tint_40': '#d2ccf8',\n 'Shared_Lavender_Tint_50': '#e7e4fb',\n 'Shared_Lavender_Tint_60': '#f9f8fe',\n 'Shared_Purple_Shade_50': '#0f0717',\n 'Shared_Purple_Shade_40': '#1c0e2b',\n 'Shared_Purple_Shade_30': '#341a51',\n 'Shared_Purple_Shade_20': '#46236e',\n 'Shared_Purple_Shade_10': '#532982',\n 'Shared_Purple_Primary': '#5c2e91',\n 'Shared_Purple_Tint_10': '#6b3f9e',\n 'Shared_Purple_Tint_20': '#7c52ab',\n 'Shared_Purple_Tint_30': '#9470bd',\n 'Shared_Purple_Tint_40': '#c6b1de',\n 'Shared_Purple_Tint_50': '#e0d3ed',\n 'Shared_Purple_Tint_60': '#f7f4fb',\n 'Shared_Dark_purple_Shade_50': '#0a0411',\n 'Shared_Dark_purple_Shade_40': '#130820',\n 'Shared_Dark_purple_Shade_30': '#240f3c',\n 'Shared_Dark_purple_Shade_20': '#311552',\n 'Shared_Dark_purple_Shade_10': '#3a1861',\n 'Shared_Dark_purple_Primary': '#401b6c',\n 'Shared_Dark_purple_Tint_10': '#512b7e',\n 'Shared_Dark_purple_Tint_20': '#633e8f',\n 'Shared_Dark_purple_Tint_30': '#7e5ca7',\n 'Shared_Dark_purple_Tint_40': '#b9a3d3',\n 'Shared_Dark_purple_Tint_50': '#d8cce7',\n 'Shared_Dark_purple_Tint_60': '#f5f2f9',\n 'Shared_Orchid_Shade_50': '#16101d',\n 'Shared_Orchid_Shade_40': '#281e37',\n 'Shared_Orchid_Shade_30': '#4c3867',\n 'Shared_Orchid_Shade_20': '#674c8c',\n 'Shared_Orchid_Shade_10': '#795aa6',\n 'Shared_Orchid_Primary': '#8764b8',\n 'Shared_Orchid_Tint_10': '#9373c0',\n 'Shared_Orchid_Tint_20': '#a083c9',\n 'Shared_Orchid_Tint_30': '#b29ad4',\n 'Shared_Orchid_Tint_40': '#d7caea',\n 'Shared_Orchid_Tint_50': '#e9e2f4',\n 'Shared_Orchid_Tint_60': '#f9f8fc',\n 'Shared_Grape_Shade_50': '#160418',\n 'Shared_Grape_Shade_40': '#29072e',\n 'Shared_Grape_Shade_30': '#4c0d55',\n 'Shared_Grape_Shade_20': '#671174',\n 'Shared_Grape_Shade_10': '#7a1589',\n 'Shared_Grape_Primary': '#881798',\n 'Shared_Grape_Tint_10': '#952aa4',\n 'Shared_Grape_Tint_20': '#a33fb1',\n 'Shared_Grape_Tint_30': '#b55fc1',\n 'Shared_Grape_Tint_40': '#d9a7e0',\n 'Shared_Grape_Tint_50': '#eaceef',\n 'Shared_Grape_Tint_60': '#faf2fb',\n 'Shared_Berry_Shade_50': '#1f091d',\n 'Shared_Berry_Shade_40': '#3a1136',\n 'Shared_Berry_Shade_30': '#6d2064',\n 'Shared_Berry_Shade_20': '#932b88',\n 'Shared_Berry_Shade_10': '#af33a1',\n 'Shared_Berry_Primary': '#c239b3',\n 'Shared_Berry_Tint_10': '#c94cbc',\n 'Shared_Berry_Tint_20': '#d161c4',\n 'Shared_Berry_Tint_30': '#da7ed0',\n 'Shared_Berry_Tint_40': '#edbbe7',\n 'Shared_Berry_Tint_50': '#f5daf2',\n 'Shared_Berry_Tint_60': '#fdf5fc',\n 'Shared_Lilac_Shade_50': '#1c0b1f',\n 'Shared_Lilac_Shade_40': '#35153a',\n 'Shared_Lilac_Shade_30': '#63276d',\n 'Shared_Lilac_Shade_20': '#863593',\n 'Shared_Lilac_Shade_10': '#9f3faf',\n 'Shared_Lilac_Primary': '#b146c2',\n 'Shared_Lilac_Tint_10': '#ba58c9',\n 'Shared_Lilac_Tint_20': '#c36bd1',\n 'Shared_Lilac_Tint_30': '#cf87da',\n 'Shared_Lilac_Tint_40': '#e6bfed',\n 'Shared_Lilac_Tint_50': '#f2dcf5',\n 'Shared_Lilac_Tint_60': '#fcf6fd',\n 'Shared_Pink_Shade_50': '#24091b',\n 'Shared_Pink_Shade_40': '#441232',\n 'Shared_Pink_Shade_30': '#80215d',\n 'Shared_Pink_Shade_20': '#ad2d7e',\n 'Shared_Pink_Shade_10': '#cd3595',\n 'Shared_Pink_Primary': '#e43ba6',\n 'Shared_Pink_Tint_10': '#e750b0',\n 'Shared_Pink_Tint_20': '#ea66ba',\n 'Shared_Pink_Tint_30': '#ef85c8',\n 'Shared_Pink_Tint_40': '#f7c0e3',\n 'Shared_Pink_Tint_50': '#fbddf0',\n 'Shared_Pink_Tint_60': '#fef6fb',\n 'Shared_Hot_pink_Shade_50': '#240016',\n 'Shared_Hot_pink_Shade_40': '#44002a',\n 'Shared_Hot_pink_Shade_30': '#7f004e',\n 'Shared_Hot_pink_Shade_20': '#ad006a',\n 'Shared_Hot_pink_Shade_10': '#cc007e',\n 'Shared_Hot_pink_Primary': '#e3008c',\n 'Shared_Hot_pink_Tint_10': '#e61c99',\n 'Shared_Hot_pink_Tint_20': '#ea38a6',\n 'Shared_Hot_pink_Tint_30': '#ee5fb7',\n 'Shared_Hot_pink_Tint_40': '#f7adda',\n 'Shared_Hot_pink_Tint_50': '#fbd2eb',\n 'Shared_Hot_pink_Tint_60': '#fef4fa',\n 'Shared_Magenta_Shade_50': '#1f0013',\n 'Shared_Magenta_Shade_40': '#390024',\n 'Shared_Magenta_Shade_30': '#6b0043',\n 'Shared_Magenta_Shade_20': '#91005a',\n 'Shared_Magenta_Shade_10': '#ac006b',\n 'Shared_Magenta_Primary': '#bf0077',\n 'Shared_Magenta_Tint_10': '#c71885',\n 'Shared_Magenta_Tint_20': '#ce3293',\n 'Shared_Magenta_Tint_30': '#d957a8',\n 'Shared_Magenta_Tint_40': '#eca5d1',\n 'Shared_Magenta_Tint_50': '#f5cee6',\n 'Shared_Magenta_Tint_60': '#fcf2f9',\n 'Shared_Plum_Shade_50': '#13000c',\n 'Shared_Plum_Shade_40': '#240017',\n 'Shared_Plum_Shade_30': '#43002b',\n 'Shared_Plum_Shade_20': '#5a003b',\n 'Shared_Plum_Shade_10': '#6b0045',\n 'Shared_Plum_Primary': '#77004d',\n 'Shared_Plum_Tint_10': '#87105d',\n 'Shared_Plum_Tint_20': '#98246f',\n 'Shared_Plum_Tint_30': '#ad4589',\n 'Shared_Plum_Tint_40': '#d696c0',\n 'Shared_Plum_Tint_50': '#e9c4dc',\n 'Shared_Plum_Tint_60': '#faf0f6',\n 'Shared_Beige_Shade_50': '#141313',\n 'Shared_Beige_Shade_40': '#252323',\n 'Shared_Beige_Shade_30': '#444241',\n 'Shared_Beige_Shade_20': '#5d5958',\n 'Shared_Beige_Shade_10': '#6e6968',\n 'Shared_Beige_Primary': '#7a7574',\n 'Shared_Beige_Tint_10': '#8a8584',\n 'Shared_Beige_Tint_20': '#9a9594',\n 'Shared_Beige_Tint_30': '#afabaa',\n 'Shared_Beige_Tint_40': '#d7d4d4',\n 'Shared_Beige_Tint_50': '#eae8e8',\n 'Shared_Beige_Tint_60': '#faf9f9',\n 'Shared_Mink_Shade_50': '#0f0e0e',\n 'Shared_Mink_Shade_40': '#1c1b1a',\n 'Shared_Mink_Shade_30': '#343231',\n 'Shared_Mink_Shade_20': '#474443',\n 'Shared_Mink_Shade_10': '#54514f',\n 'Shared_Mink_Primary': '#5d5a58',\n 'Shared_Mink_Tint_10': '#706d6b',\n 'Shared_Mink_Tint_20': '#84817e',\n 'Shared_Mink_Tint_30': '#9e9b99',\n 'Shared_Mink_Tint_40': '#cecccb',\n 'Shared_Mink_Tint_50': '#e5e4e3',\n 'Shared_Mink_Tint_60': '#f8f8f8',\n 'Shared_Silver_Shade_50': '#151818',\n 'Shared_Silver_Shade_40': '#282d2e',\n 'Shared_Silver_Shade_30': '#4a5356',\n 'Shared_Silver_Shade_20': '#657174',\n 'Shared_Silver_Shade_10': '#78868a',\n 'Shared_Silver_Primary': '#859599',\n 'Shared_Silver_Tint_10': '#92a1a5',\n 'Shared_Silver_Tint_20': '#a0aeb1',\n 'Shared_Silver_Tint_30': '#b3bfc2',\n 'Shared_Silver_Tint_40': '#d8dfe0',\n 'Shared_Silver_Tint_50': '#eaeeef',\n 'Shared_Silver_Tint_60': '#fafbfb',\n 'Shared_Platinum_Shade_50': '#111314',\n 'Shared_Platinum_Shade_40': '#1f2426',\n 'Shared_Platinum_Shade_30': '#3b4447',\n 'Shared_Platinum_Shade_20': '#505c60',\n 'Shared_Platinum_Shade_10': '#5f6d71',\n 'Shared_Platinum_Primary': '#69797e',\n 'Shared_Platinum_Tint_10': '#79898d',\n 'Shared_Platinum_Tint_20': '#89989d',\n 'Shared_Platinum_Tint_30': '#a0adb2',\n 'Shared_Platinum_Tint_40': '#cdd6d8',\n 'Shared_Platinum_Tint_50': '#e4e9ea',\n 'Shared_Platinum_Tint_60': '#f8f9fa',\n 'Shared_Anchor_Shade_50': '#090a0b',\n 'Shared_Anchor_Shade_40': '#111315',\n 'Shared_Anchor_Shade_30': '#202427',\n 'Shared_Anchor_Shade_20': '#2b3135',\n 'Shared_Anchor_Shade_10': '#333a3f',\n 'Shared_Anchor_Primary': '#394146',\n 'Shared_Anchor_Tint_10': '#4d565c',\n 'Shared_Anchor_Tint_20': '#626c72',\n 'Shared_Anchor_Tint_30': '#808a90',\n 'Shared_Anchor_Tint_40': '#bcc3c7',\n 'Shared_Anchor_Tint_50': '#dbdfe1',\n 'Shared_Anchor_Tint_60': '#f6f7f8',\n 'Shared_Charcoal_Shade_50': '#090909',\n 'Shared_Charcoal_Shade_40': '#111111',\n 'Shared_Charcoal_Shade_30': '#202020',\n 'Shared_Charcoal_Shade_20': '#2b2b2b',\n 'Shared_Charcoal_Shade_10': '#333333',\n 'Shared_Charcoal_Primary': '#393939',\n 'Shared_Charcoal_Tint_10': '#515151',\n 'Shared_Charcoal_Tint_20': '#686868',\n 'Shared_Charcoal_Tint_30': '#888888',\n 'Shared_Charcoal_Tint_40': '#c4c4c4',\n 'Shared_Charcoal_Tint_50': '#dfdfdf',\n 'Shared_Charcoal_Tint_60': '#f7f7f7',\n 'Shared_Charcoal_Color': '#ffffff',\n 'Shared_Secondary_Shade_50': '#1c280d',\n 'Shared_Secondary_Shade_40': '#334717',\n 'Shared_Secondary_Shade_30': '#496721',\n 'Shared_Secondary_Shade_20': '#60872b',\n 'Shared_Secondary_Shade_10': '#76a635',\n 'Shared_Secondary_Primary': '#5C9F38',\n 'Shared_Secondary_Tint_10': '#9fcf5e',\n 'Shared_Secondary_Tint_20': '#b1d87c',\n 'Shared_Secondary_Tint_30': '#c4e19b',\n 'Shared_Secondary_Tint_40': '#d6eaba',\n 'Shared_Secondary_Tint_50': '#e8f4d9',\n 'Shared_Secondary_Tint_60': '#fafdf7',\n 'Shared_Tertiary_Shade_50': '#002330',\n 'Shared_Tertiary_Shade_40': '#003f56',\n 'Shared_Tertiary_Shade_30': '#005a7c',\n 'Shared_Tertiary_Shade_20': '#0076a3',\n 'Shared_Tertiary_Shade_10': '#0092c9',\n 'Shared_Tertiary_Primary': '#00aeef',\n 'Shared_Tertiary_Tint_10': '#29bbf2',\n 'Shared_Tertiary_Tint_20': '#52c8f4',\n 'Shared_Tertiary_Tint_30': '#7ad5f7',\n 'Shared_Tertiary_Tint_40': '#a3e2f9',\n 'Shared_Tertiary_Tint_50': '#cceffc',\n 'Shared_Tertiary_Tint_60': '#f5fcfe',\n 'Shared_Quarternary_Shade_50': '#002426',\n 'Shared_Quarternary_Shade_40': '#004044',\n 'Shared_Quarternary_Shade_30': '#005d62',\n 'Shared_Quarternary_Shade_20': '#007a81',\n 'Shared_Quarternary_Shade_10': '#00969f',\n 'Shared_Quarternary_Primary': '#00b3bd',\n 'Shared_Quarternary_Tint_10': '#29bfc8',\n 'Shared_Quarternary_Tint_20': '#52cbd2',\n 'Shared_Quarternary_Tint_30': '#7ad7dd',\n 'Shared_Quarternary_Tint_40': '#a3e4e7',\n 'Shared_Quarternary_Tint_50': '#ccf0f2',\n 'Shared_Quarternary_Tint_60': '#f5fcfc',\n};\n\nexport const foundationColors = {\n 'Foundation_Danger_error': '#FD3A3A',\n};\n\nexport const schemeColors = {\n 'Scheme_Secondary': '#426900',\n};\n\n// Light Mode Colors\nexport const lightModeColors = {\n 'Neutral_Background_1_Rest': '#ffffff',\n 'Neutral_Background_1_Hover': '#f5f5f5',\n 'Neutral_Background_1_Pressed': '#e0e0e0',\n 'Neutral_Background_1_Selected': '#ebebeb',\n 'Neutral_Background_2_Rest': '#fafafa',\n 'Neutral_Background_2_Hover': '#f0f0f0',\n 'Neutral_Background_2_Pressed': '#dbdbdb',\n 'Neutral_Background_2_Selected': '#e6e6e6',\n 'Neutral_Background_3_Rest': '#f5f5f5',\n 'Neutral_Background_3_Hover': '#ebebeb',\n 'Neutral_Background_3_Pressed': '#d6d6d6',\n 'Neutral_Background_3_Selected': '#e0e0e0',\n 'Neutral_Background_4_Rest': '#f0f0f0',\n 'Neutral_Background_4_Hover': '#fafafa',\n 'Neutral_Background_4_Pressed': '#f5f5f5',\n 'Neutral_Background_4_Selected': '#ffffff',\n 'Neutral_Background_5_Rest': '#ebebeb',\n 'Neutral_Background_5_Hover': '#f5f5f5',\n 'Neutral_Background_5_Pressed': '#f0f0f0',\n 'Neutral_Background_5_Selected': '#fafafa',\n 'Neutral_Background_6_Rest': '#e6e6e6',\n 'Neutral_Background_Inverted_Rest': '#292929',\n 'Neutral_Background_Inverted_Disabled_Rest': 1,\n 'Neutral_Background_Alpha_1_Rest': '#1a1a1a80',\n 'Neutral_Background_Alpha_2_Rest': 8,\n 'Neutral_Background_Static_Rest': '#333333',\n 'Neutral_Background_Subtle_Rest': '#00000000',\n 'Neutral_Background_Subtle_Hover': '#f5f5f5',\n 'Neutral_Background_Subtle_Pressed': '#e0e0e0',\n 'Neutral_Background_Subtle_Selected': '#ebebeb',\n 'Neutral_Background_Subtle_Light alpha_Hover': '#1a1a1ab3',\n 'Neutral_Background_Subtle_Light alpha_Pressed': '#1a1a1a80',\n 'Neutral_Background_Subtle_Light alpha_Selected': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Rest': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Hover': 1,\n 'Neutral_Background_Subtle_Inverted_Pressed': 3,\n 'Neutral_Background_Subtle_Inverted_Selected': 2,\n 'Neutral_Background_Transparent_Rest': '#00000000',\n 'Neutral_Background_Transparent_Hover': '#00000000',\n 'Neutral_Background_Transparent_Pressed': '#00000000',\n 'Neutral_Background_Transparent_Selected': '#00000000',\n 'Neutral_Background_Disabled_Rest': '#f0f0f0',\n 'Neutral_Background_Stencil_1_Rest': '#e6e6e6',\n 'Neutral_Background_Stencil_1_Alpha_Rest': 1,\n 'Neutral_Background_Stencil_2_Rest': '#fafafa',\n 'Neutral_Background_Stencil_2_Alpha_Rest': '#1a1a1a0d',\n 'Neutral_Background_Overlay_Rest': 4,\n 'Neutral_Background_Overlay_Scrollbar_Rest': '#1a1a1a80',\n 'Neutral_Foreground_1_Rest': '#242424',\n 'Neutral_Foreground_1_Hover': '#242424',\n 'Neutral_Foreground_1_Pressed': '#242424',\n 'Neutral_Foreground_1_Selected': '#242424',\n 'Neutral_Foreground_2_Rest': '#424242',\n 'Neutral_Foreground_2_Hover': '#242424',\n 'Neutral_Foreground_2_Pressed': '#242424',\n 'Neutral_Foreground_2_Selected': '#242424',\n 'Neutral_Foreground_2_Brand_Hover': '#1e398d',\n 'Neutral_Foreground_2_Brand_Pressed': '#182e71',\n 'Neutral_Foreground_2_Brand_Selected': '#1e398d',\n 'Neutral_Foreground_2_Link_Rest': '#424242',\n 'Neutral_Foreground_2_Link_Hover': '#242424',\n 'Neutral_Foreground_2_Link_Pressed': '#242424',\n 'Neutral_Foreground_2_Link_Selected': '#242424',\n 'Neutral_Foreground_3_Rest': '#616161',\n 'Neutral_Foreground_3_Hover': '#424242',\n 'Neutral_Foreground_3_Pressed': '#424242',\n 'Neutral_Foreground_3_Selected': '#424242',\n 'Neutral_Foreground_3_Brand_Hover': '#1e398d',\n 'Neutral_Foreground_3_Brand_Pressed': '#182e71',\n 'Neutral_Foreground_3_Brand_Selected': '#1e398d',\n 'Neutral_Foreground_4_Rest': '#707070',\n 'Neutral_Foreground_Disabled_Rest': '#bdbdbd',\n 'Neutral_Foreground_Static_Rest': '#242424',\n 'Neutral_Foreground_Static_Inverted_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Hover': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Pressed': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Selected': '#ffffff',\n 'Neutral_Foreground_Inverted_2_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_Disabled_Rest': 4,\n 'Neutral_Foreground_Inverted_Link_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Hover': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Pressed': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Selected': '#ffffff',\n 'Neutral_Foreground_On Brand_Rest': '#ffffff',\n 'Neutral_Stroke_1_Rest': '#d1d1d1',\n 'Neutral_Stroke_1_Hover': '#c7c7c7',\n 'Neutral_Stroke_1_Pressed': '#b3b3b3',\n 'Neutral_Stroke_1_Selected': '#bdbdbd',\n 'Neutral_Stroke_2_Rest': '#e0e0e0',\n 'Neutral_Stroke_3_Rest': '#f0f0f0',\n 'Neutral_Stroke_Alpha_1_Rest': '#1a1a1a0d',\n 'Neutral_Stroke_Alpha_2_Rest': 2,\n 'Neutral_Stroke_Subtle_Rest': '#e0e0e0',\n 'Neutral_Stroke_on Brand_1_Rest': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Rest': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Hover': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Pressed': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Selected': '#ffffff',\n 'Neutral_Stroke_Accessible_Rest': '#616161',\n 'Neutral_Stroke_Accessible_Hover': '#575757',\n 'Neutral_Stroke_Accessible_Pressed': '#4d4d4d',\n 'Neutral_Stroke_Accessible_Selected': '#1e398d',\n 'Neutral_Stroke_Focus_1_Rest': '#ffffff',\n 'Neutral_Stroke_Focus_2_Rest': '#000000',\n 'Neutral_Stroke_Transparent_Interactive_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Disabled_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Rest': '#00000000',\n 'Neutral_Stroke_Disabled_Rest': '#e0e0e0',\n 'Neutral_Stroke_Disabled_Inverted_Rest': 4,\n 'Brand_Background_1_Rest': '#00B3BD',\n 'Brand_Background_1_Hover': '#182e71',\n 'Brand_Background_1_Pressed': '#09112a',\n 'Brand_Background_1_Selected': '#122255',\n 'Brand_Background_2_Rest': '#ffffff',\n 'Brand_Background_2_Hover': '#fdfdff',\n 'Brand_Background_2_Pressed': '#d0d6e8',\n 'Brand_Background_Inverted_Rest': '#ffffff',\n 'Brand_Background_Inverted_Hover': '#ffffff',\n 'Brand_Background_Inverted_Pressed': '#e7e9f4',\n 'Brand_Background_Inverted_Selected': '#fdfdff',\n 'Brand_Background_Compound_Rest': '#1e398d',\n 'Brand_Background_Compound_Hover': '#182e71',\n 'Brand_Background_Compound_Pressed': '#122255',\n 'Brand_Background_Static_1_Rest': '#1e398d',\n 'Brand_Background_Static_3_Rest': '#122255',\n 'Brand_Background_Static_4_Rest': '#09112a',\n 'Brand_Foreground_1_Rest': '#1e398d',\n 'Brand_Foreground_2_Rest': '#182e71',\n 'Brand_Foreground_2_Hover': '#122255',\n 'Brand_Foreground_2_Pressed': '#060b1c',\n 'Brand_Foreground_Link_Rest': '#182e71',\n 'Brand_Foreground_Link_Hover': '#122255',\n 'Brand_Foreground_Link_Pressed': '#09112a',\n 'Brand_Foreground_Link_Selected': '#182e71',\n 'Brand_Foreground_Inverted_Rest': '#7787bb',\n 'Brand_Foreground_Inverted_Hover': '#a4afd1',\n 'Brand_Foreground_Inverted_Pressed': '#7787bb',\n 'Brand_Foreground_On Light_Rest': '#1e398d',\n 'Brand_Foreground_On Light_Hover': '#182e71',\n 'Brand_Foreground_On Light_Pressed': '#0c1738',\n 'Brand_Foreground_On Light_Selected': '#122255',\n 'Brand_Foreground_Compound_Rest': '#1e398d',\n 'Brand_Foreground_Compound_Hover': '#182e71',\n 'Brand_Foreground_Compound_Pressed': '#122255',\n 'Brand_Stroke_1_Rest': '#00B3BD',\n 'Brand_Stroke_2_Rest': '#e7e9f4',\n 'Brand_Stroke_2_Hover': '#bac2dd',\n 'Brand_Stroke_2_Pressed': '#1e398d',\n 'Brand_Stroke_2_Contrast_Rest': '#e7e9f4',\n 'Brand_Stroke_Compound_Rest': '#1e398d',\n 'Brand_Stroke_Compound_Hover': '#182e71',\n 'Brand_Stroke_Compound_Pressed': '#122255',\n 'Status_Danger_Background_1_Rest': '#f5fcfc',\n 'Status_Danger_Background_2_Rest': '#a3e4e7',\n 'Status_Danger_Background_3_Rest': '#00b3bd',\n 'Status_Danger_Foreground_1_Rest': '#b10e1c',\n 'Status_Danger_Foreground_2_Rest': '#005d62',\n 'Status_Danger_Foreground_3_Rest': '#00b3bd',\n 'Status_Danger_Foreground_3_Pressed': '#007a81',\n 'Status_Danger_Foreground_3_Hover': '#00969f',\n 'Status_Danger_Foreground_Inverted_Rest': '#7ad7dd',\n 'Status_Danger_Stroke_1_Rest': '#a3e4e7',\n 'Status_Danger_Stroke_2_Rest': '#C50F1F',\n 'Status_Success_Background_1_Rest': '#f5fcfc',\n 'Status_Success_Background_2_Rest': '#a3e4e7',\n 'Status_Success_Background_3_Rest': '#00b3bd',\n 'Status_Success_Foreground_1_Rest': '#00969f',\n 'Status_Success_Foreground_2_Rest': '#005d62',\n 'Status_Success_Foreground_3_Rest': '#00b3bd',\n 'Status_Success_Foreground_Inverted_Rest': '#52cbd2',\n 'Status_Success_Stroke_1_Rest': '#a3e4e7',\n 'Status_Success_Stroke_2_Rest': '#00b3bd',\n 'Status_Warning_Background_1_Rest': '#f5fcfc',\n 'Status_Warning_Background_2_Rest': '#a3e4e7',\n 'Status_Warning_Background_3_Rest': '#00b3bd',\n 'Status_Warning_Foreground_1_Rest': '#007a81',\n 'Status_Warning_Foreground_2_Rest': '#005d62',\n 'Status_Warning_Foreground_3_Rest': '#007a81',\n 'Status_Warning_Foreground_Inverted_Rest': '#7ad7dd',\n 'Status_Warning_Stroke_1_Rest': '#a3e4e7',\n 'Status_Warning_Stroke_2_Rest': '#007a81',\n 'Status_Oof_Foreground_3_Rest': '#00b3bd',\n 'Status_Away_Background_3_Rest': '#00b3bd',\n 'Status_Available_Foreground_3_Rest': '#00b3bd',\n 'Status_Severe_Background_1_Rest': '#f5fcfc',\n 'Status_Severe_Background_2_Rest': '#a3e4e7',\n 'Status_Severe_Background_3_Rest': '#00b3bd',\n 'Status_Severe_Foreground_1_Rest': '#007a81',\n 'Status_Severe_Foreground_2_Rest': '#007a81',\n 'Status_Severe_Foreground_3_Rest': '#007a81',\n 'Status_Severe_Foreground_Inverted_Rest': '#7ad7dd',\n 'Status_Severe_Stroke_1_Rest': '#a3e4e7',\n 'Status_Severe_Stroke_2_Rest': '#007a81',\n 'Palette_Dark red_Background_2_Rest': '#a3e4e7',\n 'Palette_Dark red_Foreground_2_Rest': '#005d62',\n 'Palette_Dark red_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Cranberry_Background_2_Rest': '#a3e4e7',\n 'Palette_Cranberry_Foreground_2_Rest': '#005d62',\n 'Palette_Cranberry_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Red_Background_1_Rest': '#f5fcfc',\n 'Palette_Red_Background_2_Rest': '#a3e4e7',\n 'Palette_Red_Background_3_Rest': '#00b3bd',\n 'Palette_Red_Foreground_1_Rest': '#00969f',\n 'Palette_Red_Foreground_2_Rest': '#005d62',\n 'Palette_Red_Foreground_3_Rest': '#00b3bd',\n 'Palette_Red_Foreground_Inverted_Rest': '#52cbd2',\n 'Palette_Red_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Red_Stroke_2_Rest': '#00b3bd',\n 'Palette_Red_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Pumpkin_Background_2_Rest': '#a3e4e7',\n 'Palette_Pumpkin_Foreground_2_Rest': '#005d62',\n 'Palette_Pumpkin_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Peach_Background_2_Rest': '#a3e4e7',\n 'Palette_Peach_Foreground_2_Rest': '#005d62',\n 'Palette_Peach_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Marigold_Background_1_Rest': '#f5fcfc',\n 'Palette_Marigold_Background_2_Rest': '#a3e4e7',\n 'Palette_Marigold_Background_3_Rest': '#00b3bd',\n 'Palette_Marigold_Foreground_1_Rest': '#00969f',\n 'Palette_Marigold_Foreground_1_Rest 2': '#00b3bd',\n 'Palette_Marigold_Foreground_2_Rest': '#005d62',\n 'Palette_Marigold_Foreground_3_Rest': '#00b3bd',\n 'Palette_Marigold_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Marigold_Stroke_2_Rest': '#00b3bd',\n 'Palette_Marigold_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Gold_Background_2_Rest': '#a3e4e7',\n 'Palette_Gold_Foreground_2_Rest': '#005d62',\n 'Palette_Gold_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Brass_Background_2_Rest': '#a3e4e7',\n 'Palette_Brass_Foreground_2_Rest': '#005d62',\n 'Palette_Brass_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Brown_Background_2_Rest': '#a3e4e7',\n 'Palette_Brown_Foreground_2_Rest': '#005d62',\n 'Palette_Brown_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Forest_Background_2_Rest': '#a3e4e7',\n 'Palette_Forest_Foreground_2_Rest': '#005d62',\n 'Palette_Forest_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Seafoam_Background_2_Rest': '#a3e4e7',\n 'Palette_Seafoam_Foreground_2_Rest': '#005d62',\n 'Palette_Seafoam_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Dark green_Background_2_Rest': '#a3e4e7',\n 'Palette_Dark green_Foreground_2_Rest': '#005d62',\n 'Palette_Dark green_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Light teal_Background_2_Rest': '#a3e4e7',\n 'Palette_Light teal_Foreground_2_Rest': '#005d62',\n 'Palette_Light teal_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Teal_Background_2_Rest': '#a3e4e7',\n 'Palette_Teal_Foreground_2_Rest': '#005d62',\n 'Palette_Teal_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Steel_Background_2_Rest': '#a3e4e7',\n 'Palette_Steel_Foreground_2_Rest': '#005d62',\n 'Palette_Steel_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Blue_Background_2_Rest': '#a3e4e7',\n 'Palette_Blue_Foreground_2_Rest': '#005d62',\n 'Palette_Blue_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Royal blue_Background_2_Rest': '#a3e4e7',\n 'Palette_Royal blue_Foreground_2_Rest': '#005d62',\n 'Palette_Royal blue_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Cornflower_Background_2_Rest': '#a3e4e7',\n 'Palette_Cornflower_Foreground_2_Rest': '#005d62',\n 'Palette_Cornflower_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Navy_Background_2_Rest': '#a3e4e7',\n 'Palette_Navy_Foreground_2_Rest': '#005d62',\n 'Palette_Navy_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Lavender_Background_2_Rest': '#a3e4e7',\n 'Palette_Lavender_Foreground_2_Rest': '#005d62',\n 'Palette_Lavender_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Purple_Background_2_Rest': '#a3e4e7',\n 'Palette_Purple_Foreground_2_Rest': '#005d62',\n 'Palette_Purple_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Grape_Background_2_Rest': '#a3e4e7',\n 'Palette_Grape_Foreground_2_Rest': '#005d62',\n 'Palette_Grape_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Lilac_Background_2_Rest': '#a3e4e7',\n 'Palette_Lilac_Foreground_2_Rest': '#005d62',\n 'Palette_Lilac_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Pink_Background_2_Rest': '#a3e4e7',\n 'Palette_Pink_Foreground_2_Rest': '#005d62',\n 'Palette_Pink_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Magenta_Background_2_Rest': '#a3e4e7',\n 'Palette_Magenta_Foreground_2_Rest': '#005d62',\n 'Palette_Magenta_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Plum_Background_2_Rest': '#a3e4e7',\n 'Palette_Plum_Foreground_2_Rest': '#005d62',\n 'Palette_Plum_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Beige_Background_2_Rest': '#a3e4e7',\n 'Palette_Beige_Foreground_2_Rest': '#005d62',\n 'Palette_Beige_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Mink_Background_2_Rest': '#a3e4e7',\n 'Palette_Mink_Foreground_2_Rest': '#005d62',\n 'Palette_Mink_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Platinum_Background_2_Rest': '#a3e4e7',\n 'Palette_Platinum_Foreground_2_Rest': '#005d62',\n 'Palette_Platinum_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Anchor_Background_2_Rest': '#a3e4e7',\n 'Palette_Anchor_Foreground_2_Rest': '#005d62',\n 'Palette_Anchor_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Green_Background_1_Rest': '#f5fcfc',\n 'Palette_Green_Background_2_Rest': '#a3e4e7',\n 'Palette_Green_Background_3_Rest': '#00b3bd',\n 'Palette_Green_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Green_Stroke_2_Rest': '#00b3bd',\n 'Palette_Green_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Green_Foreground_1_Rest': '#00969f',\n 'Palette_Green_Foreground_2_Rest': '#005d62',\n 'Palette_Green_Foreground_3_Rest': '#00b3bd',\n 'Palette_Green_Foreground_Inverted_Rest': '#52cbd2',\n 'Palette_Dark orange_Foreground_1_Rest': '#00969f',\n 'Palette_Dark orange_Foreground_2_Rest': '#005d62',\n 'Palette_Dark orange_Foreground_3_Rest': '#00b3bd',\n 'Palette_Dark orange_Background_1_Rest': '#f5fcfc',\n 'Palette_Dark orange_Background_2_Rest': '#a3e4e7',\n 'Palette_Dark orange_Background_3_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Dark orange_Stroke_2_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Yellow_Foreground_1_Rest': '#005d62',\n 'Palette_Yellow_Foreground_2_Rest': '#005d62',\n 'Palette_Yellow_Foreground_3_Rest': '#00b3bd',\n 'Palette_Yellow_Foreground_Inverted_Rest': '#a3e4e7',\n 'Palette_Yellow_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Yellow_Stroke_2_Rest': '#00b3bd',\n 'Palette_Yellow_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Yellow_Background_1_Rest': '#f5fcfc',\n 'Palette_Yellow_Background_2_Rest': '#a3e4e7',\n 'Palette_Yellow_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Foreground_1_Rest': '#00969f',\n 'Palette_Berry_Foreground_2_Rest': '#005d62',\n 'Palette_Berry_Foreground_3_Rest': '#00b3bd',\n 'Palette_Berry_Background_1_Rest': '#f5fcfc',\n 'Palette_Berry_Background_2_Rest': '#a3e4e7',\n 'Palette_Berry_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Berry_Stroke_2_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Light Green_Foreground_1_Rest': '#00969f',\n 'Palette_Light Green_Foreground_2_Rest': '#005d62',\n 'Palette_Light Green_Foreground_3_Rest': '#00b3bd',\n 'Palette_Light Green_Background_1_Rest': '#f5fcfc',\n 'Palette_Light Green_Background_2_Rest': '#a3e4e7',\n 'Palette_Light Green_Background_3_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Light Green_Stroke_2_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_Active_Rest': '#00b3bd',\n 'Shadow_Ambient': '#0000001f',\n 'Shadow_Ambient lighter': '#0000000f',\n 'Shadow_Ambient darker': '#00000033',\n 'Shadow_Brand ambient': '#00000040',\n 'Shadow_Key': '#00000024',\n 'Shadow_Key lighter': '#00000012',\n 'Shadow_Key darker': '#0000003d',\n 'Shadow_Brand key': '#0000004d',\n 'Material_Acrylic_Stroke_Stop 2': '#cfe4fa33',\n 'Material_Acrylic_Stroke_Stop 3': 2,\n 'Material_Acrylic_Stroke_Stop 1': 2,\n 'Material_Acrylic_Background_Secondary': '#e7ecf3b3',\n 'Material_Acrylic_Background_Primary': '#1a1a1a80',\n 'Material_Acrylic_Background_Blur': 60,\n};\n\n// Dark Mode Colors\nexport const darkModeColors = {\n 'Neutral_Background_1_Rest': '#292929',\n 'Neutral_Background_1_Hover': '#3d3d3d',\n 'Neutral_Background_1_Pressed': '#1f1f1f',\n 'Neutral_Background_1_Selected': '#383838',\n 'Neutral_Background_2_Rest': '#1f1f1f',\n 'Neutral_Background_2_Hover': '#333333',\n 'Neutral_Background_2_Pressed': '#141414',\n 'Neutral_Background_2_Selected': '#2e2e2e',\n 'Neutral_Background_3_Rest': '#141414',\n 'Neutral_Background_3_Hover': '#292929',\n 'Neutral_Background_3_Pressed': '#0a0a0a',\n 'Neutral_Background_3_Selected': '#242424',\n 'Neutral_Background_4_Rest': '#0a0a0a',\n 'Neutral_Background_4_Hover': '#1f1f1f',\n 'Neutral_Background_4_Pressed': '#000000',\n 'Neutral_Background_4_Selected': '#1a1a1a',\n 'Neutral_Background_5_Rest': '#000000',\n 'Neutral_Background_5_Hover': '#141414',\n 'Neutral_Background_5_Pressed': '#050505',\n 'Neutral_Background_5_Selected': '#0f0f0f',\n 'Neutral_Background_6_Rest': '#333333',\n 'Neutral_Background_Inverted_Rest': '#ffffff',\n 'Neutral_Background_Inverted_Disabled_Rest': 1,\n 'Neutral_Background_Alpha_1_Rest': '#1a1a1a80',\n 'Neutral_Background_Alpha_2_Rest': '#1a1a1ab3',\n 'Neutral_Background_Static_Rest': '#3d3d3d',\n 'Neutral_Background_Subtle_Rest': '#00000000',\n 'Neutral_Background_Subtle_Hover': '#383838',\n 'Neutral_Background_Subtle_Pressed': '#2e2e2e',\n 'Neutral_Background_Subtle_Selected': '#333333',\n 'Neutral_Background_Subtle_Light alpha_Hover': 8,\n 'Neutral_Background_Subtle_Light alpha_Pressed': '#1a1a1a80',\n 'Neutral_Background_Subtle_Light alpha_Selected': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Rest': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Hover': 1,\n 'Neutral_Background_Subtle_Inverted_Pressed': 3,\n 'Neutral_Background_Subtle_Inverted_Selected': 2,\n 'Neutral_Background_Transparent_Rest': '#00000000',\n 'Neutral_Background_Transparent_Hover': '#00000000',\n 'Neutral_Background_Transparent_Pressed': '#00000000',\n 'Neutral_Background_Transparent_Selected': '#00000000',\n 'Neutral_Background_Disabled_Rest': '#141414',\n 'Neutral_Background_Stencil_1_Rest': '#575757',\n 'Neutral_Background_Stencil_1_Alpha_Rest': 1,\n 'Neutral_Background_Stencil_2_Rest': '#333333',\n 'Neutral_Background_Stencil_2_Alpha_Rest': '#1a1a1a0d',\n 'Neutral_Background_Overlay_Rest': '#1a1a1a80',\n 'Neutral_Background_Overlay_Scrollbar_Rest': 6,\n 'Neutral_Foreground_1_Rest': '#ffffff',\n 'Neutral_Foreground_1_Hover': '#ffffff',\n 'Neutral_Foreground_1_Pressed': '#ffffff',\n 'Neutral_Foreground_1_Selected': '#ffffff',\n 'Neutral_Foreground_2_Rest': '#d6d6d6',\n 'Neutral_Foreground_2_Hover': '#ffffff',\n 'Neutral_Foreground_2_Pressed': '#ffffff',\n 'Neutral_Foreground_2_Selected': '#ffffff',\n 'Neutral_Foreground_2_Brand_Hover': '#7787bb',\n 'Neutral_Foreground_2_Brand_Pressed': '#a4afd1',\n 'Neutral_Foreground_2_Brand_Selected': '#7787bb',\n 'Neutral_Foreground_2_Link_Rest': '#d6d6d6',\n 'Neutral_Foreground_2_Link_Hover': '#ffffff',\n 'Neutral_Foreground_2_Link_Pressed': '#ffffff',\n 'Neutral_Foreground_2_Link_Selected': '#ffffff',\n 'Neutral_Foreground_3_Rest': '#adadad',\n 'Neutral_Foreground_3_Hover': '#d6d6d6',\n 'Neutral_Foreground_3_Pressed': '#d6d6d6',\n 'Neutral_Foreground_3_Selected': '#d6d6d6',\n 'Neutral_Foreground_3_Brand_Hover': '#7787bb',\n 'Neutral_Foreground_3_Brand_Pressed': '#a4afd1',\n 'Neutral_Foreground_3_Brand_Selected': '#7787bb',\n 'Neutral_Foreground_4_Rest': '#999999',\n 'Neutral_Foreground_Disabled_Rest': '#5c5c5c',\n 'Neutral_Foreground_Static_Rest': '#242424',\n 'Neutral_Foreground_Static_Inverted_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Rest': '#242424',\n 'Neutral_Foreground_Inverted_1_Hover': '#242424',\n 'Neutral_Foreground_Inverted_1_Pressed': '#242424',\n 'Neutral_Foreground_Inverted_1_Selected': '#242424',\n 'Neutral_Foreground_Inverted_2_Rest': '#242424',\n 'Neutral_Foreground_Inverted_Disabled_Rest': 4,\n 'Neutral_Foreground_Inverted_Link_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Hover': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Pressed': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Selected': '#ffffff',\n 'Neutral_Foreground_On Brand_Rest': '#ffffff',\n 'Neutral_Stroke_1_Rest': '#666666',\n 'Neutral_Stroke_1_Hover': '#757575',\n 'Neutral_Stroke_1_Pressed': '#6b6b6b',\n 'Neutral_Stroke_1_Selected': '#707070',\n 'Neutral_Stroke_2_Rest': '#525252',\n 'Neutral_Stroke_3_Rest': '#3d3d3d',\n 'Neutral_Stroke_Alpha_1_Rest': 1,\n 'Neutral_Stroke_Alpha_2_Rest': 2,\n 'Neutral_Stroke_Subtle_Rest': '#0a0a0a',\n 'Neutral_Stroke_on Brand_1_Rest': '#292929',\n 'Neutral_Stroke_on Brand_2_Rest': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Hover': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Pressed': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Selected': '#ffffff',\n 'Neutral_Stroke_Accessible_Rest': '#adadad',\n 'Neutral_Stroke_Accessible_Hover': '#bdbdbd',\n 'Neutral_Stroke_Accessible_Pressed': '#b3b3b3',\n 'Neutral_Stroke_Accessible_Selected': '#7787bb',\n 'Neutral_Stroke_Focus_1_Rest': '#000000',\n 'Neutral_Stroke_Focus_2_Rest': '#ffffff',\n 'Neutral_Stroke_Transparent_Interactive_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Disabled_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Rest': '#00000000',\n 'Neutral_Stroke_Disabled_Rest': '#424242',\n 'Neutral_Stroke_Disabled_Inverted_Rest': 4,\n 'Brand_Background_1_Rest': '#182e71',\n 'Brand_Background_1_Hover': '#1e398d',\n 'Brand_Background_1_Pressed': '#09112a',\n 'Brand_Background_1_Selected': '#122255',\n 'Brand_Background_2_Rest': '#03060e',\n 'Brand_Background_2_Hover': '#09112a',\n 'Brand_Background_2_Pressed': '#000000',\n 'Brand_Background_Inverted_Rest': '#ffffff',\n 'Brand_Background_Inverted_Hover': '#ffffff',\n 'Brand_Background_Inverted_Pressed': '#e7e9f4',\n 'Brand_Background_Inverted_Selected': '#fdfdff',\n 'Brand_Background_Compound_Rest': '#7787bb',\n 'Brand_Background_Compound_Hover': '#a4afd1',\n 'Brand_Background_Compound_Pressed': '#4b60a4',\n 'Brand_Background_Static_1_Rest': '#1e398d',\n 'Brand_Background_Static_3_Rest': '#122255',\n 'Brand_Background_Static_4_Rest': '#09112a',\n 'Brand_Foreground_1_Rest': '#7787bb',\n 'Brand_Foreground_2_Rest': '#a4afd1',\n 'Brand_Foreground_2_Hover': '#d0d6e8',\n 'Brand_Foreground_2_Pressed': '#7787bb',\n 'Brand_Foreground_Link_Rest': '#7787bb',\n 'Brand_Foreground_Link_Hover': '#a4afd1',\n 'Brand_Foreground_Link_Pressed': '#4b60a4',\n 'Brand_Foreground_Link_Selected': '#7787bb',\n 'Brand_Foreground_Inverted_Rest': '#1e398d',\n 'Brand_Foreground_Inverted_Hover': '#182e71',\n 'Brand_Foreground_Inverted_Pressed': '#122255',\n 'Brand_Foreground_On Light_Rest': '#182e71',\n 'Brand_Foreground_On Light_Hover': '#182e71',\n 'Brand_Foreground_On Light_Pressed': '#0c1738',\n 'Brand_Foreground_On Light_Selected': '#122255',\n 'Brand_Foreground_Compound_Rest': '#7787bb',\n 'Brand_Foreground_Compound_Hover': '#a4afd1',\n 'Brand_Foreground_Compound_Pressed': '#4b60a4',\n 'Brand_Stroke_1_Rest': '#7787bb',\n 'Brand_Stroke_2_Rest': '#0c1738',\n 'Brand_Stroke_2_Hover': '#4b60a4',\n 'Brand_Stroke_2_Pressed': '#182e71',\n 'Brand_Stroke_2_Contrast_Rest': '#0c1738',\n 'Brand_Stroke_Compound_Rest': '#7787bb',\n 'Brand_Stroke_Compound_Hover': '#a4afd1',\n 'Brand_Stroke_Compound_Pressed': '#4b60a4',\n 'Status_Danger_Background_1_Rest': '#004044',\n 'Status_Danger_Background_2_Rest': '#005d62',\n 'Status_Danger_Background_3_Rest': '#00b3bd',\n 'Status_Danger_Foreground_1_Rest': '#b10e1c',\n 'Status_Danger_Foreground_2_Rest': '#a3e4e7',\n 'Status_Danger_Foreground_3_Rest': '#a3e4e7',\n 'Status_Danger_Foreground_3_Pressed': '#007a81',\n 'Status_Danger_Foreground_3_Hover': '#00969f',\n 'Status_Danger_Foreground_Inverted_Rest': '#00969f',\n 'Status_Danger_Stroke_1_Rest': '#00b3bd',\n 'Status_Danger_Stroke_2_Rest': '#7ad7dd',\n 'Status_Success_Background_1_Rest': '#004044',\n 'Status_Success_Background_2_Rest': '#005d62',\n 'Status_Success_Background_3_Rest': '#00b3bd',\n 'Status_Success_Foreground_1_Rest': '#7ad7dd',\n 'Status_Success_Foreground_2_Rest': '#a3e4e7',\n 'Status_Success_Foreground_3_Rest': '#a3e4e7',\n 'Status_Success_Foreground_Inverted_Rest': '#00b3bd',\n 'Status_Success_Stroke_1_Rest': '#00b3bd',\n 'Status_Success_Stroke_2_Rest': '#a3e4e7',\n 'Status_Warning_Background_1_Rest': '#004044',\n 'Status_Warning_Background_2_Rest': '#005d62',\n 'Status_Warning_Background_3_Rest': '#00b3bd',\n 'Status_Warning_Foreground_1_Rest': '#52cbd2',\n 'Status_Warning_Foreground_2_Rest': '#a3e4e7',\n 'Status_Warning_Foreground_3_Rest': '#a3e4e7',\n 'Status_Warning_Foreground_Inverted_Rest': '#007a81',\n 'Status_Warning_Stroke_1_Rest': '#00969f',\n 'Status_Warning_Stroke_2_Rest': '#52cbd2',\n 'Status_Oof_Foreground_3_Rest': '#52cbd2',\n 'Status_Away_Background_3_Rest': '#00b3bd',\n 'Status_Available_Foreground_3_Rest': '#00b3bd',\n 'Status_Severe_Background_1_Rest': '#004044',\n 'Status_Severe_Background_2_Rest': '#005d62',\n 'Status_Severe_Background_3_Rest': '#00b3bd',\n 'Status_Severe_Foreground_1_Rest': '#52cbd2',\n 'Status_Severe_Foreground_2_Rest': '#a3e4e7',\n 'Status_Severe_Foreground_3_Rest': '#a3e4e7',\n 'Status_Severe_Foreground_Inverted_Rest': '#007a81',\n 'Status_Severe_Stroke_1_Rest': '#00969f',\n 'Status_Severe_Stroke_2_Rest': '#52cbd2',\n 'Palette_Dark red_Background_2_Rest': '#007a81',\n 'Palette_Dark red_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Dark red_Stroke_Active_Rest': '#52cbd2',\n 'Palette_Cranberry_Background_2_Rest': '#005d62',\n 'Palette_Cranberry_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Cranberry_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Red_Background_1_Rest': '#004044',\n 'Palette_Red_Background_2_Rest': '#005d62',\n 'Palette_Red_Background_3_Rest': '#00b3bd',\n 'Palette_Red_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Red_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Red_Foreground_3_Rest': '#7ad7dd',\n 'Palette_Red_Foreground_Inverted_Rest': '#00b3bd',\n 'Palette_Red_Stroke_1_Rest': '#00b3bd',\n 'Palette_Red_Stroke_2_Rest': '#7ad7dd',\n 'Palette_Red_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Pumpkin_Background_2_Rest': '#005d62',\n 'Palette_Pumpkin_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Pumpkin_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Peach_Background_2_Rest': '#005d62',\n 'Palette_Peach_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Peach_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Marigold_Background_1_Rest': '#004044',\n 'Palette_Marigold_Background_2_Rest': '#005d62',\n 'Palette_Marigold_Background_3_Rest': '#00b3bd',\n 'Palette_Marigold_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Marigold_Foreground_1_Rest 2': '#52cbd2',\n 'Palette_Marigold_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Marigold_Foreground_3_Rest': '#52cbd2',\n 'Palette_Marigold_Stroke_1_Rest': '#00b3bd',\n 'Palette_Marigold_Stroke_2_Rest': '#52cbd2',\n 'Palette_Marigold_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Gold_Background_2_Rest': '#005d62',\n 'Palette_Gold_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Gold_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Brass_Background_2_Rest': '#005d62',\n 'Palette_Brass_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Brass_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Brown_Background_2_Rest': '#005d62',\n 'Palette_Brown_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Brown_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Forest_Background_2_Rest': '#005d62',\n 'Palette_Forest_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Forest_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Seafoam_Background_2_Rest': '#005d62',\n 'Palette_Seafoam_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Seafoam_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Dark green_Background_2_Rest': '#005d62',\n 'Palette_Dark green_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Dark green_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Light teal_Background_2_Rest': '#005d62',\n 'Palette_Light teal_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Light teal_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Teal_Background_2_Rest': '#005d62',\n 'Palette_Teal_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Teal_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Steel_Background_2_Rest': '#005d62',\n 'Palette_Steel_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Steel_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Blue_Background_2_Rest': '#005d62',\n 'Palette_Blue_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Blue_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Royal blue_Background_2_Rest': '#005d62',\n 'Palette_Royal blue_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Royal blue_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Cornflower_Background_2_Rest': '#005d62',\n 'Palette_Cornflower_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Cornflower_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Navy_Background_2_Rest': '#005d62',\n 'Palette_Navy_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Navy_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Lavender_Background_2_Rest': '#005d62',\n 'Palette_Lavender_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Lavender_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Purple_Background_2_Rest': '#005d62',\n 'Palette_Purple_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Purple_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Grape_Background_2_Rest': '#005d62',\n 'Palette_Grape_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Grape_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Lilac_Background_2_Rest': '#005d62',\n 'Palette_Lilac_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Lilac_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Pink_Background_2_Rest': '#005d62',\n 'Palette_Pink_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Pink_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Magenta_Background_2_Rest': '#005d62',\n 'Palette_Magenta_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Magenta_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Plum_Background_2_Rest': '#007a81',\n 'Palette_Plum_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Plum_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Beige_Background_2_Rest': '#005d62',\n 'Palette_Beige_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Beige_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Mink_Background_2_Rest': '#005d62',\n 'Palette_Mink_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Mink_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Platinum_Background_2_Rest': '#005d62',\n 'Palette_Platinum_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Platinum_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Anchor_Background_2_Rest': '#005d62',\n 'Palette_Anchor_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Anchor_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Green_Background_1_Rest': '#004044',\n 'Palette_Green_Background_2_Rest': '#005d62',\n 'Palette_Green_Background_3_Rest': '#00b3bd',\n 'Palette_Green_Stroke_1_Rest': '#00b3bd',\n 'Palette_Green_Stroke_2_Rest': '#7ad7dd',\n 'Palette_Green_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Green_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Green_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Green_Foreground_3_Rest': '#7ad7dd',\n 'Palette_Green_Foreground_Inverted_Rest': '#00b3bd',\n 'Palette_Dark orange_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Dark orange_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Dark orange_Foreground_3_Rest': '#7ad7dd',\n 'Palette_Dark orange_Background_1_Rest': '#004044',\n 'Palette_Dark orange_Background_2_Rest': '#005d62',\n 'Palette_Dark orange_Background_3_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_1_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_2_Rest': '#7ad7dd',\n 'Palette_Dark orange_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Yellow_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Yellow_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Yellow_Foreground_3_Rest': '#52cbd2',\n 'Palette_Yellow_Foreground_Inverted_Rest': '#005d62',\n 'Palette_Yellow_Stroke_1_Rest': '#00b3bd',\n 'Palette_Yellow_Stroke_2_Rest': '#52cbd2',\n 'Palette_Yellow_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Yellow_Background_1_Rest': '#004044',\n 'Palette_Yellow_Background_2_Rest': '#005d62',\n 'Palette_Yellow_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Berry_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Berry_Foreground_3_Rest': '#52cbd2',\n 'Palette_Berry_Background_1_Rest': '#004044',\n 'Palette_Berry_Background_2_Rest': '#005d62',\n 'Palette_Berry_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_1_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_2_Rest': '#52cbd2',\n 'Palette_Berry_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Light Green_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Light Green_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Light Green_Foreground_3_Rest': '#52cbd2',\n 'Palette_Light Green_Background_1_Rest': '#004044',\n 'Palette_Light Green_Background_2_Rest': '#005d62',\n 'Palette_Light Green_Background_3_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_1_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_2_Rest': '#52cbd2',\n 'Palette_Light Green_Stroke_Active_Rest': '#7ad7dd',\n 'Shadow_Ambient': '#0000003d',\n 'Shadow_Ambient lighter': '#0000001f',\n 'Shadow_Ambient darker': '#00000066',\n 'Shadow_Brand ambient': '#00000040',\n 'Shadow_Key': '#00000047',\n 'Shadow_Key lighter': '#00000024',\n 'Shadow_Key darker': '#0000007a',\n 'Shadow_Brand key': '#0000004d',\n 'Material_Acrylic_Stroke_Stop 2': '#2c3136',\n 'Material_Acrylic_Stroke_Stop 3': 2,\n 'Material_Acrylic_Stroke_Stop 1': 2,\n 'Material_Acrylic_Background_Secondary': '#46406e99',\n 'Material_Acrylic_Background_Primary': '#2e2e2ecc',\n 'Material_Acrylic_Background_Blur': 60,\n};\n\n// Default export\nexport default {\n brandColors,\n spacing,\n borderRadius,\n fontSize,\n fontWeight,\n lineHeight,\n strokeWidth,\n sharedColors,\n foundationColors,\n lightModeColors,\n darkModeColors,\n schemeColors,\n};\n","import { BrandVariants } from '@fluentui/react-components';\n\n// import { brandColors } from './generated/tokens';\nimport { brandColors as brandColorsV1 } from './generated/tokens';\nimport { brandColors as brandColorsV2 } from './generated/tokensV2';\n\n\nconst isV2Path = typeof window !== 'undefined' && window.location.pathname.startsWith('/v2');\nconst brandColors = !isV2Path ? brandColorsV2 : brandColorsV1;\n/**\n * Brand Colors from generated tokens (auto-resolved from Figma)\n * All token references have been resolved at build time\n */\nexport const customBrand: BrandVariants = {\n 10: brandColors['10'],\n 20: brandColors['20'],\n 30: brandColors['30'],\n 40: brandColors['40'],\n 50: brandColors['50'],\n 60: brandColors['60'],\n 70: brandColors['70'],\n 80: brandColors['80'],\n 90: brandColors['90'],\n 100: brandColors['100'],\n 110: brandColors['110'],\n 120: brandColors['120'],\n 130: brandColors['130'],\n 140: brandColors['140'],\n 150: brandColors['150'],\n 160: brandColors['160'],\n};\n","/**\n * Design Tokens from generated Figma tokens\n * All token references have been resolved at build time\n */\n\nimport {\n borderRadius as borderRadiusV1,\n darkModeColors as darkColorsV1,\n lightModeColors as lightColorsV1,\n spacing as spacingV1,\n strokeWidth as strokeWidthV1,\n} from './generated/tokens';\nimport {\n borderRadius as borderRadiusV2,\n darkModeColors as darkColorsV2,\n lightModeColors as lightColorsV2,\n spacing as spacingV2,\n strokeWidth as strokeWidthV2,\n} from './generated/tokensV2';\n\n// Check if current path starts with /v2\nconst isV2Path = typeof window !== 'undefined' && window.location.pathname.startsWith('/v2');\n// Select tokens based on path\nconst generatedBorderRadius = !isV2Path ? borderRadiusV2 : borderRadiusV1;\nconst generatedDarkColors = !isV2Path ? darkColorsV2 : darkColorsV1;\nconst generatedLightColors = !isV2Path ? lightColorsV2 : lightColorsV1;\nconst generatedSpacing = !isV2Path ? spacingV2 : spacingV1;\nconst generatedStrokeWidth = !isV2Path ? strokeWidthV2 : strokeWidthV1;\n\n\n/**\n * Core design system tokens\n */\nexport const designTokens = {\n // Spacing from Figma\n spacing: {\n none: '0px',\n xxs: `${generatedSpacing['20']}px`,\n xs: `${generatedSpacing['40']}px`,\n sNudge: `${generatedSpacing['60']}px`,\n s: `${generatedSpacing['80']}px`,\n mNudge: `${generatedSpacing['100']}px`,\n m: `${generatedSpacing['120']}px`,\n l: `${generatedSpacing['160']}px`,\n xl: `${generatedSpacing['200']}px`,\n xxl: `${generatedSpacing['240']}px`,\n xxxl: `${generatedSpacing['320']}px`,\n },\n\n // Border radius from Figma\n borderRadius: {\n none: 0,\n small: generatedBorderRadius['20'],\n medium: generatedBorderRadius['40'],\n large: generatedBorderRadius['80'],\n xLarge: generatedBorderRadius['120'],\n circular: '50%',\n },\n\n // Typography - Font sizes\n fontSize: {\n 100: 10,\n 200: 12,\n 300: 14,\n 400: 16,\n 500: 20,\n 550: 22,\n 600: 24,\n 700: 28,\n 800: 32,\n 900: 40,\n 1000: 68,\n },\n\n // Typography - Font weights\n fontWeight: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n\n // Typography - Line heights\n lineHeight: {\n 100: 14,\n 200: 16,\n 300: 20,\n 400: 22,\n 500: 28,\n 600: 32,\n },\n\n // Font families\n fontFamily: {\n body: ['Manrope', 'Segoe UI', 'system-ui', 'sans-serif'],\n heading: ['Manrope', 'Segoe UI', 'system-ui', 'sans-serif'],\n mono: ['Consolas', 'Monaco', 'monospace'],\n },\n\n // Stroke widths\n strokeWidth: {\n thin: generatedStrokeWidth['10'],\n thick: generatedStrokeWidth['15'],\n thicker: generatedStrokeWidth['20'],\n thickest: generatedStrokeWidth['30'],\n },\n\n // Shadows\n shadows: {\n sm: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',\n md: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',\n lg: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',\n xl: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',\n },\n\n // Breakpoints for responsive design\n breakpoints: {\n xs: '320px',\n sm: '480px',\n md: '768px',\n lg: '1024px',\n xl: '1200px',\n xxl: '1440px',\n xxxl: '1600px',\n },\n\n color: {\n customGreen: '#426900',\n },\n};\n\n/**\n * Light Mode Semantic Colors from generated tokens\n */\nexport const lightModeColors = {\n // Neutral backgrounds\n background: {\n 1: generatedLightColors.Neutral_Background_1_Rest,\n 2: generatedLightColors.Neutral_Background_2_Rest,\n 3: generatedLightColors.Neutral_Background_3_Rest,\n 4: generatedLightColors.Neutral_Background_4_Rest,\n 5: generatedLightColors.Neutral_Background_5_Rest,\n 6: generatedLightColors.Neutral_Background_6_Rest,\n inverted: generatedLightColors.Neutral_Background_Inverted_Rest,\n disabled: generatedLightColors.Neutral_Background_Disabled_Rest,\n },\n\n // Neutral foregrounds (text)\n foreground: {\n 1: generatedLightColors.Neutral_Foreground_1_Rest,\n 2: generatedLightColors.Neutral_Foreground_2_Rest,\n 3: generatedLightColors.Neutral_Foreground_3_Rest,\n 4: generatedLightColors.Neutral_Foreground_4_Rest,\n disabled: generatedLightColors.Neutral_Foreground_Disabled_Rest,\n },\n\n // Brand colors\n brand: {\n background: generatedLightColors.Brand_Background_1_Rest,\n backgroundHover: generatedLightColors.Brand_Background_1_Hover,\n backgroundPressed: generatedLightColors.Brand_Background_1_Pressed,\n foreground: generatedLightColors.Brand_Foreground_1_Rest,\n stroke: generatedLightColors.Brand_Stroke_1_Rest,\n },\n\n // Status colors\n status: {\n success: generatedLightColors.Status_Success_Foreground_1_Rest,\n warning: generatedLightColors.Status_Warning_Foreground_1_Rest,\n danger: generatedLightColors.Status_Danger_Foreground_1_Rest,\n error: generatedLightColors.Status_Danger_Foreground_1_Rest,\n info: '#0078d4',\n },\n\n // Borders\n border: {\n 1: generatedLightColors.Neutral_Stroke_1_Rest,\n 2: generatedLightColors.Neutral_Stroke_2_Rest,\n disabled: generatedLightColors.Neutral_Stroke_Disabled_Rest,\n },\n};\n\n/**\n * Dark Mode Semantic Colors from generated tokens\n */\nexport const darkModeColors = {\n // Neutral backgrounds\n background: {\n 1: generatedDarkColors.Neutral_Background_1_Rest,\n 2: generatedDarkColors.Neutral_Background_2_Rest,\n 3: generatedDarkColors.Neutral_Background_3_Rest,\n 4: generatedDarkColors.Neutral_Background_4_Rest,\n 5: generatedDarkColors.Neutral_Background_5_Rest,\n 6: generatedDarkColors.Neutral_Background_6_Rest,\n inverted: generatedDarkColors.Neutral_Background_Inverted_Rest,\n disabled: generatedDarkColors.Neutral_Background_Disabled_Rest,\n },\n\n // Neutral foregrounds (text)\n foreground: {\n 1: generatedDarkColors.Neutral_Foreground_1_Rest,\n 2: generatedDarkColors.Neutral_Foreground_2_Rest,\n 3: generatedDarkColors.Neutral_Foreground_3_Rest,\n 4: generatedDarkColors.Neutral_Foreground_4_Rest,\n disabled: generatedDarkColors.Neutral_Foreground_Disabled_Rest,\n },\n\n // Brand colors\n brand: {\n background: generatedDarkColors.Brand_Background_1_Rest,\n backgroundHover: generatedDarkColors.Brand_Background_1_Hover,\n backgroundPressed: generatedDarkColors.Brand_Background_1_Pressed,\n foreground: generatedDarkColors.Brand_Foreground_1_Rest,\n stroke: generatedDarkColors.Brand_Stroke_1_Rest,\n },\n\n // Status colors\n status: {\n success: generatedDarkColors.Status_Success_Foreground_1_Rest,\n warning: generatedDarkColors.Status_Warning_Foreground_1_Rest,\n danger: generatedDarkColors.Status_Danger_Foreground_1_Rest,\n error: generatedDarkColors.Status_Danger_Foreground_1_Rest,\n info: '#4cc2ff',\n },\n\n // Borders\n border: {\n 1: generatedDarkColors.Neutral_Stroke_1_Rest,\n 2: generatedDarkColors.Neutral_Stroke_2_Rest,\n disabled: generatedDarkColors.Neutral_Stroke_Disabled_Rest,\n },\n};\n","import { Theme, createDarkTheme, createLightTheme } from '@fluentui/react-components';\n\nimport { customBrand } from './brandColors';\nimport { darkModeColors, designTokens, lightModeColors } from './designTokens';\n\nexport const extendedTokens = {\n breakpointXs: designTokens.breakpoints.xs,\n breakpointSm: designTokens.breakpoints.sm,\n breakpointMd: designTokens.breakpoints.md,\n breakpointLg: designTokens.breakpoints.lg,\n breakpointXl: designTokens.breakpoints.xl,\n breakpointXxl: designTokens.breakpoints.xxl,\n breakpointXxxl: designTokens.breakpoints.xxxl,\n};\n\n/**\n * Custom Light Theme using Figma Fluent UI Tokens\n */\nexport const customLightTheme: Theme = {\n ...createLightTheme(customBrand),\n\n // Brand colors from Figma\n colorBrandBackground: customBrand[80],\n colorBrandBackgroundHover: customBrand[70],\n colorBrandBackgroundPressed: customBrand[60],\n colorBrandBackgroundSelected: customBrand[80],\n colorBrandForeground1: customBrand[80],\n colorBrandForeground2: customBrand[70],\n colorBrandForegroundLink: customBrand[70],\n colorBrandForegroundLinkHover: customBrand[60],\n colorBrandForegroundLinkPressed: customBrand[50],\n colorBrandForegroundLinkSelected: customBrand[70],\n\n // Neutral backgrounds from Figma\n colorNeutralBackground1: lightModeColors.background[1],\n colorNeutralBackground2: lightModeColors.background[2],\n colorNeutralBackground3: lightModeColors.background[3],\n colorNeutralBackground4: lightModeColors.background[4],\n colorNeutralBackground5: lightModeColors.background[5],\n colorNeutralBackground6: lightModeColors.background[6],\n colorNeutralBackgroundInverted: lightModeColors.background.inverted,\n colorNeutralBackgroundDisabled: lightModeColors.background.disabled,\n\n // Neutral foregrounds (text) from Figma\n colorNeutralForeground1: lightModeColors.foreground[1],\n colorNeutralForeground2: lightModeColors.foreground[2],\n colorNeutralForeground3: lightModeColors.foreground[3],\n colorNeutralForeground4: lightModeColors.foreground[4],\n colorNeutralForegroundDisabled: lightModeColors.foreground.disabled,\n\n // Strokes (borders) from Figma\n colorNeutralStroke1: lightModeColors.border[1],\n colorNeutralStroke2: lightModeColors.border[2],\n colorNeutralStrokeDisabled: lightModeColors.border.disabled,\n\n // Status colors from Figma\n colorPaletteGreenForeground1: lightModeColors.status.success,\n colorPaletteYellowForeground1: lightModeColors.status.warning,\n colorPaletteRedForeground1: lightModeColors.status.danger,\n\n // Spacing from Figma Global tokens\n spacingHorizontalNone: designTokens.spacing.none,\n spacingHorizontalXXS: designTokens.spacing.xxs,\n spacingHorizontalXS: designTokens.spacing.xs,\n spacingHorizontalSNudge: designTokens.spacing.sNudge,\n spacingHorizontalS: designTokens.spacing.s,\n spacingHorizontalMNudge: designTokens.spacing.mNudge,\n spacingHorizontalM: designTokens.spacing.m,\n spacingHorizontalL: designTokens.spacing.l,\n spacingHorizontalXL: designTokens.spacing.xl,\n spacingHorizontalXXL: designTokens.spacing.xxl,\n spacingHorizontalXXXL: designTokens.spacing.xxxl,\n\n spacingVerticalNone: designTokens.spacing.none,\n spacingVerticalXXS: designTokens.spacing.xxs,\n spacingVerticalXS: designTokens.spacing.xs,\n spacingVerticalSNudge: designTokens.spacing.sNudge,\n spacingVerticalS: designTokens.spacing.s,\n spacingVerticalMNudge: designTokens.spacing.mNudge,\n spacingVerticalM: designTokens.spacing.m,\n spacingVerticalL: designTokens.spacing.l,\n spacingVerticalXL: designTokens.spacing.xl,\n spacingVerticalXXL: designTokens.spacing.xxl,\n spacingVerticalXXXL: designTokens.spacing.xxxl,\n\n // Border radius from Figma\n borderRadiusNone: `${designTokens.borderRadius.none}px`,\n borderRadiusSmall: `${designTokens.borderRadius.small}px`,\n borderRadiusMedium: `${designTokens.borderRadius.medium}px`,\n borderRadiusLarge: `${designTokens.borderRadius.large}px`,\n borderRadiusXLarge: `${designTokens.borderRadius.xLarge}px`,\n // borderRadiusCircular: designTokens.borderRadius.circular,\n\n // Shadows from design tokens\n shadow2: designTokens.shadows.sm,\n shadow4: designTokens.shadows.md,\n shadow8: designTokens.shadows.lg,\n shadow16: designTokens.shadows.xl,\n\n // Typography - Font families from Figma\n fontFamilyBase: designTokens.fontFamily.body.join(', '),\n fontFamilyMonospace: designTokens.fontFamily.mono.join(', '),\n fontFamilyNumeric: designTokens.fontFamily.body.join(', '),\n\n // Font sizes from Figma Global tokens\n fontSizeBase100: `${designTokens.fontSize[100]}px`,\n fontSizeBase200: `${designTokens.fontSize[200]}px`,\n fontSizeBase300: `${designTokens.fontSize[300]}px`,\n fontSizeBase400: `${designTokens.fontSize[400]}px`,\n fontSizeBase500: `${designTokens.fontSize[500]}px`,\n fontSizeBase600: `${designTokens.fontSize[600]}px`,\n fontSizeHero700: `${designTokens.fontSize[700]}px`,\n fontSizeHero800: `${designTokens.fontSize[800]}px`,\n fontSizeHero900: `${designTokens.fontSize[900]}px`,\n fontSizeHero1000: `${designTokens.fontSize[1000]}px`,\n\n // Font weights from Figma\n fontWeightRegular: designTokens.fontWeight.regular,\n fontWeightMedium: designTokens.fontWeight.medium,\n fontWeightSemibold: designTokens.fontWeight.semibold,\n fontWeightBold: designTokens.fontWeight.bold,\n\n // Line heights from Figma\n lineHeightBase100: `${designTokens.lineHeight[100]}px`,\n lineHeightBase200: `${designTokens.lineHeight[200]}px`,\n lineHeightBase300: `${designTokens.lineHeight[300]}px`,\n lineHeightBase400: `${designTokens.lineHeight[400]}px`,\n lineHeightBase500: `${designTokens.lineHeight[500]}px`,\n lineHeightBase600: `${designTokens.lineHeight[600]}px`,\n // lineHeightHero700: `${designTokens.lineHeight[100]}px`,\n // lineHeightHero800: `${designTokens.lineHeight[100]}px`,\n // lineHeightHero900: `${designTokens.lineHeight[100]}px`,\n // lineHeightHero1000: `${designTokens.lineHeight[100]}px`,\n\n // Stroke widths from Figma\n strokeWidthThin: `${designTokens.strokeWidth.thin}px`,\n strokeWidthThick: `${designTokens.strokeWidth.thick}px`,\n strokeWidthThicker: `${designTokens.strokeWidth.thicker}px`,\n strokeWidthThickest: `${designTokens.strokeWidth.thickest}px`,\n};\n\n/**\n * Custom Dark Theme using Figma Fluent UI Tokens\n */\nexport const customDarkTheme: Theme = {\n ...createDarkTheme(customBrand),\n\n // Brand colors from Figma (inverted for dark mode)\n colorBrandBackground: customBrand[100],\n colorBrandBackgroundHover: customBrand[110],\n colorBrandBackgroundPressed: customBrand[120],\n colorBrandBackgroundSelected: customBrand[100],\n colorBrandForeground1: customBrand[100],\n colorBrandForeground2: customBrand[110],\n colorBrandForegroundLink: customBrand[110],\n colorBrandForegroundLinkHover: customBrand[120],\n colorBrandForegroundLinkPressed: customBrand[130],\n colorBrandForegroundLinkSelected: customBrand[110],\n\n // Neutral backgrounds from Figma\n colorNeutralBackground1: darkModeColors.background[1],\n colorNeutralBackground2: darkModeColors.background[2],\n colorNeutralBackground3: darkModeColors.background[3],\n colorNeutralBackground4: darkModeColors.background[4],\n colorNeutralBackground5: darkModeColors.background[5],\n colorNeutralBackground6: darkModeColors.background[6],\n colorNeutralBackgroundInverted: darkModeColors.background.inverted,\n colorNeutralBackgroundDisabled: darkModeColors.background.disabled,\n\n // Neutral foregrounds (text) from Figma\n colorNeutralForeground1: darkModeColors.foreground[1],\n colorNeutralForeground2: darkModeColors.foreground[2],\n colorNeutralForeground3: darkModeColors.foreground[3],\n colorNeutralForeground4: darkModeColors.foreground[4],\n colorNeutralForegroundDisabled: darkModeColors.foreground.disabled,\n\n // Strokes (borders) from Figma\n colorNeutralStroke1: darkModeColors.border[1],\n colorNeutralStroke2: darkModeColors.border[2],\n colorNeutralStrokeDisabled: darkModeColors.border.disabled,\n\n // Status colors from Figma\n colorPaletteGreenForeground1: darkModeColors.status.success,\n colorPaletteYellowForeground1: darkModeColors.status.warning,\n colorPaletteRedForeground1: darkModeColors.status.danger,\n\n // Same spacing, border radius, typography as light theme\n spacingHorizontalNone: designTokens.spacing.none,\n spacingHorizontalXXS: designTokens.spacing.xxs,\n spacingHorizontalXS: designTokens.spacing.xs,\n spacingHorizontalSNudge: designTokens.spacing.sNudge,\n spacingHorizontalS: designTokens.spacing.s,\n spacingHorizontalMNudge: designTokens.spacing.mNudge,\n spacingHorizontalM: designTokens.spacing.m,\n spacingHorizontalL: designTokens.spacing.l,\n spacingHorizontalXL: designTokens.spacing.xl,\n spacingHorizontalXXL: designTokens.spacing.xxl,\n spacingHorizontalXXXL: designTokens.spacing.xxxl,\n\n spacingVerticalNone: designTokens.spacing.none,\n spacingVerticalXXS: designTokens.spacing.xxs,\n spacingVerticalXS: designTokens.spacing.xs,\n spacingVerticalSNudge: designTokens.spacing.sNudge,\n spacingVerticalS: designTokens.spacing.s,\n spacingVerticalMNudge: designTokens.spacing.mNudge,\n spacingVerticalM: designTokens.spacing.m,\n spacingVerticalL: designTokens.spacing.l,\n spacingVerticalXL: designTokens.spacing.xl,\n spacingVerticalXXL: designTokens.spacing.xxl,\n spacingVerticalXXXL: designTokens.spacing.xxxl,\n\n borderRadiusNone: `${designTokens.borderRadius.none}px`,\n borderRadiusSmall: `${designTokens.borderRadius.small}px`,\n borderRadiusMedium: `${designTokens.borderRadius.medium}px`,\n borderRadiusLarge: `${designTokens.borderRadius.large}px`,\n borderRadiusXLarge: `${designTokens.borderRadius.xLarge}px`,\n // borderRadiusCircular: designTokens.borderRadius.circular,\n\n shadow2: designTokens.shadows.sm,\n shadow4: designTokens.shadows.md,\n shadow8: designTokens.shadows.lg,\n shadow16: designTokens.shadows.xl,\n\n fontFamilyBase: designTokens.fontFamily.body.join(', '),\n fontFamilyMonospace: designTokens.fontFamily.mono.join(', '),\n fontFamilyNumeric: designTokens.fontFamily.body.join(', '),\n\n fontSizeBase100: `${designTokens.fontSize[100]}px`,\n fontSizeBase200: `${designTokens.fontSize[200]}px`,\n fontSizeBase300: `${designTokens.fontSize[300]}px`,\n fontSizeBase400: `${designTokens.fontSize[400]}px`,\n fontSizeBase500: `${designTokens.fontSize[500]}px`,\n fontSizeBase600: `${designTokens.fontSize[600]}px`,\n fontSizeHero700: `${designTokens.fontSize[700]}px`,\n fontSizeHero800: `${designTokens.fontSize[800]}px`,\n fontSizeHero900: `${designTokens.fontSize[900]}px`,\n fontSizeHero1000: `${designTokens.fontSize[1000]}px`,\n\n fontWeightRegular: designTokens.fontWeight.regular,\n fontWeightMedium: designTokens.fontWeight.medium,\n fontWeightSemibold: designTokens.fontWeight.semibold,\n fontWeightBold: designTokens.fontWeight.bold,\n\n lineHeightBase100: `${designTokens.lineHeight[100]}px`,\n lineHeightBase200: `${designTokens.lineHeight[200]}px`,\n lineHeightBase300: `${designTokens.lineHeight[300]}px`,\n lineHeightBase400: `${designTokens.lineHeight[400]}px`,\n lineHeightBase500: `${designTokens.lineHeight[500]}px`,\n lineHeightBase600: `${designTokens.lineHeight[600]}px`,\n // lineHeightHero700: `${designTokens.lineHeight[100]}px`,\n // lineHeightHero800: `${designTokens.lineHeight[100]}px`,\n // lineHeightHero900: `${designTokens.lineHeight[100]}px`,\n // lineHeightHero1000: `${designTokens.lineHeight[100]}px`,\n\n strokeWidthThin: `${designTokens.strokeWidth.thin}px`,\n strokeWidthThick: `${designTokens.strokeWidth.thick}px`,\n strokeWidthThicker: `${designTokens.strokeWidth.thicker}px`,\n strokeWidthThickest: `${designTokens.strokeWidth.thickest}px`,\n};\n\n// Extended theme interface for custom properties\nexport interface ExtendedTheme extends Theme {\n // Custom color palette\n customColors: {\n light: typeof lightModeColors;\n dark: typeof darkModeColors;\n };\n\n // Design tokens\n designTokens: typeof designTokens;\n\n // Spacing helpers\n spacing: typeof designTokens.spacing;\n\n // Border radius helpers\n borderRadius: typeof designTokens.borderRadius;\n}\n\n// Create extended themes with additional properties\nexport const extendedLightTheme: ExtendedTheme = {\n ...customLightTheme,\n customColors: {\n light: lightModeColors,\n dark: darkModeColors,\n },\n designTokens,\n spacing: designTokens.spacing,\n borderRadius: designTokens.borderRadius,\n};\n\nexport const extendedDarkTheme: ExtendedTheme = {\n ...customDarkTheme,\n customColors: {\n light: lightModeColors,\n dark: darkModeColors,\n },\n designTokens,\n spacing: designTokens.spacing,\n borderRadius: designTokens.borderRadius,\n};\n\n// Theme variants for easy access\nexport const themeVariants = {\n light: customLightTheme,\n dark: customDarkTheme,\n extendedLight: extendedLightTheme,\n extendedDark: extendedDarkTheme,\n} as const;\n\n// Export current theme getter function\nexport const getCurrentTheme = (isDark: boolean, extended: boolean = false) => {\n if (extended) {\n return isDark ? extendedDarkTheme : extendedLightTheme;\n }\n return isDark ? customDarkTheme : customLightTheme;\n};\n","import {\n Badge,\n Button,\n Caption1,\n Caption1Strong,\n Caption2,\n Card,\n Divider,\n makeStyles,\n Subtitle2,\n Title2,\n Title3,\n tokens,\n Tooltip,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport React from 'react';\nimport { Col, Row, Visible } from 'react-grid-system';\n\nimport { CardTicketProps } from './CardTicket.types';\nimport { useWindowSize } from '../../hooks/useWindowSize';\nimport { extendedTokens } from '../../constants';\nimport { brandColors, sharedColors } from '../../constants/generated/tokensV2';\n\nconst useStyle = makeStyles({\n dividerContainer: {\n position: 'relative',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyItems: 'center',\n width: '100%',\n },\n ticketLeftCard: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n gap: '3em',\n width: '100%',\n height: '100%',\n boxShadow: 'none',\n position: 'relative',\n overflow: 'visible',\n [`@media (min-width: ${extendedTokens.breakpointXl})`]: {\n borderRight: '0.7em dashed ' + tokens.colorNeutralBackground1Hover,\n borderEndEndRadius: 0,\n borderEndStartRadius: 0,\n borderTopLeftRadius: tokens.borderRadiusXLarge,\n borderBottomLeftRadius: tokens.borderRadiusXLarge,\n },\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n borderBottom: '0.5em dashed ' + tokens.colorNeutralBackground1Hover,\n borderTopLeftRadius: tokens.borderRadiusXLarge,\n borderTopRightRadius: tokens.borderRadiusXLarge,\n borderEndEndRadius: 0,\n borderEndStartRadius: 0,\n gap: '1rem',\n },\n },\n circularLeft: {\n position: 'absolute',\n width: '100px',\n height: '50px',\n borderRadius: '50%',\n backgroundColor: tokens.colorNeutralBackground1Hover,\n left: '-50px',\n boxShadow: 'inset -3px 0px 1px rgba(0, 0, 0, 0.1)',\n },\n ticketMiddleCard: {\n width: '100%',\n height: '100%',\n boxShadow: 'none',\n borderRadius: 0,\n padding: '2rem',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n borderBottom: 'none',\n [`@media (max-width: ${extendedTokens.breakpointLg})`]: {\n padding: '2rem',\n },\n [`@media (max-width: ${extendedTokens.breakpointMd})`]: {\n padding: '1rem',\n },\n },\n ticketInfo: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n gap: '0.5em',\n },\n ticketTime: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'start',\n gap: '0.5em',\n },\n ticketDuration: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '0.5rem',\n },\n ticketButtons: {\n display: 'flex',\n gap: '1rem',\n marginTop: '1rem',\n },\n ticketRightCard: {\n width: '100%',\n height: '100%',\n boxShadow: 'none',\n borderRadius: 0,\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n borderTopRightRadius: tokens.borderRadiusXLarge,\n borderBottomRightRadius: tokens.borderRadiusXLarge,\n position: 'relative',\n overflow: 'visible',\n background: 'linear-gradient(75deg, #58C91B 0%, #1949E0 103.3%)',\n padding: '5em',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n color: tokens.colorNeutralForegroundInverted,\n borderBottom: 'none',\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n padding: '2rem',\n borderTopRightRadius: 0,\n borderBottomLeftRadius: tokens.borderRadiusXLarge,\n },\n [`@media (max-width: ${extendedTokens.breakpointLg})`]: {\n padding: '1rem',\n borderTopRightRadius: 0,\n borderBottomLeftRadius: tokens.borderRadiusXLarge,\n },\n },\n priceCard: {\n border: ' 1px solid #FFF',\n background: 'rgba(255, 255, 255, 0.30)',\n backdropFilter: 'blur(17.5px)',\n borderRadius: tokens.borderRadiusLarge,\n padding: '1.2rem',\n gap: '1rem',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n flexWrap: 'wrap',\n [`@media (max-width: ${extendedTokens.breakpointMd})`]: {\n padding: '1rem',\n },\n },\n facilitiesSection: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5rem',\n },\n facilitiesList: {\n display: 'flex',\n flexWrap: 'wrap',\n gap: '0.75rem',\n },\n facilityItem: {\n display: 'flex',\n alignItems: 'center',\n gap: '0.5rem',\n fontSize: '14px',\n },\n circularRight: {\n position: 'absolute',\n width: '100px',\n height: '50px',\n borderRadius: '50%',\n backgroundColor: tokens.colorNeutralBackground1Hover,\n right: '-50px',\n boxShadow: 'inset 3px 0px 1px rgba(0, 0, 0, 0.1)',\n },\n ticketWrapper: {\n borderRadius: tokens.borderRadiusXLarge,\n overflow: 'visible',\n boxShadow: tokens.shadow4,\n display: 'flex',\n boxSizing: 'content-box',\n width: '100%',\n marginBottom: '2rem',\n minHeight: '323px',\n justifyContent: 'center',\n padding: 0,\n transformOrigin: 'center',\n marginLeft: `0px !important`,\n marginRight: `0px !important`,\n },\n circularLeftMd: {\n position: 'absolute',\n width: '50px',\n height: '30px',\n borderRadius: '50%',\n backgroundColor: tokens.colorNeutralBackground1Hover,\n left: '-25px',\n bottom: '-18px',\n zIndex: 2,\n boxShadow: 'inset -3px 0px 1px rgba(0, 0, 0, 0.1)',\n },\n circularRightMd: {\n position: 'absolute',\n width: '50px',\n height: '30px',\n borderRadius: '50%',\n backgroundColor: tokens.colorNeutralBackground1Hover,\n right: '-25px',\n bottom: '-18px',\n zIndex: 2,\n boxShadow: 'inset 3px 0px 1px rgba(0, 0, 0, 0.1)',\n },\n asdpLogo: {\n width: 'clamp(50px, 20vw, 150px)',\n },\n});\n\nexport const CardTicket: React.FC<CardTicketProps> = ({\n id,\n shipName,\n shipType,\n shipTypeColor = 'success',\n tooltipCaption = '',\n availableSeats,\n departureDay,\n departureTime,\n departureLocation,\n arrivalDay,\n arrivalTime,\n arrivalLocation,\n duration,\n facilities,\n totalPrice,\n buttonText = 'Pilih Tiket',\n onPriceDetailClick,\n onPolicyClick,\n onSelectTicket,\n}) => {\n const styles = useStyle();\n const {width} = useWindowSize()\n // Responsive circular configuration\n const getCircularVerticalConfig = () => {\n if (width <= 1600) return { count: 6, spacing: 60, top: 10 };\n return { count: 5, spacing: 60, top: 18 };\n };\n\n const circularVerticalConfig = getCircularVerticalConfig();\n\n return (\n <Row className={styles.ticketWrapper}>\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={3}\n xxl={3}\n xxxl={3}\n style={{ padding: 0, margin: 0 }}\n >\n <Card className={styles.ticketLeftCard}>\n <Row style={{ height: '100%' }}>\n <Col\n xs={5}\n sm={5}\n md={5}\n lg={5}\n xl={12}\n xxl={12}\n xxxl={12}\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <Tooltip\n content={tooltipCaption}\n relationship=\"label\"\n appearance=\"inverted\"\n >\n <Badge\n size=\"large\"\n appearance=\"filled\"\n color={shipTypeColor as any}\n iconPosition=\"before\"\n shape=\"rounded\"\n icon={<Icon icon=\"fluent:info-24-regular\" />}\n >\n {shipType}\n </Badge>\n </Tooltip>\n </Col>\n <Col\n xs={2}\n sm={2}\n md={2}\n lg={2}\n xl={12}\n xxl={12}\n xxxl={12}\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <img\n src=\"/assets/logo/asdp-default.svg\"\n className={styles.asdpLogo}\n alt=\"asdp\"\n height={56}\n width={82}\n />\n </Col>\n <Visible md sm xs lg>\n <Col\n xs={5}\n sm={5}\n md={5}\n lg={5}\n xl={12}\n xxl={12}\n xxxl={12}\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <Badge\n size=\"large\"\n style={{\n color:\n availableSeats > 50\n ? sharedColors.Shared_Green_Primary\n : sharedColors.Shared_Red_Primary,\n }}\n appearance=\"tint\"\n color={availableSeats > 50 ? 'success' : 'danger'}\n iconPosition=\"after\"\n shape=\"rounded\"\n icon={<Icon icon=\"fluent:ticket-diagonal-24-regular\" />}\n >\n Tersedia {availableSeats}\n </Badge>\n </Col>\n </Visible>\n <Col\n style={{ textAlign: 'center' }}\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={12}\n xxl={12}\n xxxl={12}\n >\n <Subtitle2>{shipName}</Subtitle2>\n </Col>\n </Row>\n\n <Visible md sm xs lg>\n <div className={styles.circularLeftMd} />\n <div className={styles.circularRightMd} />\n </Visible>\n <Visible xl xxl xxxl>\n {Array.from({ length: circularVerticalConfig.count }).map((_, index) => (\n <div\n key={index}\n className={styles.circularLeft}\n style={{\n top: `${circularVerticalConfig.top + index * circularVerticalConfig.spacing}px`,\n }}\n />\n ))}\n </Visible>\n </Card>\n </Col>\n\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={4.5}\n xxl={4.5}\n xxxl={4.5}\n style={{ padding: 0, margin: 0 }}\n >\n <Card className={styles.ticketMiddleCard}>\n <Visible lg xl xxl xxxl>\n <Badge\n size=\"extra-large\"\n style={{\n color:\n availableSeats > 50\n ? sharedColors.Shared_Green_Primary\n : sharedColors.Shared_Red_Primary,\n }}\n appearance=\"tint\"\n color={availableSeats > 50 ? 'success' : 'danger'}\n iconPosition=\"after\"\n shape=\"rounded\"\n icon={<Icon icon=\"fluent:ticket-diagonal-24-regular\" />}\n >\n Tersedia {availableSeats}\n </Badge>\n </Visible>\n\n <div>\n <div className={styles.ticketInfo}>\n <div className={styles.ticketTime}>\n <Caption1>{departureDay}</Caption1>\n <Title2>{departureTime}</Title2>\n <Caption1>{departureLocation}</Caption1>\n </div>\n <div className={styles.ticketDuration}>\n <Caption2>Estimasi {duration}</Caption2>\n <div className={styles.dividerContainer}>\n <Divider>\n <Icon icon=\"fluent:vehicle-ship-24-regular\" height={24} />\n </Divider>\n </div>\n </div>\n <div className={styles.ticketTime}>\n <Caption1>{arrivalDay}</Caption1>\n <Title2>{arrivalTime}</Title2>\n <Caption1>{arrivalLocation}</Caption1>\n </div>\n </div>\n </div>\n <div className={styles.ticketButtons}>\n <Button\n appearance=\"outline\"\n shape=\"circular\"\n style={{\n flex: 1,\n borderColor: tokens.colorBrandBackground,\n color: tokens.colorBrandBackground,\n }}\n icon={<Icon icon=\"fluent:money-24-regular\" />}\n size=\"medium\"\n onClick={onPriceDetailClick}\n >\n Rincian Harga\n </Button>\n <Button\n appearance=\"outline\"\n shape=\"circular\"\n style={{\n flex: 1,\n borderColor: tokens.colorBrandBackground,\n color: tokens.colorBrandBackground,\n }}\n icon={<Icon icon=\"fluent:document-bullet-list-24-regular\" />}\n size=\"medium\"\n onClick={onPolicyClick}\n >\n Kebijakan\n </Button>\n </div>\n </Card>\n </Col>\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={4.5}\n xxl={4.5}\n xxxl={4.5}\n style={{ padding: 0, margin: 0 }}\n >\n <Card className={styles.ticketRightCard}>\n <div className={styles.priceCard}>\n <div style={{ display: 'flex', flexDirection: 'column', gap: '0.25rem' }}>\n <Subtitle2>Total harga</Subtitle2>\n <Title3 style={{ display: 'flex', flex: 'column', justifyContent: 'end' }}>\n IDR \n {totalPrice.toLocaleString('id-ID')}\n </Title3>\n </div>\n <Button\n onClick={onSelectTicket}\n appearance=\"primary\"\n style={{ backgroundColor: brandColors['60'] }}\n size=\"medium\"\n shape=\"circular\"\n icon={<Icon icon=\"fluent:ticket-diagonal-24-filled\" />}\n >\n {buttonText}\n </Button>\n </div>\n <div className={styles.facilitiesSection}>\n <Subtitle2>Fasilitas</Subtitle2>\n <div className={styles.facilitiesList}>\n {facilities.map((facility, idx) => (\n <div key={idx} className={styles.facilityItem}>\n <Icon icon=\"fluent:checkmark-circle-24-filled\" />\n <Caption1Strong>{facility}</Caption1Strong>\n </div>\n ))}\n </div>\n </div>\n <Visible xl xxl xxxl>\n {Array.from({ length: circularVerticalConfig.count }).map((_, index) => (\n <div\n key={index}\n className={styles.circularRight}\n style={{\n top: `${circularVerticalConfig.top + index * circularVerticalConfig.spacing}px`,\n }}\n />\n ))}\n </Visible>\n </Card>\n </Col>\n </Row>\n );\n};\n","import React from 'react';\n\n/**\n * Horizontal ticket card background with decorative perforated edges\n * Use this for desktop/landscape layouts\n */\nconst BackgroundTicketCard = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n viewBox=\"0 0 1850 465\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n preserveAspectRatio=\"none\"\n {...props}\n >\n <g filter=\"url(#filter0_dd_156_32114)\">\n <path\n d=\"M1819.6 9.85962C1815.43 8.63925 1810.75 8.00891 1806.01 8.02751H523.015C517.214 8.02224 511.553 8.98897 506.816 10.7941C502.078 12.5993 498.497 15.1537 496.568 18.1041C492.794 23.9726 485.817 29.088 476.552 32.7781C467.288 36.4682 456.169 38.5603 444.659 38.7794C443.997 38.7794 443.3 38.7794 442.604 38.7794C430.731 38.7805 419.152 36.7877 409.476 33.0776C399.799 29.3676 392.505 24.1246 388.606 18.0766C386.681 15.1284 383.106 12.5753 378.374 10.7702C373.643 8.96512 367.989 7.99718 362.193 8.00001H43.9587C40.2864 7.9988 36.6498 8.38797 33.2567 9.1453C29.8635 9.90262 26.7806 11.0133 24.184 12.4137C21.5873 13.814 19.5279 15.4767 18.1237 17.3066C16.7194 19.1365 15.9978 21.0978 16 23.0782V425.922C15.9978 427.902 16.7194 429.863 18.1237 431.693C19.5279 433.523 21.5873 435.186 24.184 436.586C26.7806 437.987 29.8635 439.097 33.2567 439.855C36.6498 440.612 40.2864 441.001 43.9587 441H362.193C367.99 441.005 373.646 440.039 378.379 438.233C383.111 436.428 386.685 433.873 388.606 430.923C392.505 424.875 399.799 419.632 409.476 415.922C419.152 412.212 430.731 410.219 442.604 410.221C443.3 410.221 443.997 410.221 444.659 410.221C456.169 410.44 467.288 412.532 476.552 416.222C485.817 419.912 492.794 425.027 496.568 430.896C498.495 433.847 502.075 436.402 506.814 438.208C511.552 440.013 517.214 440.979 523.015 440.973H1806.04C1809.71 440.974 1813.35 440.585 1816.74 439.827C1820.14 439.07 1823.22 437.959 1825.82 436.559C1828.41 435.159 1830.47 433.496 1831.88 431.666C1833.28 429.836 1834 427.875 1834 425.894V23.0599C1834 20.3673 1832.66 17.7243 1830.13 15.4037C1827.59 13.0831 1823.96 11.1692 1819.6 9.85962ZM447.343 390.645C447.352 391.126 447.104 391.599 446.628 392.007C446.152 392.415 445.469 392.74 444.659 392.944C444.032 393.133 443.322 393.228 442.604 393.219C441.977 393.22 441.355 393.154 440.775 393.025C440.195 392.896 439.668 392.707 439.224 392.467C438.78 392.228 438.429 391.944 438.19 391.631C437.951 391.318 437.829 390.983 437.831 390.645V360.818C437.831 360.135 438.334 359.48 439.229 358.998C440.124 358.515 441.338 358.244 442.604 358.244C443.317 358.24 444.022 358.328 444.659 358.5C445.145 358.623 445.587 358.791 445.967 358.995C446.856 359.484 447.351 360.142 447.343 360.827V390.645ZM447.343 339.556C447.352 340.038 447.104 340.511 446.628 340.919C446.152 341.326 445.469 341.652 444.659 341.856C444.029 342.04 443.321 342.135 442.604 342.13C441.975 342.134 441.352 342.07 440.769 341.942C440.187 341.814 439.658 341.624 439.214 341.385C438.769 341.145 438.418 340.86 438.18 340.546C437.943 340.232 437.824 339.895 437.831 339.556V309.702C437.829 309.364 437.951 309.028 438.19 308.716C438.429 308.403 438.78 308.119 439.224 307.879C439.668 307.64 440.195 307.45 440.775 307.322C441.355 307.193 441.977 307.127 442.604 307.128C443.317 307.124 444.022 307.212 444.659 307.384C445.144 307.504 445.587 307.669 445.967 307.87C446.853 308.36 447.347 309.018 447.343 309.702V339.556ZM447.343 288.468C447.35 288.949 447.101 289.422 446.625 289.829C446.149 290.237 445.467 290.562 444.659 290.767C444.029 290.952 443.321 291.047 442.604 291.042C441.971 291.043 441.345 290.975 440.761 290.843C440.178 290.711 439.649 290.517 439.207 290.273C438.761 290.033 438.409 289.747 438.173 289.432C437.937 289.117 437.82 288.78 437.831 288.441V258.614C437.829 258.275 437.951 257.94 438.19 257.627C438.429 257.314 438.78 257.03 439.224 256.791C439.668 256.552 440.195 256.362 440.775 256.233C441.355 256.104 441.977 256.039 442.604 256.04C443.317 256.036 444.022 256.123 444.659 256.296C445.148 256.413 445.591 256.577 445.967 256.782C446.853 257.272 447.347 257.929 447.343 258.614V288.468ZM447.343 237.371C447.353 237.854 447.105 238.328 446.63 238.737C446.154 239.147 445.47 239.474 444.659 239.679C444.028 239.861 443.32 239.953 442.604 239.945C441.977 239.946 441.355 239.88 440.775 239.751C440.195 239.622 439.668 239.433 439.224 239.193C438.78 238.954 438.429 238.67 438.19 238.357C437.951 238.044 437.829 237.709 437.831 237.371V207.535C437.831 207.197 437.954 206.863 438.195 206.551C438.435 206.239 438.786 205.956 439.23 205.718C439.673 205.479 440.2 205.291 440.779 205.162C441.358 205.034 441.978 204.969 442.604 204.97C443.319 204.968 444.023 205.059 444.659 205.235C445.148 205.352 445.591 205.516 445.967 205.721C446.41 205.962 446.759 206.248 446.995 206.563C447.232 206.877 447.35 207.214 447.343 207.553V237.371ZM447.343 186.282C447.354 186.764 447.107 187.238 446.63 187.646C446.154 188.054 445.47 188.379 444.659 188.582C444.032 188.771 443.322 188.866 442.604 188.856C441.335 188.859 440.115 188.592 439.207 188.114C438.327 187.622 437.834 186.966 437.831 186.282V156.456C437.831 155.773 438.334 155.118 439.229 154.635C440.124 154.153 441.338 153.881 442.604 153.881C443.875 153.883 445.095 154.152 446.001 154.633C446.887 155.122 447.381 155.78 447.377 156.465L447.343 186.282ZM447.343 135.194C447.352 135.676 447.104 136.149 446.628 136.556C446.152 136.964 445.469 137.289 444.659 137.493C444.032 137.683 443.322 137.778 442.604 137.768C441.977 137.769 441.355 137.704 440.775 137.575C440.195 137.446 439.668 137.256 439.224 137.017C438.78 136.778 438.429 136.493 438.19 136.18C437.951 135.868 437.829 135.532 437.831 135.194V105.367C437.831 104.685 438.334 104.03 439.229 103.547C440.124 103.064 441.338 102.793 442.604 102.793C443.317 102.789 444.022 102.877 444.659 103.05C445.145 103.173 445.587 103.34 445.967 103.544C446.856 104.033 447.351 104.692 447.343 105.376V135.194ZM447.343 84.1057C447.352 84.5874 447.104 85.0604 446.628 85.4681C446.152 85.8758 445.469 86.201 444.659 86.405C444.029 86.5898 443.321 86.6845 442.604 86.6798C441.975 86.6835 441.352 86.6194 440.769 86.4913C440.187 86.3632 439.658 86.1739 439.214 85.9341C438.769 85.6943 438.418 85.409 438.18 85.0951C437.943 84.7811 437.824 84.4447 437.831 84.1057V54.279C437.829 53.9407 437.951 53.6054 438.19 53.2925C438.429 52.9797 438.78 52.6954 439.224 52.4561C439.668 52.2168 440.195 52.0273 440.775 51.8983C441.355 51.7694 441.977 51.7037 442.604 51.7049C443.317 51.7007 444.022 51.7886 444.659 51.9614C445.144 52.0812 445.587 52.2455 445.967 52.4469C446.856 52.9357 447.351 53.5943 447.343 54.279V84.1057Z\"\n fill=\"white\"\n />\n </g>\n <defs>\n <filter\n id=\"filter0_dd_156_32114\"\n x=\"0\"\n y=\"0\"\n width=\"1850\"\n height=\"465\"\n filterUnits=\"userSpaceOnUse\"\n colorInterpolationFilters=\"sRGB\"\n >\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset />\n <feGaussianBlur stdDeviation=\"1\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12 0\" />\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_156_32114\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset dy=\"8\" />\n <feGaussianBlur stdDeviation=\"8\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14 0\" />\n <feBlend\n mode=\"normal\"\n in2=\"effect1_dropShadow_156_32114\"\n result=\"effect2_dropShadow_156_32114\"\n />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"effect2_dropShadow_156_32114\"\n result=\"shape\"\n />\n </filter>\n </defs>\n </svg>\n);\n\nexport default BackgroundTicketCard;\n","import React from 'react';\n\n/**\n * Vertical ticket card background with decorative perforated edges\n * Use this for mobile/portrait layouts\n */\nconst BackgroundTicketCardVertical = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n viewBox=\"0 0 465 1750\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n preserveAspectRatio=\"none\"\n {...props}\n >\n <g filter=\"url(#filter0_dd_156_32115)\">\n <path\n d=\"M455.14 1719.6C456.36 1715.43 456.99 1710.75 456.973 1706.01V423.015C456.978 417.214 456.011 411.553 454.206 406.816C452.401 402.078 449.846 398.497 446.896 396.568C441.027 392.794 435.912 385.817 432.222 376.552C428.532 367.288 426.44 356.169 426.221 344.659C426.221 343.997 426.221 343.3 426.221 342.604C426.219 330.731 428.212 319.152 431.922 309.476C435.632 299.799 440.875 292.505 446.923 288.606C449.872 286.681 452.425 283.106 454.23 278.374C456.035 273.643 457.003 267.989 457 262.193V43.9587C457.001 40.2864 456.612 36.6498 455.855 33.2567C455.097 29.8635 453.987 26.7806 452.586 24.184C451.186 21.5873 449.523 19.5279 447.693 18.1237C445.863 16.7194 443.902 15.9978 441.922 16H23.0782C21.0978 16 19.1365 16.7194 17.3066 18.1237C15.4767 19.5279 13.814 21.5873 12.4137 24.184C11.0133 26.7806 9.90262 29.8635 9.1453 33.2567C8.38797 36.6498 7.9988 40.2864 8.00001 43.9587V262.193C7.99512 267.99 8.96103 273.646 10.7672 278.379C12.5723 283.111 15.1274 286.685 18.0766 288.606C24.1246 292.505 29.3676 299.799 33.0776 309.476C36.7877 319.152 38.7805 330.731 38.7794 342.604C38.7794 343.3 38.7794 343.997 38.7794 344.659C38.5603 356.169 36.4682 367.288 32.7781 376.552C29.088 385.817 23.9726 392.794 18.1041 396.568C15.1537 398.495 12.5993 402.075 10.7941 406.814C8.98897 411.552 8.02224 417.214 8.02751 423.015V1706.04C8.02604 1709.71 8.41503 1713.35 9.17279 1716.74C9.93055 1720.14 11.0413 1723.22 12.4414 1725.82C13.8414 1728.41 15.5041 1730.47 17.3342 1731.88C19.1643 1733.28 21.1253 1734 23.1059 1734H441.94C444.633 1734 447.276 1732.66 449.596 1730.13C451.917 1727.59 453.831 1723.96 455.14 1719.6ZM64.3552 347.343C63.8743 347.352 63.4013 347.104 62.9936 346.628C62.5859 346.152 62.261 345.469 62.0569 344.659C61.8675 344.032 61.7723 343.322 61.7814 342.604C61.7799 341.977 61.8461 341.355 61.975 340.775C62.1039 340.195 62.2932 339.668 62.5325 339.224C62.7718 338.78 63.0562 338.429 63.3691 338.19C63.682 337.951 64.0173 337.829 64.3552 337.831H94.1823C94.8653 337.831 95.5203 338.334 96.0023 339.229C96.4843 340.124 96.7557 341.338 96.7557 342.604C96.7599 343.317 96.672 344.022 96.5 344.659C96.3771 345.145 96.2092 345.587 96.0051 345.967C95.5163 346.856 94.8585 347.351 94.1733 347.343H64.3552ZM115.444 347.343C114.962 347.352 114.489 347.104 114.081 346.628C113.674 346.152 113.349 345.469 113.145 344.659C112.96 344.029 112.865 343.321 112.87 342.604C112.866 341.975 112.93 341.352 113.058 340.769C113.186 340.187 113.376 339.658 113.615 339.214C113.855 338.769 114.14 338.418 114.454 338.18C114.768 337.943 115.105 337.824 115.444 337.831H145.298C145.636 337.829 145.972 337.951 146.284 338.19C146.597 338.429 146.881 338.78 147.121 339.224C147.36 339.668 147.55 340.195 147.678 340.775C147.807 341.355 147.873 341.977 147.872 342.604C147.876 343.317 147.788 344.022 147.616 344.659C147.496 345.144 147.331 345.587 147.13 345.967C146.64 346.853 145.982 347.347 145.298 347.343H115.444ZM166.532 347.343C166.051 347.35 165.578 347.101 165.171 346.625C164.763 346.149 164.438 345.467 164.233 344.659C164.048 344.029 163.953 343.321 163.958 342.604C163.957 341.971 164.025 341.345 164.157 340.761C164.289 340.178 164.483 339.649 164.727 339.207C164.967 338.761 165.253 338.409 165.568 338.173C165.883 337.937 166.22 337.82 166.559 337.831H196.386C196.725 337.829 197.06 337.951 197.373 338.19C197.686 338.429 197.97 338.78 198.209 339.224C198.448 339.668 198.638 340.195 198.767 340.775C198.896 341.355 198.961 341.977 198.96 342.604C199.036 343.317 198.948 344.022 198.776 344.659C198.659 345.148 198.505 345.591 198.299 345.967C197.809 346.853 197.152 347.347 196.468 347.343H166.532ZM217.629 347.343C217.146 347.353 216.672 347.105 216.263 346.63C215.853 346.154 215.526 345.47 215.321 344.659C215.139 344.028 215.047 343.32 215.055 342.604C215.054 341.977 215.12 341.355 215.249 340.775C215.378 340.195 215.567 339.668 215.807 339.224C216.046 338.78 216.33 338.429 216.643 338.19C216.956 337.951 217.291 337.829 217.629 337.831H247.465C247.803 337.831 248.137 337.954 248.449 338.195C248.761 338.435 249.044 338.786 249.282 339.23C249.521 339.673 249.709 340.2 249.838 340.779C249.966 341.358 250.031 341.978 250.03 342.604C250.032 343.319 249.941 344.023 249.765 344.659C249.648 345.148 249.484 345.591 249.279 345.967C248.964 346.41 248.578 346.759 248.163 346.995C247.748 347.232 247.311 347.35 246.873 347.343H217.629ZM268.718 347.343C268.236 347.354 267.762 347.107 267.354 346.63C266.946 346.154 266.621 345.47 266.418 344.659C266.229 344.032 266.134 343.322 266.144 342.604C266.141 341.335 266.408 340.115 266.886 339.207C267.378 338.327 268.034 337.834 268.718 337.831H298.544C299.227 337.831 299.882 338.334 300.365 339.229C300.847 340.124 301.119 341.338 301.119 342.604C301.117 343.875 300.848 345.095 300.367 346.001C299.878 346.887 299.22 347.381 298.535 347.377L268.718 347.343ZM319.806 347.343C319.324 347.352 318.851 347.104 318.444 346.628C318.036 346.152 317.711 345.469 317.507 344.659C317.317 344.032 317.222 343.322 317.232 342.604C317.231 341.977 317.296 341.355 317.425 340.775C317.554 340.195 317.744 339.668 317.983 339.224C318.222 338.78 318.507 338.429 318.82 338.19C319.132 337.951 319.468 337.829 319.806 337.831H349.633C350.315 337.831 350.97 338.334 351.453 339.229C351.936 340.124 352.207 341.338 352.207 342.604C352.211 343.317 352.123 344.022 351.95 344.659C351.827 345.145 351.66 345.587 351.456 345.967C350.967 346.856 350.308 347.351 349.624 347.343H319.806ZM370.894 347.343C370.413 347.352 369.94 347.104 369.532 346.628C369.124 346.152 368.799 345.469 368.595 344.659C368.41 344.029 368.315 343.321 368.32 342.604C368.316 341.975 368.38 341.352 368.508 340.769C368.637 340.187 368.826 339.658 369.066 339.214C369.306 338.769 369.592 338.418 369.905 338.18C370.219 337.943 370.555 337.824 370.894 337.831H400.721C401.059 337.829 401.395 337.951 401.707 338.19C402.02 338.429 402.305 388.78 402.544 339.224C402.783 339.668 402.973 340.195 403.102 340.775C403.231 341.355 403.296 341.977 403.295 342.604C403.299 343.317 403.212 344.022 403.039 344.659C402.919 345.144 402.755 345.587 402.553 345.967C402.064 346.856 401.406 347.351 400.721 347.343H370.894Z\"\n fill=\"white\"\n />\n </g>\n <defs>\n <filter\n id=\"filter0_dd_156_32115\"\n x=\"0\"\n y=\"0\"\n width=\"465\"\n height=\"1750\"\n filterUnits=\"userSpaceOnUse\"\n colorInterpolationFilters=\"sRGB\"\n >\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset />\n <feGaussianBlur stdDeviation=\"1\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"BackgroundImageFix\"\n result=\"effect1_dropShadow_156_32115\"\n />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset dy=\"8\" />\n <feGaussianBlur stdDeviation=\"8\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"effect1_dropShadow_156_32115\"\n result=\"effect2_dropShadow_156_32115\"\n />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"effect2_dropShadow_156_32115\"\n result=\"shape\"\n />\n </filter>\n </defs>\n </svg>\n);\n\nexport default BackgroundTicketCardVertical;\n","import React from 'react';\nimport {\n Button,\n Card,\n Divider,\n makeStyles,\n mergeClasses,\n tokens,\n} from '@fluentui/react-components';\nimport { Language } from '../../types/globalTypes';\n\nconst useStyles = makeStyles({\n card: {\n width: '100%',\n boxSizing: 'border-box',\n padding: '0px',\n borderRadius: tokens.borderRadiusXLarge,\n },\n menuList: {\n display: 'flex',\n flexDirection: 'column',\n '@media (max-width: 1200px)': {\n flexDirection: 'row',\n overflowX: 'auto',\n flexWrap: 'nowrap',\n gap: '0px',\n WebkitOverflowScrolling: 'touch',\n scrollbarWidth: 'thin',\n justifyContent: 'space-around',\n },\n },\n menuItem: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-start',\n padding: '12px',\n borderRadius: tokens.borderRadiusMedium,\n cursor: 'pointer',\n textAlign: 'left',\n transition: 'background-color 0.2s ease',\n textDecoration: 'none',\n color: tokens.colorNeutralForeground1,\n backgroundColor: tokens.colorNeutralBackground1,\n border: 'none',\n gap: '12px',\n '&:hover': {\n backgroundColor: tokens.colorNeutralBackground1Hover,\n },\n '@media (max-width: 1200px)': {\n padding: '10px 12px',\n flexShrink: 0,\n flexDirection: 'column',\n alignItems: 'center',\n textAlign: 'center',\n },\n },\n menuItemActive: {\n backgroundColor: tokens.colorNeutralBackground3,\n color: tokens.colorNeutralForeground1,\n '&:hover': {\n backgroundColor: tokens.colorNeutralBackground3Hover,\n },\n },\n logo: {\n height: '32px',\n width: '32px',\n flexShrink: 0,\n },\n textContent: {\n display: 'flex',\n flexDirection: 'column',\n gap: '4px',\n '@media (max-width: 1200px)': {\n alignItems: 'center',\n },\n },\n label: {\n fontSize: tokens.fontSizeBase300,\n fontWeight: tokens.fontWeightSemibold,\n lineHeight: '1.2',\n },\n description: {\n fontSize: tokens.fontSizeBase200,\n fontWeight: tokens.fontWeightRegular,\n color: tokens.colorNeutralForeground2,\n lineHeight: '1.4',\n '@media (max-width: 1200px)': {\n fontSize: tokens.fontSizeBase100,\n whiteSpace: 'nowrap',\n },\n },\n dividerVertical: {\n '@media (min-width: 1200px)': {\n display: 'none',\n },\n },\n dividerHorizontal: {\n '@media (max-width: 1200px)': {\n display: 'none',\n },\n },\n});\n\n// Built-in service menu items with i18n\nconst SERVICE_MENU_ITEMS = {\n ferry: {\n id: 'ferry',\n logo: '/assets/images/icons/ferry.svg',\n labels: {\n id: { label: 'Ferry', description: 'Layanan penyeberangan ferry ASDP' },\n en: { label: 'Ferry', description: 'ASDP Ferry Crossing Service' },\n },\n },\n ifcs: {\n id: 'ifcs',\n logo: '/assets/logo/asdp-default.svg',\n labels: {\n id: { label: 'IFCS', description: 'Integrated Ferry Control System' },\n en: { label: 'IFCS', description: 'Integrated Ferry Control System' },\n },\n },\n skpt: {\n id: 'skpt',\n logo: '/assets/logo/asdp-default.svg',\n labels: {\n id: { label: 'SKPT', description: 'Sistem Karcis Penumpang Terpadu' },\n en: { label: 'SKPT', description: 'Integrated Passenger Ticketing System' },\n },\n },\n hotel: {\n id: 'hotel',\n logo: '/assets/images/icons/hotel.svg',\n labels: {\n id: { label: 'Hotel', description: 'Layanan pemesanan hotel' },\n en: { label: 'Hotel', description: 'Hotel Booking Service' },\n },\n },\n other: {\n id: 'other',\n logo: '/assets/images/icons/other.svg',\n labels: {\n id: { label: 'Lainnya', description: 'Layanan lainnya' },\n en: { label: 'Other', description: 'Other Services' },\n },\n },\n} as const;\n\nexport type ServiceId = keyof typeof SERVICE_MENU_ITEMS;\n\nexport interface CardServiceMenuProps {\n /**\n * Currently active service ID\n * @default 'ferry'\n */\n activeServiceId?: ServiceId;\n \n /**\n * Language for labels (Indonesian or English)\n * @default 'id'\n */\n language?: Language;\n \n /**\n * Callback when a service is clicked\n */\n onServiceClick?: (serviceId: ServiceId) => void;\n \n /**\n * Whether to show descriptions on desktop\n * @default true\n */\n showDescriptions?: boolean;\n \n /**\n * Custom className for the card\n */\n className?: string;\n}\n\nexport const CardServiceMenu: React.FC<CardServiceMenuProps> = ({\n activeServiceId = 'ferry',\n language = 'id',\n onServiceClick,\n showDescriptions = true,\n className,\n}) => {\n const styles = useStyles();\n\n const getMenuItemClass = (serviceId: ServiceId) => {\n const isActive = activeServiceId === serviceId;\n return mergeClasses(\n styles.menuItem,\n isActive && styles.menuItemActive\n );\n };\n\n const menuItems = Object.values(SERVICE_MENU_ITEMS);\n\n return (\n <Card className={mergeClasses(styles.card, className)}>\n <div className={styles.menuList}>\n {menuItems.map((item, index) => {\n const { label, description } = item.labels[language];\n \n return (\n <React.Fragment key={item.id}>\n <Button\n className={getMenuItemClass(item.id as ServiceId)}\n onClick={() => onServiceClick?.(item.id as ServiceId)}\n >\n <img\n src={item.logo}\n alt={label}\n className={styles.logo}\n />\n <div className={styles.textContent}>\n <span className={styles.label}>{label}</span>\n {showDescriptions && (\n <span className={styles.description}>\n {description}\n </span>\n )}\n </div>\n </Button>\n {index < menuItems.length - 1 && (\n <>\n <Divider className={styles.dividerHorizontal} />\n <Divider vertical className={styles.dividerVertical} />\n </>\n )}\n </React.Fragment>\n );\n })}\n </div>\n </Card>\n );\n};\n\nexport default CardServiceMenu;\n","import { Calendar } from '@fluentui/react-calendar-compat';\nimport {\n Input,\n InputProps,\n Popover,\n PopoverSurface,\n PopoverTrigger,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport React, { forwardRef, useState } from 'react';\n\ninterface DatePickerInputProps extends InputProps {\n field: {\n value: string;\n onChange: (value: string) => void;\n onBlur?: () => void;\n };\n max?: string;\n}\n\nconst DatePickerInput = forwardRef<HTMLInputElement, DatePickerInputProps>(\n (\n {\n field,\n placeholder,\n disabled,\n appearance,\n size,\n contentBefore,\n onClick,\n style,\n max,\n ...restProps\n },\n ref,\n ) => {\n const [isOpen, setIsOpen] = useState(false);\n const dateValue = field.value ? new Date(field.value) : undefined;\n\n const onSelectDate = (date: Date | null | undefined) => {\n if (date) {\n // Adjust for timezone offset to ensure the date string is correct\n const offset = date.getTimezoneOffset();\n const adjustedDate = new Date(date.getTime() - offset * 60 * 1000);\n field.onChange(adjustedDate.toISOString().split('T')[0]);\n setIsOpen(false);\n }\n };\n\n const formatDate = (dateString: string) => {\n if (!dateString) return '';\n const date = new Date(dateString);\n return date.toLocaleDateString('id-ID', {\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n });\n };\n\n const handleInputClick = (e: React.MouseEvent<HTMLInputElement>) => {\n e?.preventDefault();\n if (!disabled) {\n setIsOpen(!isOpen);\n }\n onClick?.(e);\n };\n\n return (\n <Popover open={isOpen} onOpenChange={(_, data) => setIsOpen(data.open)} trapFocus>\n <PopoverTrigger disableButtonEnhancement>\n <Input\n {...restProps}\n value={formatDate(field.value)}\n readOnly\n placeholder={placeholder || 'Pilih tanggal'}\n disabled={disabled}\n appearance={appearance}\n size={size}\n contentBefore={contentBefore}\n onClick={handleInputClick}\n style={{\n cursor: disabled ? 'not-allowed' : 'pointer',\n ...style,\n }}\n contentAfter={\n <div\n onClick={e => {\n e.stopPropagation();\n if (!disabled) {\n setIsOpen(!isOpen);\n }\n }}\n style={{\n cursor: disabled ? 'not-allowed' : 'pointer',\n display: 'flex',\n alignItems: 'center',\n }}\n >\n <Icon icon=\"fluent:calendar-24-regular\" />\n </div>\n }\n />\n </PopoverTrigger>\n <PopoverSurface tabIndex={-1} style={{ maxWidth: '530px' }}>\n <Calendar\n value={dateValue}\n onSelectDate={onSelectDate}\n showGoToToday\n highlightSelectedMonth\n showMonthPickerAsOverlay={false}\n maxDate={max ? new Date(max) : undefined}\n />\n </PopoverSurface>\n </Popover>\n );\n },\n);\n\nDatePickerInput.displayName = 'DatePickerInput';\n\nexport default DatePickerInput;\n","import React, { MutableRefObject, useEffect, useRef, useState } from 'react';\nimport {\n Button,\n Checkbox,\n Field,\n Input,\n Label,\n Radio,\n RadioGroup,\n Switch,\n Text,\n Textarea,\n makeStyles,\n tokens,\n typographyStyles,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport { Control, Controller, FieldValues, Path } from 'react-hook-form';\nimport PhoneInputComponent from 'react-phone-input-2';\n// import 'react-phone-input-2/lib/style.css';\nimport Select from 'react-select';\n\nimport tokensV2, { fontWeight, sharedColors } from '../../constants/generated/tokensV2';\n\nimport DatePickerInput from './DatePickerInput';\nimport { InputDynamicProps, InputType, PhoneValue, CountryCode, SelectOption, RadioOption } from './types';\n\n// Handle both default and named exports for PhoneInput\nconst PhoneInput = (PhoneInputComponent as any).default || PhoneInputComponent;\nconst useStyles = makeStyles({\n field: {\n display: 'flex',\n flexDirection: 'column',\n gap: tokens.spacingVerticalXS,\n marginBottom: tokens.spacingVerticalM,\n },\n errorText: {\n color: tokens.colorPaletteRedBackground1,\n fontSize: tokens.fontSizeBase200,\n },\n helperText: {\n color: tokens.colorNeutralForeground2,\n fontSize: tokens.fontSizeBase200,\n },\n disabledFilledLighter: {\n backgroundColor: tokens.colorNeutralBackground4,\n border: 'none',\n '& input': {\n backgroundColor: tokens.colorNeutralBackground4,\n border: 'none',\n },\n },\n fileInput: {\n padding: tokens.spacingVerticalS,\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n borderRadius: tokens.borderRadiusMedium,\n backgroundColor: tokens.colorNeutralBackground1,\n fontSize: tokens.fontSizeBase300,\n '&:focus': {\n outline: `2px solid ${tokens.colorBrandStroke1}`,\n },\n },\n reactSelect: {\n // Custom styles akan dihandle via styles prop react-select\n },\n reactSelectError: {\n // Custom styles akan dihandle via styles prop react-select\n },\n phoneContainer: {\n display: 'flex',\n gap: tokens.spacingHorizontalS,\n alignItems: 'flex-start',\n width: '100%',\n },\n phoneCountrySelect: {\n minWidth: '120px',\n maxWidth: '120px',\n flexShrink: 0,\n },\n switchWrapper: {\n '& .fui-Switch': {\n minHeight: '20px',\n },\n '& .fui-Switch__indicator': {\n height: '20px',\n width: '40px',\n borderRadius: '10px',\n },\n '& .fui-Switch__thumb': {\n height: '14px',\n width: '14px',\n borderRadius: '50%',\n },\n },\n otpInput: {\n '& input': {\n textAlign: 'center',\n },\n },\n inputWithAutocomplete: {\n '& input:-webkit-autofill': {\n '-webkit-box-shadow': '0 0 0 30px white inset !important',\n '-webkit-text-fill-color': `${tokens.colorNeutralForeground1} !important`,\n },\n '& input:-webkit-autofill:hover': {\n '-webkit-box-shadow': '0 0 0 30px white inset !important',\n },\n '& input:-webkit-autofill:focus': {\n '-webkit-box-shadow': '0 0 0 30px white inset !important',\n },\n '& input:-webkit-autofill:active': {\n '-webkit-box-shadow': '0 0 0 30px white inset !important',\n },\n },\n phoneInputWrapper: {\n width: '100%',\n '& .react-tel-input': {\n width: '100%',\n },\n '& .react-tel-input .form-control': {\n width: '100%',\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n borderRadius: tokens.borderRadiusMedium,\n padding: tokens.spacingVerticalS,\n paddingLeft: '48px',\n fontSize: tokens.fontSizeBase300,\n fontFamily: tokens.fontFamilyBase,\n backgroundColor: tokens.colorNeutralBackground1,\n color: tokens.colorNeutralForeground1,\n outline: 'none',\n height: 'auto',\n minHeight: '40px',\n },\n '& .react-tel-input .form-control::placeholder': {\n fontSize: tokens.fontSizeBase400,\n },\n '& .react-tel-input .form-control:hover': {\n border: `1px solid ${tokens.colorNeutralStroke1Hover}`,\n },\n '& .react-tel-input .form-control:focus': {\n borderBottom: `2px solid ${tokens.colorBrandStroke1}`,\n // boxShadow: `0 0 0 1px ${tokens.colorBrandStroke1}`,\n },\n '& .react-tel-input .form-control:disabled': {\n backgroundColor: tokens.colorNeutralBackground4,\n color: tokens.colorNeutralForegroundDisabled,\n cursor: 'not-allowed',\n },\n '& .react-tel-input .flag-dropdown': {\n border: 'none',\n backgroundColor: 'transparent',\n borderRadius: tokens.borderRadiusMedium,\n },\n '& .react-tel-input .selected-flag': {\n padding: '0 0 0 8px',\n width: '40px',\n backgroundColor: 'transparent',\n },\n '& .react-tel-input .selected-flag:hover': {\n backgroundColor: 'transparent',\n },\n '& .react-tel-input .flag-dropdown.open .selected-flag': {\n backgroundColor: 'transparent',\n },\n },\n phoneInputError: {\n '& .react-tel-input .form-control': {\n border: `2px solid ${tokens.colorPaletteRedBorder2}`,\n },\n '& .react-tel-input .form-control:focus': {\n border: `2px solid ${tokens.colorPaletteRedBorder2}`,\n boxShadow: `0 0 0 1px ${tokens.colorPaletteRedBorder2}`,\n },\n },\n classRadioGroup: {\n display: 'flex',\n flexDirection: 'row',\n gap: '12px',\n },\n classRadio: {\n '& .fui-Radio__indicator': {\n display: 'none',\n },\n '& .fui-Radio__label': {\n padding: '10px 24px',\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n borderRadius: tokens.borderRadiusCircular,\n cursor: 'pointer',\n transition: 'all 0.2s ease',\n fontSize: tokens.fontSizeBase300,\n color: tokens.colorNeutralForeground2,\n },\n '&:hover .fui-Radio__label': {\n backgroundColor: tokens.colorNeutralBackground1Hover,\n border: `1px solid ${tokensV2.lightModeColors.Brand_Stroke_1_Rest}`,\n },\n '& .fui-Radio__input:checked ~ .fui-Radio__label': {\n borderRadius: tokens.borderRadiusXLarge,\n border: `1px solid ${tokensV2.lightModeColors.Brand_Stroke_1_Rest}`,\n color: tokensV2.lightModeColors.Brand_Stroke_1_Rest,\n backgroundColor: 'transparent',\n },\n // Fallback for aria-checked if needed\n '&[aria-checked=\"true\"] .fui-Radio__label': {\n borderRadius: tokens.borderRadiusXLarge,\n border: `1px solid ${tokensV2.lightModeColors.Brand_Stroke_1_Rest}`,\n color: tokensV2.lightModeColors.Brand_Stroke_1_Rest,\n backgroundColor: 'transparent',\n },\n // Disabled state styling\n '& .fui-Radio__input:disabled ~ .fui-Radio__label': {\n opacity: 0.6,\n cursor: 'not-allowed',\n backgroundColor: tokens.colorNeutralBackground4,\n },\n '&:hover .fui-Radio__input:disabled ~ .fui-Radio__label': {\n backgroundColor: tokens.colorNeutralBackground4,\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n },\n },\n});\n\n// Helper function to check if it's a valid phone number start\n// const isValidPhoneStart = (value: string): boolean => {\n// if (!value || value.length < 6) return false;\n\n// // Phone number patterns for international numbers:\n// // - Must be all digits\n// // - Length between 6-15 digits (international standard)\n// // - Common patterns: starts with 0, +, or direct country code (1-9)\n// const cleanValue = value.replace(/[\\s\\-\\(\\)]/g, ''); // Remove common phone formatting\n\n// // Check if it's all digits (after removing + at start if present)\n// const numericValue = cleanValue.replace(/^\\+/, '');\n// const isAllDigits = /^\\d+$/.test(numericValue);\n\n// // Must be all digits and have reasonable length for phone number (6-15 digits)\n// return isAllDigits && numericValue.length >= 6 && numericValue.length <= 15;\n// };\n\n// Helper function to detect input type for identity field\nconst detectIdentityType = (value: string): 'email' | 'phone' | 'id' => {\n if (!value) return 'id';\n\n // Ensure value is a string to prevent \"includes/startsWith is not a function\" errors\n const stringValue = String(value);\n\n // Check if it's an email (contains @)\n if (stringValue.includes('@')) return 'email';\n\n // Check if it's a phone number - starts with +\n if (stringValue.startsWith('+')) return 'phone';\n\n // Check if it's all numeric (phone without +)\n // This handles the case when PhoneInput returns just numbers\n // const isAllNumeric = /^\\d+$/.test(value);\n // if (isAllNumeric && value.length >= 10) return 'phone';\n\n // Otherwise it's an ID (KTP/SIM/Passport - mixed alphanumeric or short numbers)\n return 'id';\n};\n\nconst detectEmailOrPhone = (value: string): 'email' | 'phone' | 'none' => {\n if (!value) return 'none';\n\n // Check if it's an email (contains @)\n if (value.includes('@')) return 'email';\n\n // Check if it's a phone number - starts with +\n if (value.startsWith('+')) return 'phone';\n\n return 'none';\n};\n\n// Helper function khusus untuk emailOrPhone type - deteksi lebih strict\nconst detectEmailOrPhoneStrict = (value: string): 'email' | 'phone' | 'none' => {\n if (!value) return 'none';\n\n // Check if it's an email (contains @)\n if (value.includes('@')) return 'email';\n\n // Check if it's a phone number - starts with + (international format)\n if (value.startsWith('+')) return 'phone';\n\n // Check if it's Indonesian phone format starting with 0 (e.g., 08xxx)\n if (/^0\\d/.test(value)) return 'phone';\n\n // Check if it's Indonesian phone without + (e.g., 628xxx)\n if (/^62\\d/.test(value)) return 'phone';\n\n return 'none';\n};\n\nconst InputDynamic: React.FC<InputDynamicProps> = ({\n name,\n control,\n label,\n type,\n placeholder,\n required = false,\n disabled = false,\n options = [],\n multiple = false,\n accept,\n rows = 3,\n min,\n max,\n step,\n isMultiSelect = false,\n selectScrollbarColor,\n contentBefore,\n appearance = 'outline',\n validationRules,\n helperText,\n className,\n layout,\n size,\n onClick,\n style,\n defaultCountry = 'ID',\n maxLength,\n autoAdvance = false,\n otpIndex,\n hasError = false,\n autoComplete,\n onInput,\n contentAfter,\n onChange,\n}: InputDynamicProps) => {\n\n const styles = useStyles();\n const [showPassword, setShowPassword] = useState(false);\n const [isPhoneMode, setIsPhoneMode] = useState(false);\n const [emailOrPhoneType, setEmailOrPhoneType] = useState<'email' | 'phone' | 'none'>('none');\n const [identityType, setIdentityType] = useState<'email' | 'phone' | 'id'>('id');\n const [lastPhoneValue, setLastPhoneValue] = useState('');\n const [lastEmailOrPhoneValue, setLastEmailOrPhoneValue] = useState('');\n const inputRef = useRef<HTMLInputElement>(null);\n const phoneInputRef = useRef<any>(null);\n const emailOrPhoneInputRef = useRef<any>(null);\n const shouldFocusRef = useRef(false);\n const isBackspaceNavigationRef = useRef(false);\n\n // Custom styles untuk react-select\n const getSelectStyles = (hasError: boolean) => ({\n menuPortal: (base: any) => ({\n ...base,\n zIndex: 9999999,\n borderRadius: tokens.borderRadiusMedium,\n }),\n control: (provided: any, state: any) => ({\n ...provided,\n borderColor: hasError\n ? tokens.colorPaletteRedBorder2\n : state.isFocused\n ? tokens.colorBrandStroke1\n : tokens.colorNeutralStroke1,\n borderRadius: tokens.borderRadiusMedium,\n minHeight: '40px',\n fontSize: tokens.fontSizeBase400,\n backgroundColor: tokens.colorNeutralBackground1,\n boxShadow: state.isFocused\n ? `0 0 0 2px ${hasError ? tokens.colorPaletteRedBorder2 : tokens.colorBrandStroke1}`\n : 'none',\n '&:hover': {\n borderColor: hasError ? tokens.colorPaletteRedBorder2 : tokens.colorNeutralStroke1Hover,\n },\n }),\n menu: (provided: any) => ({\n ...provided,\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n borderRadius: tokens.borderRadiusMedium,\n zIndex: 9999,\n }),\n menuList: (provided: any) => ({\n ...provided,\n padding: 0, // Opsional: bersihkan padding agar scrollbar mepet ke pinggir\n maxHeight: '300px', // Pastikan ada limit height agar scrollbar muncul\n\n /* Targetkan Webkit Scrollbar di menuList */\n '&::-webkit-scrollbar': {\n width: '8px',\n display: 'block', // Pastikan tampil\n },\n '&::-webkit-scrollbar-track': {\n backgroundColor: tokens.colorNeutralBackground2,\n borderRadius: '4px',\n },\n '&::-webkit-scrollbar-thumb': {\n backgroundColor: selectScrollbarColor || tokens.colorNeutralStroke2,\n borderRadius: '4px',\n },\n '&::-webkit-scrollbar-thumb:hover': {\n backgroundColor: selectScrollbarColor || tokens.colorBrandBackground,\n },\n '&::-webkit-scrollbar-thumb:active': {\n backgroundColor: selectScrollbarColor || tokens.colorBrandBackgroundPressed,\n },\n }),\n option: (provided: any, state: any) => ({\n ...provided,\n fontSize: tokens.fontSizeBase300,\n color: state.isSelected\n ? tokens.colorNeutralForegroundOnBrand\n : tokens.colorNeutralForeground1,\n backgroundColor: state.isSelected\n ? tokens.colorBrandBackground\n : state.isFocused\n ? tokens.colorNeutralBackground1Hover\n : 'transparent',\n }),\n placeholder: (provided: any) => ({\n ...provided,\n color: tokens.colorNeutralForeground3,\n fontSize: tokens.fontSizeBase400,\n }),\n singleValue: (provided: any) => ({\n ...provided,\n color: tokens.colorNeutralForeground1,\n fontSize: tokens.fontSizeBase400,\n }),\n });\n\n // Focus the input when mode changes\n useEffect(() => {\n if (shouldFocusRef.current) {\n // Small delay to ensure the new input is mounted\n setTimeout(() => {\n // console.log(\n // 'Focusing input for type:',\n // identityType,\n // 'shouldFocusRef:',\n // shouldFocusRef.current,\n // );\n if (identityType === 'phone' && phoneInputRef.current) {\n // PhoneInput uses an internal input element\n const phoneInput = phoneInputRef.current.querySelector('input.form-control');\n if (phoneInput) {\n phoneInput.focus();\n // Set cursor to end of input\n const len = phoneInput.value.length;\n phoneInput.setSelectionRange(len, len);\n }\n } else if (inputRef.current) {\n inputRef.current.focus();\n // Set cursor to end of input only for text-like inputs\n // email, number, date, etc. don't support setSelectionRange\n const inputType = inputRef.current.type;\n if (\n inputType === 'text' ||\n inputType === 'tel' ||\n inputType === 'url' ||\n inputType === 'search'\n ) {\n const len = inputRef.current.value.length;\n inputRef.current.setSelectionRange(len, len);\n }\n }\n shouldFocusRef.current = false;\n }, 50);\n }\n }, [identityType]);\n\n // Focus handling for emailOrPhone type\n useEffect(() => {\n if (shouldFocusRef.current && type === 'emailOrPhone') {\n setTimeout(() => {\n if (emailOrPhoneType === 'phone' && emailOrPhoneInputRef.current) {\n const phoneInput = emailOrPhoneInputRef.current.querySelector('input.form-control');\n if (phoneInput) {\n phoneInput.focus();\n const len = phoneInput.value.length;\n phoneInput.setSelectionRange(len, len);\n }\n } else if (inputRef.current) {\n inputRef.current.focus();\n const inputType = inputRef.current.type;\n // Only use setSelectionRange on input types that support it\n if (\n inputType === 'text' ||\n inputType === 'tel' ||\n inputType === 'url' ||\n inputType === 'search'\n ) {\n const len = inputRef.current.value.length;\n inputRef.current.setSelectionRange(len, len);\n }\n }\n shouldFocusRef.current = false;\n }, 50);\n }\n }, [emailOrPhoneType, type]);\n\n // const updatePhoneMode = (value: any) => {\n // const stringValue = typeof value === 'string' ? value : value?.phoneNumber || '';\n // const nextMode = isValidPhoneStart(stringValue);\n // if (nextMode !== isPhoneMode) {\n // setIsPhoneMode(nextMode);\n // }\n // };\n\n const updateIdentityType = (value: any) => {\n const stringValue = typeof value === 'string' ? value : value?.phoneNumber || '';\n const detectedType = detectIdentityType(stringValue);\n if (detectedType !== identityType) {\n setIdentityType(detectedType);\n }\n };\n\n const updateEmailOrPhoneType = (value: any) => {\n const stringValue = typeof value === 'string' ? value : '';\n const detectedType = detectEmailOrPhoneStrict(stringValue);\n if (detectedType !== emailOrPhoneType) {\n setEmailOrPhoneType(detectedType);\n }\n };\n\n const renderInput = (field: any, error?: string) => {\n // Make border transparent when disabled and appearance is not outline/underline\n const shouldTransparentBorder =\n disabled && appearance !== 'outline' && appearance !== 'underline';\n\n const inputStyle = shouldTransparentBorder ? { ...style, border: 'transparent' } : style;\n\n const handleInputChange = (e: any) => {\n field.onChange(e);\n if (onChange) {\n onChange(e.target?.value ?? e);\n }\n };\n\n const commonProps = {\n ...field,\n onChange: handleInputChange,\n value: field.value ?? '',\n placeholder,\n disabled,\n appearance: error ? 'invalid' : appearance,\n size,\n contentBefore,\n onClick,\n style: inputStyle,\n maxLength,\n autoComplete: autoComplete || 'off',\n contentAfter,\n max,\n } as const;\n const otpMatch = /^otp(\\d+)$/.exec(String(name));\n const otpIndex = otpMatch ? parseInt(otpMatch[1], 10) : null;\n\n // Handle emailOrPhone type - khusus untuk email atau nomor HP saja\n if (type === 'emailOrPhone') {\n updateEmailOrPhoneType(field.value);\n\n const stringValue = typeof field.value === 'string' ? field.value : '';\n\n // Determine input type and placeholder based on detected type\n let inputType: 'text' | 'email' | 'tel' = 'text';\n let inputPlaceholder = placeholder || 'Email atau Nomor HP';\n\n if (emailOrPhoneType === 'email') {\n inputType = 'email';\n inputPlaceholder = placeholder || 'Email';\n } else if (emailOrPhoneType === 'phone') {\n inputType = 'tel';\n inputPlaceholder = placeholder || 'Nomor HP';\n }\n\n // Normalize Indonesian phone numbers: convert 08xxx to +628xxx\n const normalizePhoneNumber = (val: string): string => {\n if (!val) return val;\n // Convert 08xxx to +628xxx\n if (val.startsWith('08')) {\n return '+62' + val.substring(1);\n }\n // Convert 628xxx to +628xxx\n if (val.startsWith('62') && !val.startsWith('+')) {\n return '+' + val;\n }\n return val;\n };\n\n // Clean phone value: remove leading zero after country code\n const cleanPhoneValue = (val: string): string => {\n if (!val) return val;\n const match = val.match(/^(\\d{1,4})(0\\d+)$/);\n if (match) {\n return match[1] + match[2].substring(1);\n }\n return val;\n };\n\n const displayValue =\n emailOrPhoneType === 'phone' ? cleanPhoneValue(stringValue) : stringValue;\n\n return (\n <div className={styles.phoneContainer}>\n {emailOrPhoneType === 'phone' ? (\n <div\n ref={emailOrPhoneInputRef}\n className={`${styles.phoneInputWrapper} ${error ? styles.phoneInputError : ''}`}\n >\n <PhoneInput\n country={defaultCountry.toLowerCase()}\n value={stringValue.startsWith('+') ? stringValue.substring(1) : stringValue}\n onChange={(value: string, data: any) => {\n if (!value) {\n shouldFocusRef.current = true;\n field.onChange('');\n updateEmailOrPhoneType('');\n setLastEmailOrPhoneValue('');\n return;\n }\n\n const countryDialCode = data?.dialCode || '';\n\n if (value === countryDialCode) {\n const dialCodeChanged =\n lastEmailOrPhoneValue &&\n lastEmailOrPhoneValue !== countryDialCode &&\n !lastEmailOrPhoneValue.startsWith(countryDialCode);\n\n const isInitial = !lastEmailOrPhoneValue;\n const wasFullNumber = lastEmailOrPhoneValue && lastEmailOrPhoneValue.length > 3;\n\n if (isInitial || dialCodeChanged || wasFullNumber) {\n const phoneValue = '+' + value;\n field.onChange(phoneValue);\n updateEmailOrPhoneType(phoneValue);\n setLastEmailOrPhoneValue(value);\n return;\n } else {\n shouldFocusRef.current = true;\n field.onChange('');\n updateEmailOrPhoneType('');\n setLastEmailOrPhoneValue('');\n return;\n }\n }\n\n const phoneValue = '+' + value;\n field.onChange(phoneValue);\n updateEmailOrPhoneType(phoneValue);\n setLastEmailOrPhoneValue(value);\n }}\n placeholder={inputPlaceholder}\n disabled={disabled}\n enableSearch\n />\n </div>\n ) : (\n <Input\n ref={inputRef}\n value={stringValue}\n maxLength={maxLength}\n autoComplete={autoComplete || 'off'}\n onChange={(e: any) => {\n const newValue = e.target.value;\n const willSwitchType = emailOrPhoneType !== detectEmailOrPhoneStrict(newValue);\n\n if (willSwitchType) shouldFocusRef.current = true;\n\n // Auto-normalize phone numbers for Indonesian format\n let normalizedValue = newValue;\n const detectedType = detectEmailOrPhoneStrict(newValue);\n if (detectedType === 'phone') {\n normalizedValue = normalizePhoneNumber(newValue);\n }\n\n field.onChange(normalizedValue);\n updateEmailOrPhoneType(normalizedValue);\n }}\n placeholder={inputPlaceholder}\n disabled={disabled}\n appearance={appearance}\n size={size}\n type={inputType}\n style={{ width: '100%' }}\n />\n )}\n </div>\n );\n }\n\n // If this is an identity type, check and update mode\n if (type === 'identity') {\n // update type whenever value changes\n updateIdentityType(field.value);\n\n const stringValue = typeof field.value === 'string' ? field.value : '';\n\n // Determine input type and placeholder based on detected type\n let inputType: 'text' | 'email' | 'tel' | 'number' = 'text';\n let inputPlaceholder = placeholder || 'Email, KTP, SIM, Passport, atau Nomor Telepon';\n\n if (identityType === 'email') {\n inputType = 'email';\n inputPlaceholder = placeholder || 'Email';\n } else if (identityType === 'phone') {\n inputType = 'tel';\n inputPlaceholder = placeholder || 'Nomor telepon';\n } else if (identityType === 'id') {\n inputType = 'text';\n inputPlaceholder = placeholder || 'KTP, SIM, atau Passport';\n }\n\n // Clean phone value: remove leading zero after country code\n const cleanPhoneValue = (val: string): string => {\n if (!val) return val;\n // Ensure val is a string to prevent \"match is not a function\" error\n const stringVal = String(val);\n // Check if value starts with common country codes followed by 0\n // E.g., 6208... should become 628...\n const match = stringVal.match(/^(\\d{1,4})(0\\d+)$/);\n if (match) {\n return match[1] + match[2].substring(1);\n }\n return stringVal;\n };\n\n const displayValue = identityType === 'phone' ? cleanPhoneValue(stringValue) : stringValue;\n\n return (\n <div className={styles.phoneContainer}>\n {identityType === 'phone' ? (\n <div\n ref={phoneInputRef}\n className={`${styles.phoneInputWrapper} ${error ? styles.phoneInputError : ''}`}\n >\n <PhoneInput\n country={defaultCountry.toLowerCase()}\n value={stringValue.startsWith('+') ? stringValue.substring(1) : stringValue}\n onChange={(value: string, data: any) => {\n // If completely empty, switch back to id mode\n if (!value) {\n shouldFocusRef.current = true;\n field.onChange('');\n updateIdentityType('');\n setLastPhoneValue('');\n return;\n }\n\n // Get the country dial code\n const countryDialCode = data?.dialCode || '';\n\n // If value is just the country code\n if (value === countryDialCode) {\n // Check if dial code changed (user is changing country)\n const dialCodeChanged =\n lastPhoneValue &&\n lastPhoneValue !== countryDialCode &&\n !lastPhoneValue.startsWith(countryDialCode);\n\n // Check if this is initial state (user just typed +)\n const isInitial = !lastPhoneValue;\n\n // Check if user had a full number and now changing country\n const wasFullNumber = lastPhoneValue && lastPhoneValue.length > 3;\n\n if (isInitial || dialCodeChanged || wasFullNumber) {\n // Keep in phone mode\n const phoneValue = '+' + value;\n field.onChange(phoneValue);\n updateIdentityType(phoneValue);\n setLastPhoneValue(value);\n return;\n } else {\n // User is deleting digits back to dial code only - switch to ID\n shouldFocusRef.current = true; // Set focus flag before switching\n field.onChange('');\n updateIdentityType('');\n setLastPhoneValue('');\n return;\n }\n }\n\n // PhoneInput returns value without +, so we add it\n const phoneValue = '+' + value;\n\n field.onChange(phoneValue);\n updateIdentityType(phoneValue);\n setLastPhoneValue(value);\n }}\n placeholder={inputPlaceholder}\n disabled={disabled}\n enableSearch\n disableSearchIcon\n />\n </div>\n ) : (\n <Input\n ref={inputRef}\n value={stringValue}\n maxLength={maxLength}\n autoComplete={autoComplete || 'off'}\n onChange={(e: any) => {\n const newValue = e.target.value;\n const willSwitchType = identityType !== detectIdentityType(newValue);\n\n if (willSwitchType) shouldFocusRef.current = true;\n\n field.onChange(newValue);\n\n // Update type whenever input changes\n updateIdentityType(newValue);\n }}\n placeholder={inputPlaceholder}\n disabled={disabled}\n appearance={appearance}\n size={size}\n type={inputType}\n style={{ width: '100%' }}\n />\n )}\n </div>\n );\n }\n\n switch (type) {\n case 'textarea':\n return <Textarea {...commonProps} rows={rows} resize=\"vertical\" />;\n\n case 'select':\n return (\n <Select\n {...field}\n name={`${String(name)}_${Math.random().toString(36).substring(7)}`}\n isDisabled={disabled}\n placeholder={placeholder}\n options={options}\n styles={getSelectStyles(!!error)}\n className={styles.reactSelect}\n classNamePrefix=\"react-select\"\n isMulti={isMultiSelect}\n inputProps={{\n autoComplete: 'new-password',\n autoCorrect: 'off',\n autoCapitalize: 'off',\n spellCheck: 'false',\n }}\n value={\n isMultiSelect\n ? options.filter(option => field.value?.includes(option.value))\n : options.find(option => option.value === field.value) || null\n }\n onChange={(selectedOption: any) => {\n if (isMultiSelect) {\n const values = selectedOption\n ? selectedOption.map((opt: SelectOption) => opt.value)\n : [];\n field.onChange(values);\n } else {\n field.onChange(selectedOption ? selectedOption.value : '');\n }\n }}\n getOptionLabel={(option: SelectOption) => option.label}\n getOptionValue={(option: SelectOption) => option.value}\n isOptionDisabled={(option: SelectOption) => option.disabled || false}\n \n />\n );\n\n case 'phone': {\n // Clean phone value: remove leading zero after country code\n const cleanPhoneValue = (val: string): string => {\n if (!val) return val;\n // Ensure val is a string to prevent \"match is not a function\" error\n const stringVal = String(val);\n // Check if value starts with common country codes followed by 0\n const match = stringVal.match(/^(\\d{1,4})(0\\d+)$/);\n if (match) {\n return match[1] + match[2].substring(1);\n }\n return stringVal;\n };\n\n const cleanedFieldValue = cleanPhoneValue(field.value || '');\n\n return (\n <div className={`${styles.phoneInputWrapper} ${error ? styles.phoneInputError : ''}`}>\n <PhoneInput\n country={defaultCountry.toLowerCase()}\n value={cleanedFieldValue}\n onChange={(value: string, data: any) => {\n const cleanedValue = cleanPhoneValue(value || '');\n field.onChange(cleanedValue);\n }}\n placeholder={placeholder || 'Nomor telepon'}\n disabled={disabled}\n enableSearch\n disableSearchIcon\n />\n </div>\n );\n }\n\n \n case 'file':\n return (\n <input\n {...field}\n type=\"file\"\n multiple={multiple}\n accept={accept}\n disabled={disabled}\n className={styles.fileInput}\n value={undefined}\n onChange={e => {\n const files = e.target.files;\n field.onChange(multiple ? files : files?.[0]);\n }}\n />\n );\n\n case 'switch':\n return (\n <div className={styles.switchWrapper}>\n <Switch\n {...field}\n checked={field.value || false}\n disabled={disabled}\n onChange={(_, data) => field.onChange(data.checked)}\n />\n </div>\n );\n\n case 'date': {\n return (\n <DatePickerInput\n field={field}\n placeholder={placeholder}\n disabled={disabled}\n appearance={error ? 'outline' : appearance}\n size={size}\n onClick={onClick}\n style={inputStyle}\n max={max ? String(max) : undefined}\n />\n );\n }\n\n case 'radio':\n return (\n <RadioGroup {...field} disabled={disabled} layout={layout ?? 'vertical'}>\n {options.map(option => (\n <Radio\n key={option.value}\n value={option.value}\n label={option.label}\n disabled={option.disabled}\n />\n ))}\n </RadioGroup>\n );\n\n case 'radiobutton':\n return (\n <RadioGroup\n {...field}\n disabled={disabled}\n layout={layout ?? 'horizontal'}\n className={styles.classRadioGroup}\n >\n {options.map(option => (\n <Radio\n key={option.value}\n value={option.value}\n label={option.label}\n disabled={disabled || option.disabled}\n className={styles.classRadio}\n />\n ))}\n </RadioGroup>\n );\n\n case 'checkbox':\n return (\n <Checkbox\n {...field}\n checked={field.value || false}\n disabled={disabled}\n onChange={(_, data) => field.onChange(data.checked)}\n label={label}\n />\n );\n\n case 'number':\n return (\n <Input\n {...commonProps}\n type=\"number\"\n min={min}\n max={max}\n step={step}\n className={styles.inputWithAutocomplete}\n />\n );\n\n case 'time':\n case 'datetime-local':\n return (\n <Input\n {...commonProps}\n type={type}\n min={min}\n max={max}\n className={styles.inputWithAutocomplete}\n />\n );\n\n case 'password':\n return (\n <Input\n {...commonProps}\n type={showPassword ? 'text' : 'password'}\n className={styles.inputWithAutocomplete}\n contentAfter={\n <Button\n appearance=\"transparent\"\n icon={\n showPassword ? (\n <Icon icon=\"fluent:eye-off-24-filled\" />\n ) : (\n <Icon icon=\"fluent:eye-24-filled\" />\n )\n }\n aria-label={showPassword ? 'Hide password' : 'Show password'}\n onClick={() => setShowPassword(!showPassword)}\n tabIndex={-1}\n type=\"button\"\n />\n }\n />\n );\n\n case 'otp': {\n // OTP specific handling\n const setRefs = (el: any) => {\n try {\n if (field.ref) {\n if (typeof field.ref === 'function') field.ref(el);\n else (field.ref as MutableRefObject<any>).current = el;\n }\n } catch {\n /* ignore */\n }\n (inputRef as MutableRefObject<HTMLInputElement | null>).current = el;\n };\n\n const handleChange = (e: any) => {\n const val = e?.target?.value ?? '';\n const numericValue = val.replace(/\\D/g, '');\n\n // Update nilai input langsung\n if (inputRef.current) {\n inputRef.current.value = numericValue;\n }\n\n // Buat event baru dengan nilai numeric\n const numericEvent = {\n ...e,\n target: {\n ...e.target,\n value: numericValue,\n },\n };\n\n field.onChange(numericEvent);\n\n if (autoAdvance && otpIndex && maxLength && numericValue.length >= maxLength) {\n const next = document.querySelector<HTMLInputElement>(\n `[data-otp-index=\"${otpIndex + 1}\"]`,\n );\n if (next) next.focus();\n }\n };\n\n const handleKeyPress = (e: any) => {\n const char = e.key;\n if (\n !/^\\d$/.test(char) &&\n char !== 'Backspace' &&\n char !== 'Delete' &&\n char !== 'Tab' &&\n char !== 'ArrowLeft' &&\n char !== 'ArrowRight'\n ) {\n e.preventDefault();\n }\n };\n\n const handleKeyDown = (e: any) => {\n if (e.key === 'Backspace') {\n const curVal = field.value || '';\n if (!curVal && otpIndex !== null && otpIndex !== undefined) {\n const prevIndex = otpIndex - 1;\n if (prevIndex >= 1) {\n // Set flag before focusing to prevent handleFocus interference\n isBackspaceNavigationRef.current = true;\n const prev = document.querySelector<HTMLInputElement>(\n `[data-otp-index=\"${prevIndex}\"]`,\n );\n if (prev) {\n prev.focus();\n // Flag will be reset in handleFocus after navigation completes\n }\n }\n }\n }\n };\n\n const handleClick = (e: any) => {\n // Prevent clicking on previous inputs - redirect to correct position\n if (otpIndex) {\n // Find the last filled input\n let lastFilledIndex = 0;\n for (let i = 1; i <= 6; i++) {\n const input = document.querySelector<HTMLInputElement>(`[data-otp-index=\"${i}\"]`);\n if (input && input.value) {\n lastFilledIndex = i;\n } else {\n break;\n }\n }\n\n // Determine target index: if all filled, stay on last; otherwise go to first empty\n const targetIndex = lastFilledIndex === 6 ? 6 : lastFilledIndex + 1;\n\n // If user clicks on any input before the target, redirect to target\n if (otpIndex < targetIndex) {\n e.preventDefault();\n const targetInput = document.querySelector<HTMLInputElement>(\n `[data-otp-index=\"${targetIndex}\"]`,\n );\n if (targetInput) {\n targetInput.focus();\n const length = targetInput.value?.length || 0;\n setTimeout(() => {\n targetInput.setSelectionRange(length, length);\n }, 0);\n }\n return;\n }\n }\n\n // If click on current input, ensure cursor is at the end\n if (inputRef.current) {\n const length = inputRef.current.value?.length || 0;\n setTimeout(() => {\n inputRef.current?.setSelectionRange(length, length);\n }, 0);\n }\n };\n\n const handleMouseDown = (e: any) => {\n // Track that user is clicking (not using keyboard navigation)\n isBackspaceNavigationRef.current = false;\n\n // Cegah seleksi teks dengan mouse\n if (field.value) {\n e.preventDefault();\n if (inputRef.current) {\n inputRef.current.focus();\n const length = inputRef.current.value.length;\n inputRef.current.setSelectionRange(length, length);\n }\n }\n };\n\n const handleSelect = (e: any) => {\n // Paksa kursor tetap di akhir\n if (inputRef.current && field.value) {\n const length = inputRef.current.value.length;\n inputRef.current.setSelectionRange(length, length);\n }\n };\n\n const handleFocus = (e: any) => {};\n\n const inputAttrs: any = {};\n if (otpIndex) inputAttrs['data-otp-index'] = otpIndex;\n\n // Default OTP styles\n const otpStyles = {\n height: '57px',\n borderRadius: tokens.borderRadiusXLarge,\n textAlign: 'center' as const,\n ...typographyStyles.title2,\n fontWeight: fontWeight.Medium,\n lineHeight: tokens.lineHeightHero800,\n borderColor: hasError ? sharedColors.Shared_Cranberry_Primary : undefined,\n ...style, // Allow override from props\n };\n\n return (\n <Input\n {...commonProps}\n type=\"tel\"\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onKeyPress={handleKeyPress}\n onClick={handleClick}\n onMouseDown={handleMouseDown}\n onSelect={handleSelect}\n onFocus={handleFocus}\n ref={setRefs}\n style={otpStyles}\n className={styles.otpInput}\n {...inputAttrs}\n />\n );\n }\n\n default:\n return (\n <Input\n {...commonProps}\n type={type}\n onInput={onInput}\n className={styles.inputWithAutocomplete}\n />\n );\n }\n };\n\n const getValidationRules = () => {\n const rules: any = {};\n\n if (required) {\n rules.required = validationRules?.required || 'Field ini wajib diisi';\n }\n\n if (validationRules?.minLength) {\n rules.minLength = validationRules.minLength;\n }\n\n if (validationRules?.maxLength) {\n rules.maxLength = validationRules.maxLength;\n }\n\n if (validationRules?.pattern) {\n rules.pattern = validationRules.pattern;\n }\n\n if (validationRules?.min) {\n rules.min = validationRules.min;\n }\n\n if (validationRules?.max) {\n rules.max = validationRules.max;\n }\n\n if (validationRules?.validate) {\n rules.validate = validationRules.validate;\n }\n\n // Add default email validation\n if (type === 'email') {\n rules.pattern = {\n value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i,\n message: 'Email tidak valid',\n };\n }\n\n // Add validation for emailOrPhone type - khusus email atau nomor HP\n if (type === 'emailOrPhone') {\n rules.validate = (value: any) => {\n if (required && !value) {\n return 'Email atau nomor HP wajib diisi';\n }\n\n const stringValue = typeof value === 'string' ? value : '';\n\n if (!stringValue) return true;\n\n const detectedType = detectEmailOrPhoneStrict(stringValue);\n\n if (detectedType === 'email') {\n // Validate email format\n if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i.test(stringValue)) {\n return 'Format email tidak valid';\n }\n } else if (detectedType === 'phone') {\n // Validate phone number (must start with + and contain only digits after)\n if (!stringValue.startsWith('+')) {\n return 'Nomor HP harus dalam format internasional (contoh: +628123456789)';\n }\n const phoneDigits = stringValue.substring(1);\n if (!/^\\d+$/.test(phoneDigits)) {\n return 'Nomor HP hanya boleh berisi angka setelah +';\n }\n if (phoneDigits.length < 10) {\n return 'Nomor HP minimal 10 digit';\n }\n } else {\n return 'Masukkan email atau nomor HP yang valid';\n }\n\n return true;\n };\n }\n\n // Add validation for identity type (can be email, phone, or other ID)\n if (type === 'identity') {\n rules.validate = (value: any) => {\n if (required && !value) {\n return 'Field ini wajib diisi';\n }\n\n const stringValue = typeof value === 'string' ? value : value?.phoneNumber || '';\n\n if (!stringValue) return true;\n\n const detectedType = detectIdentityType(stringValue);\n\n // Validate based on detected type\n if (detectedType === 'email') {\n // Validate email format\n if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i.test(stringValue)) {\n return 'Format email tidak valid';\n }\n } else if (detectedType === 'phone') {\n // Validate phone number (must start with + and contain only digits after)\n if (!stringValue.startsWith('+')) {\n return 'Nomor telepon harus diawali dengan +';\n }\n const phoneDigits = stringValue.substring(1); // Remove + prefix\n if (!/^\\d+$/.test(phoneDigits)) {\n return 'Nomor telepon hanya boleh berisi angka setelah +';\n }\n }\n // else if (detectedType === 'id') {\n // // Validate ID (only digits for KTP/SIM/Passport numbers)\n // if (!/^\\d+$/.test(stringValue)) {\n // return 'Nomor identitas hanya boleh berisi angka';\n // }\n // }\n\n return true;\n };\n }\n\n // Add default phone validation\n if (type === 'phone') {\n rules.validate = (value: string) => {\n if (required && !value) {\n return 'Nomor telepon wajib diisi';\n }\n // react-phone-number-input already handles validation\n return true;\n };\n }\n\n \n\n return rules;\n };\n\n return (\n <Controller\n name={name}\n control={control}\n rules={getValidationRules()}\n render={({ field, fieldState: { error } }) => (\n <Field\n className={`${styles.field} ${className || ''}`}\n validationMessage={error?.message}\n validationState={error ? 'error' : 'none'}\n >\n {label && type !== 'checkbox' && <Label required={required}>{label}</Label>}\n\n {renderInput(field, error?.message)}\n\n {helperText && !error && (\n <Text size={200} style={{ textAlign: 'left' }} className={styles.helperText}>\n {helperText}\n </Text>\n )}\n </Field>\n )}\n />\n );\n}\n\nexport default InputDynamic;\n\n","import { CountryCode } from './types';\n\n// Default country codes\nexport const DEFAULT_COUNTRY_CODES: CountryCode[] = [\n { code: 'AF', name: 'Afghanistan', dialCode: '+93', passportRegex: '^[A-Z][0-9]{7}$' },\n { code: 'AL', name: 'Albania', dialCode: '+355', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'DZ', name: 'Algeria', dialCode: '+213', passportRegex: '^[0-9]{9}$' },\n { code: 'AS', name: 'American Samoa', dialCode: '+1', passportRegex: '^[0-9]{9}$' },\n { code: 'AD', name: 'Andorra', dialCode: '+376', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'AO', name: 'Angola', dialCode: '+244', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'AI', name: 'Anguilla', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'AQ', name: 'Antarctica', dialCode: '+672', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'AG', name: 'Antigua and Barbuda', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'AR', name: 'Argentina', dialCode: '+54', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\n { code: 'AM', name: 'Armenia', dialCode: '+374', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'AW', name: 'Aruba', dialCode: '+297', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'AU', name: 'Australia', dialCode: '+61', passportRegex: '^[A-Z][0-9]{7}$' },\n { code: 'AT', name: 'Austria', dialCode: '+43', passportRegex: '^[A-Z0-9]{8}$' },\n { code: 'AZ', name: 'Azerbaijan', dialCode: '+994', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'BS', name: 'Bahamas', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BH', name: 'Bahrain', dialCode: '+973', passportRegex: '^[A-Z][0-9]{7}$' },\n { code: 'BD', name: 'Bangladesh', dialCode: '+880', passportRegex: '^[A-Z][0-9]{7}$' },\n { code: 'BB', name: 'Barbados', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BY', name: 'Belarus', dialCode: '+375', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BE', name: 'Belgium', dialCode: '+32', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BZ', name: 'Belize', dialCode: '+501', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BJ', name: 'Benin', dialCode: '+229', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'BM', name: 'Bermuda', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'BT', name: 'Bhutan', dialCode: '+975', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BO', name: 'Bolivia', dialCode: '+591', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n {\n code: 'BA',\n name: 'Bosnia and Herzegovina',\n dialCode: '+387',\n passportRegex: '^[A-Z]{2}[0-9]{6}$',\n },\n { code: 'BW', name: 'Botswana', dialCode: '+267', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BR', name: 'Brazil', dialCode: '+55', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'BN', name: 'Brunei', dialCode: '+673', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BG', name: 'Bulgaria', dialCode: '+359', passportRegex: '^[0-9]{9}$' },\n { code: 'BF', name: 'Burkina Faso', dialCode: '+226', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'BI', name: 'Burundi', dialCode: '+257', passportRegex: '^[A-Z0-9]{6,10}$' },\n\n { code: 'KH', name: 'Cambodia', dialCode: '+855', passportRegex: '^[A-Z][0-9]{7}$' },\n { code: 'CM', name: 'Cameroon', dialCode: '+237', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'CA', name: 'Canada', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'CV', name: 'Cape Verde', dialCode: '+238', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'KY', name: 'Cayman Islands', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\n {\n code: 'CF',\n name: 'Central African Republic',\n dialCode: '+236',\n passportRegex: '^[A-Z0-9]{6,10}$',\n },\n { code: 'TD', name: 'Chad', dialCode: '+235', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'CL', name: 'Chile', dialCode: '+56', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'CN', name: 'China', dialCode: '+86', passportRegex: '^[0-9]{9}$' },\n { code: 'CO', name: 'Colombia', dialCode: '+57', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\n { code: 'KM', name: 'Comoros', dialCode: '+269', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'CG', name: 'Congo', dialCode: '+242', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'CR', name: 'Costa Rica', dialCode: '+506', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'HR', name: 'Croatia', dialCode: '+385', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\n { code: 'CU', name: 'Cuba', dialCode: '+53', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'CY', name: 'Cyprus', dialCode: '+357', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'CZ', name: 'Czech Republic', dialCode: '+420', passportRegex: '^[0-9]{8}$' },\n\n { code: 'DK', name: 'Denmark', dialCode: '+45', passportRegex: '^[A-Z0-9]{9}$' },\n { code: 'DJ', name: 'Djibouti', dialCode: '+253', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'DM', name: 'Dominica', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'DO', name: 'Dominican Republic', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\n\n { code: 'EC', name: 'Ecuador', dialCode: '+593', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'EG', name: 'Egypt', dialCode: '+20', passportRegex: '^[A-Z][0-9]{7}$' },\n { code: 'SV', name: 'El Salvador', dialCode: '+503', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'GQ', name: 'Equatorial Guinea', dialCode: '+240', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'ER', name: 'Eritrea', dialCode: '+291', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'EE', name: 'Estonia', dialCode: '+372', passportRegex: '^[A-Z0-9]{8}$' },\n { code: 'SZ', name: 'Eswatini', dialCode: '+268', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'ET', name: 'Ethiopia', dialCode: '+251', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n\n { code: 'FJ', name: 'Fiji', dialCode: '+679', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'FI', name: 'Finland', dialCode: '+358', passportRegex: '^[A-Z0-9]{9}$' },\n { code: 'FR', name: 'France', dialCode: '+33', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'GA', name: 'Gabon', dialCode: '+241', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'GM', name: 'Gambia', dialCode: '+220', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'GE', name: 'Georgia', dialCode: '+995', passportRegex: '^[A-Z0-9]{8}$' },\n { code: 'DE', name: 'Germany', dialCode: '+49', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'GH', name: 'Ghana', dialCode: '+233', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'GR', name: 'Greece', dialCode: '+30', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'GD', name: 'Grenada', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'GT', name: 'Guatemala', dialCode: '+502', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\n { code: 'GN', name: 'Guinea', dialCode: '+224', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'GW', name: 'Guinea-Bissau', dialCode: '+245', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'GY', name: 'Guyana', dialCode: '+592', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'HT', name: 'Haiti', dialCode: '+509', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'HN', name: 'Honduras', dialCode: '+504', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'HK', name: 'Hong Kong', dialCode: '+852', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'HU', name: 'Hungary', dialCode: '+36', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n\n { code: 'IS', name: 'Iceland', dialCode: '+354', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'IN', name: 'India', dialCode: '+91', passportRegex: '^[A-Z][0-9]{7}$' },\n { code: 'ID', name: 'Indonesia', dialCode: '+62', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'IR', name: 'Iran', dialCode: '+98', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'IQ', name: 'Iraq', dialCode: '+964', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'IE', name: 'Ireland', dialCode: '+353', passportRegex: '^[A-Z0-9]{2}[0-9]{7}$' },\n { code: 'IL', name: 'Israel', dialCode: '+972', passportRegex: '^[0-9]{8,9}$' },\n { code: 'IT', name: 'Italy', dialCode: '+39', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'JM', name: 'Jamaica', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'JP', name: 'Japan', dialCode: '+81', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'JO', name: 'Jordan', dialCode: '+962', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'KZ', name: 'Kazakhstan', dialCode: '+7', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'KE', name: 'Kenya', dialCode: '+254', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'KI', name: 'Kiribati', dialCode: '+686', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'KP', name: 'North Korea', dialCode: '+850', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'KR', name: 'South Korea', dialCode: '+82', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\n { code: 'KW', name: 'Kuwait', dialCode: '+965', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'KG', name: 'Kyrgyzstan', dialCode: '+996', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'LA', name: 'Laos', dialCode: '+856', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'LV', name: 'Latvia', dialCode: '+371', passportRegex: '^[A-Z0-9]{8}$' },\n { code: 'LB', name: 'Lebanon', dialCode: '+961', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'LS', name: 'Lesotho', dialCode: '+266', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'LR', name: 'Liberia', dialCode: '+231', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'LY', name: 'Libya', dialCode: '+218', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'LI', name: 'Liechtenstein', dialCode: '+423', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'LT', name: 'Lithuania', dialCode: '+370', passportRegex: '^[A-Z0-9]{8}$' },\n { code: 'LU', name: 'Luxembourg', dialCode: '+352', passportRegex: '^[A-Z0-9]{8}$' },\n\n { code: 'MO', name: 'Macau', dialCode: '+853', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'MG', name: 'Madagascar', dialCode: '+261', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'MW', name: 'Malawi', dialCode: '+265', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'MY', name: 'Malaysia', dialCode: '+60', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\n { code: 'MV', name: 'Maldives', dialCode: '+960', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'ML', name: 'Mali', dialCode: '+223', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'MT', name: 'Malta', dialCode: '+356', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'MH', name: 'Marshall Islands', dialCode: '+692', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'MQ', name: 'Martinique', dialCode: '+596', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'MR', name: 'Mauritania', dialCode: '+222', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'MU', name: 'Mauritius', dialCode: '+230', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'MX', name: 'Mexico', dialCode: '+52', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\n { code: 'FM', name: 'Micronesia', dialCode: '+691', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'MD', name: 'Moldova', dialCode: '+373', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'MC', name: 'Monaco', dialCode: '+377', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'MN', name: 'Mongolia', dialCode: '+976', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'ME', name: 'Montenegro', dialCode: '+382', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'MS', name: 'Montserrat', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'MA', name: 'Morocco', dialCode: '+212', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'MZ', name: 'Mozambique', dialCode: '+258', passportRegex: '^[A-Z0-9]{6,10}$' },\n\n { code: 'MM', name: 'Myanmar', dialCode: '+95', passportRegex: '^[A-Z]{1}[0-9]{6,7}$' },\n\n { code: 'NA', name: 'Namibia', dialCode: '+264', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'NR', name: 'Nauru', dialCode: '+674', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'NP', name: 'Nepal', dialCode: '+977', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'NL', name: 'Netherlands', dialCode: '+31', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'NC', name: 'New Caledonia', dialCode: '+687', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'NZ', name: 'New Zealand', dialCode: '+64', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'NI', name: 'Nicaragua', dialCode: '+505', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\n { code: 'NE', name: 'Niger', dialCode: '+227', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'NG', name: 'Nigeria', dialCode: '+234', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'NO', name: 'Norway', dialCode: '+47', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'OM', name: 'Oman', dialCode: '+968', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n\n { code: 'PK', name: 'Pakistan', dialCode: '+92', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'PW', name: 'Palau', dialCode: '+680', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'PS', name: 'Palestine', dialCode: '+970', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'PA', name: 'Panama', dialCode: '+507', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'PG', name: 'Papua New Guinea', dialCode: '+675', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'PY', name: 'Paraguay', dialCode: '+595', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'PE', name: 'Peru', dialCode: '+51', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'PH', name: 'Philippines', dialCode: '+63', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'PL', name: 'Poland', dialCode: '+48', passportRegex: '^[A-Z0-9]{2}[0-9]{7}$' },\n { code: 'PT', name: 'Portugal', dialCode: '+351', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n\n { code: 'RO', name: 'Romania', dialCode: '+40', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'RU', name: 'Russia', dialCode: '+7', passportRegex: '^[0-9]{9}$' },\n { code: 'RW', name: 'Rwanda', dialCode: '+250', passportRegex: '^[A-Z0-9]{6,10}$' },\n\n {\n code: 'KN',\n name: 'Saint Kitts and Nevis',\n dialCode: '+1',\n passportRegex: '^[A-Z]{2}[0-9]{7}$',\n },\n { code: 'LC', name: 'Saint Lucia', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n {\n code: 'VC',\n name: 'Saint Vincent and the Grenadines',\n dialCode: '+1',\n passportRegex: '^[A-Z]{2}[0-9]{7}$',\n },\n\n { code: 'WS', name: 'Samoa', dialCode: '+685', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'SM', name: 'San Marino', dialCode: '+378', passportRegex: '^[A-Z0-9]{6,10}$' },\n {\n code: 'ST',\n name: 'Sao Tome and Principe',\n dialCode: '+239',\n passportRegex: '^[A-Z0-9]{6,10}$',\n },\n\n { code: 'SA', name: 'Saudi Arabia', dialCode: '+966', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'SN', name: 'Senegal', dialCode: '+221', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'RS', name: 'Serbia', dialCode: '+381', passportRegex: '^[A-Z0-9]{9}$' },\n { code: 'SC', name: 'Seychelles', dialCode: '+248', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'SL', name: 'Sierra Leone', dialCode: '+232', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'SG', name: 'Singapore', dialCode: '+65', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'SK', name: 'Slovakia', dialCode: '+421', passportRegex: '^[0-9]{9}$' },\n { code: 'SI', name: 'Slovenia', dialCode: '+386', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'SB', name: 'Solomon Islands', dialCode: '+677', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'SO', name: 'Somalia', dialCode: '+252', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'ZA', name: 'South Africa', dialCode: '+27', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'ES', name: 'Spain', dialCode: '+34', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\n { code: 'LK', name: 'Sri Lanka', dialCode: '+94', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'SD', name: 'Sudan', dialCode: '+249', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'SR', name: 'Suriname', dialCode: '+597', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'SE', name: 'Sweden', dialCode: '+46', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'CH', name: 'Switzerland', dialCode: '+41', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'SY', name: 'Syria', dialCode: '+963', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n\n { code: 'TW', name: 'Taiwan', dialCode: '+886', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\n { code: 'TJ', name: 'Tajikistan', dialCode: '+992', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'TZ', name: 'Tanzania', dialCode: '+255', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'TH', name: 'Thailand', dialCode: '+66', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'TL', name: 'Timor-Leste', dialCode: '+670', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'TG', name: 'Togo', dialCode: '+228', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'TO', name: 'Tonga', dialCode: '+676', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'TT', name: 'Trinidad and Tobago', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'TN', name: 'Tunisia', dialCode: '+216', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'TR', name: 'Turkey', dialCode: '+90', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'TM', name: 'Turkmenistan', dialCode: '+993', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n {\n code: 'TC',\n name: 'Turks and Caicos Islands',\n dialCode: '+1',\n passportRegex: '^[A-Z0-9]{6,10}$',\n },\n { code: 'TV', name: 'Tuvalu', dialCode: '+688', passportRegex: '^[A-Z0-9]{6,10}$' },\n\n { code: 'UG', name: 'Uganda', dialCode: '+256', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'UA', name: 'Ukraine', dialCode: '+380', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n {\n code: 'AE',\n name: 'United Arab Emirates',\n dialCode: '+971',\n passportRegex: '^[A-Z]{1}[0-9]{7}$',\n },\n { code: 'GB', name: 'United Kingdom', dialCode: '+44', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'US', name: 'United States', dialCode: '+1', passportRegex: '^[0-9]{9}$' },\n { code: 'UY', name: 'Uruguay', dialCode: '+598', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\n { code: 'UZ', name: 'Uzbekistan', dialCode: '+998', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'VU', name: 'Vanuatu', dialCode: '+678', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'VA', name: 'Vatican City', dialCode: '+379', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'VE', name: 'Venezuela', dialCode: '+58', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'VN', name: 'Vietnam', dialCode: '+84', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n\n { code: 'YE', name: 'Yemen', dialCode: '+967', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n\n { code: 'ZM', name: 'Zambia', dialCode: '+260', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'ZW', name: 'Zimbabwe', dialCode: '+263', passportRegex: '^[A-Z0-9]{6,10}$' },\n];\n","import { Language } from '../../types/globalTypes';\nimport { CardTicketSearchLabels } from './CardTicketSearch.types';\n\nexport const DEFAULT_LABELS: Record<Language, CardTicketSearchLabels> = {\n id: {\n fromLabel: 'Dari',\n toLabel: 'Ke',\n departureDateLabel: 'Tanggal Berangkat',\n returnDateLabel: 'Tanggal Pulang',\n serviceClassLabel: 'Kelas Layanan',\n typeOfServiceLabel: 'Jenis Layanan',\n passengerLabel: 'Penumpang',\n roundTripLabel: 'Pulang Pergi',\n searchButton: 'Cari Tiket',\n placeholderPort: 'Pilih Pelabuhan Asal',\n placeholderDestinationPort: 'Pilih Pelabuhan Tujuan',\n placeholderDepartureDate: 'Pilih Tanggal Keberangkatan',\n placeholderReturnDate: 'Pilih Tanggal Kepulangan',\n placeholderTypeClass: 'Pilih Kelas Layanan',\n placeholderTypeService: 'Pilih Jenis Layanan',\n placeholderPassenger: 'Pilih Jumlah Penumpang',\n },\n en: {\n fromLabel: 'From',\n toLabel: 'To',\n departureDateLabel: 'Departure Date',\n returnDateLabel: 'Return Date',\n serviceClassLabel: 'Service Class',\n typeOfServiceLabel: 'Service Type',\n passengerLabel: 'Passenger',\n roundTripLabel: 'Round Trip',\n searchButton: 'Search Ticket',\n placeholderPort: 'Select Origin Port',\n placeholderDestinationPort: 'Select Destination Port',\n placeholderDepartureDate: 'Select Departure Date',\n placeholderReturnDate: 'Select Return Date',\n placeholderTypeClass: 'Select Service Class',\n placeholderTypeService: 'Select Service Type',\n placeholderPassenger: 'Select Number of Passengers',\n },\n};\n\nexport const DEFAULT_MENU_ITEMS = [\n {\n id: 'ferry',\n label: 'Ferry',\n logo: '/assets/images/icons/ferry.svg',\n description: 'ASDP Ferry Crossing Service',\n },\n {\n id: 'ifcs',\n label: 'IFCS',\n logo: '/assets/logo/asdp-default.svg',\n description: 'Integrated Ferry Control System',\n },\n {\n id: 'skpt',\n label: 'SKPT',\n logo: '/assets/logo/asdp-default.svg',\n description: 'Integrated Passenger Ticketing System',\n },\n {\n id: 'hotel',\n label: 'Hotel',\n logo: '/assets/images/icons/hotel.svg',\n description: 'Hotel Booking Service',\n },\n {\n id: 'other',\n label: 'Other',\n logo: '/assets/images/icons/other.svg',\n description: 'Other Services',\n },\n];\n","import React from 'react';\nimport { Button, Divider, makeStyles, tokens } from '@fluentui/react-components';\nimport { Icon } from '@iconify/react/dist/iconify.js';\nimport { Col, Row, Visible } from 'react-grid-system';\nimport { useForm, useWatch } from 'react-hook-form';\n\nimport { BackgroundTicketCard, BackgroundTicketCardVertical } from '../BackgroundTicketCard';\nimport { CardServiceMenu, ServiceId } from '../CardServiceMenu';\nimport { InputDynamic } from '../InputDynamic';\n\nimport {\n CardTicketSearchFormData,\n CardTicketSearchProps,\n} from './CardTicketSearch.types';\nimport { DEFAULT_LABELS } from './CardTicketSearch.constants';\nimport { extendedTokens } from '../../constants';\nimport { Language } from '../../types/globalTypes';\n\n\nconst useStyles = makeStyles({\n card: {\n position: 'relative',\n width: '100%',\n padding: 0,\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n padding: '0',\n },\n [`@media (min-width: ${extendedTokens.breakpointMd})`]: {\n scale: '1',\n },\n marginTop: '5rem',\n },\n svgBackground: {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n zIndex: 0,\n },\n formField: {\n padding: '16px',\n display: 'flex',\n flexDirection: 'column',\n gap: '8px',\n borderRadius: tokens.borderRadiusXLarge,\n border: '1px solid ' + tokens.colorNeutralStroke1,\n height: '100%',\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n padding: '20px',\n borderRadius: tokens.borderRadiusXLarge,\n },\n },\n deviderButton: {\n display: 'flex',\n justifyContent: 'center',\n position: 'absolute',\n left: '18px',\n bottom: '-16px',\n width: '90%',\n },\n buttonSwitch: {\n background: tokens.colorNeutralBackground1,\n boxShadow: `0 1px 2px 0 ${tokens.colorNeutralShadowKey}, 0 0 2px 0 ${tokens.colorNeutralShadowAmbient}`,\n },\n switchIcon: {\n display: 'inline-flex',\n transition: 'transform 0.3s ease',\n },\n switchIconRotate: {\n transform: 'rotate(180deg)',\n },\n searchButton: {\n width: '100%',\n borderRadius: tokens.borderRadiusCircular,\n },\n serviceMenuCard: {\n [`@media (min-width: ${extendedTokens.breakpointMd})`]: {\n margin: tokens.spacingVerticalM,\n },\n [`@media (min-width: ${extendedTokens.breakpointLg})`]: {\n margin: tokens.spacingVerticalL,\n },\n [`@media (min-width: ${extendedTokens.breakpointXl})`]: {\n margin: tokens.spacingVerticalXXXL,\n maxWidth: '70%',\n },\n },\n ticketSearchRow: {\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n padding: '20px !important',\n },\n },\n formContainerCol: {\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n paddingLeft: '20px !important',\n paddingRight: '20px !important',\n marginBottom: '1rem',\n marginTop: '8rem',\n },\n },\n serviceCol: {\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n paddingLeft: '15px !important',\n paddingRight: '15px !important',\n marginTop: '16px',\n },\n },\n formInnerRow: {\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n margin: '0 !important',\n },\n },\n formFieldRow: {\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n gap: '12px !important',\n },\n },\n});\n\nexport const CardTicketSearch: React.FC<CardTicketSearchProps> = ({\n language = 'id',\n from = '',\n to = '',\n startDate = '',\n endDate = '',\n roundTrip = false,\n serviceClass = '',\n typeOfService = '',\n passenger = '',\n toDisabled = false,\n endDateDisabled = false,\n serviceClassDisabled = false,\n typeOfServiceDisabled = false,\n switchDisabled = false,\n roundTripDisabled = false,\n submitDisabled = false,\n onFromClick,\n onToClick,\n onFromChange,\n onStartDateClick,\n onEndDateClick,\n onServiceClassClick,\n onTypeOfServiceClick,\n onPassengerClick,\n onSwitchClick,\n onRoundTripChange,\n onSubmit,\n activeServiceId = 'ferry',\n labels: customLabels,\n className,\n isRotating = false,\n showPassengerField = false,\n showRoundTrip = true,\n}) => {\n const styles = useStyles();\n \n // Merge default labels with custom labels\n const labels = React.useMemo(\n () => ({ ...DEFAULT_LABELS[language as Language], ...customLabels }),\n [language, customLabels]\n );\n const { control, setValue, getValues, handleSubmit } = useForm<CardTicketSearchFormData>({\n defaultValues: {\n from,\n to,\n startDate,\n roundTrip,\n endDate,\n serviceClass,\n typeOfService,\n passenger,\n },\n });\n\n const roundTripValue = useWatch({\n control,\n name: 'roundTrip',\n defaultValue: roundTrip,\n });\n\n // Update form values when props change\n React.useEffect(() => {\n setValue('from', from);\n setValue('to', to);\n setValue('startDate', startDate);\n setValue('endDate', endDate);\n setValue('roundTrip', roundTrip);\n setValue('serviceClass', serviceClass);\n setValue('typeOfService', typeOfService);\n setValue('passenger', passenger);\n }, [from, to, startDate, endDate, roundTrip, serviceClass, typeOfService, passenger, setValue]);\n\n // Handle round trip change\n React.useEffect(() => {\n if (onRoundTripChange) {\n onRoundTripChange(roundTripValue);\n }\n }, [roundTripValue, onRoundTripChange]);\n\n const handleFormSubmit = (data: CardTicketSearchFormData) => {\n if (onSubmit) {\n onSubmit(data);\n }\n };\n\n const handleFromChange = () => {\n setValue('to', '');\n if (onFromChange) {\n onFromChange();\n }\n };\n\n return (\n <div className={`${styles.card} ${className || ''}`}>\n <Visible xl xxl xxxl>\n <BackgroundTicketCard className={styles.svgBackground} />\n </Visible>\n <Visible xs sm md lg>\n <BackgroundTicketCardVertical className={styles.svgBackground} />\n </Visible>\n <Row\n style={{\n paddingTop: '1rem',\n paddingBottom: '2rem',\n }}\n className={styles.ticketSearchRow}\n >\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={3}\n xxl={3}\n xxxl={3}\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n marginBottom: '0px',\n }}\n >\n <CardServiceMenu\n className={styles.serviceMenuCard}\n activeServiceId={activeServiceId}\n language={language as Language}\n />\n </Col>\n <Col xs={12} sm={12} md={12} lg={12} xl={0.4} xxl={0.4} xxxl={0.4} />\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={8.6}\n xxl={8.6}\n xxxl={8.6}\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'column',\n }}\n className={styles.formContainerCol}\n >\n <form onSubmit={handleSubmit(handleFormSubmit)}>\n <Row style={{ width: '100%' }} className={styles.formInnerRow}>\n <Col xs={12} sm={12} lg={12} xl={6} xxl={6} xxxl={6}>\n <Row style={{ gap: '16px' }} className={styles.formFieldRow}>\n <Col xs={12} sm={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <div className={styles.formField}>\n <Row>\n <Col xs={12} sm={12} md={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <InputDynamic\n name=\"from\"\n label={labels.fromLabel}\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:vehicle-ship-16-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder={labels.placeholderPort}\n onClick={onFromClick}\n onChange={handleFromChange}\n validationRules={{\n required: 'Pelabuhan asal wajib diisi',\n }}\n required\n />\n <div className={styles.deviderButton}>\n <Divider />{' '}\n <Button\n onClick={onSwitchClick}\n className={styles.buttonSwitch}\n shape=\"circular\"\n appearance=\"secondary\"\n size=\"large\"\n disabled={switchDisabled}\n icon={\n <div\n className={`${styles.switchIcon} ${isRotating ? styles.switchIconRotate : ''}`}\n >\n <img\n src=\"/assets/images/icons/switch.svg\"\n alt=\"Switch\"\n width={26}\n height={26}\n />\n </div>\n }\n />\n </div>\n </Col>\n <Col xs={12} sm={12} md={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <InputDynamic\n name=\"to\"\n label={labels.toLabel}\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:location-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n disabled={toDisabled}\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder={labels.placeholderDestinationPort}\n onClick={onToClick}\n validationRules={{\n required: 'Pelabuhan tujuan wajib diisi',\n }}\n required\n />\n </Col>\n </Row>\n </div>\n </Col>\n <Col xs={12} sm={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <div className={styles.formField}>\n <Row style={{ height: '100%' }}>\n <Col xs={7} sm={7} md={7} lg={7} xl={7} xxl={7} xxxl={7}>\n <div style={{ position: 'relative', zIndex: 2 }}>\n <InputDynamic\n name=\"startDate\"\n label={labels.departureDateLabel}\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:calendar-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder={labels.placeholderDepartureDate}\n onClick={onStartDateClick}\n required\n validationRules={{\n required: 'Tanggal Berangkat wajib diisi',\n }}\n />\n </div>\n </Col>\n {showRoundTrip && <Col\n xs={5}\n sm={5}\n md={5}\n lg={5}\n xl={5}\n xxl={5}\n xxxl={5}\n style={{ display: 'flex', justifyContent: 'end' }}\n >\n <InputDynamic\n name=\"roundTrip\"\n label={labels.roundTripLabel}\n control={control}\n type=\"switch\"\n disabled={roundTripDisabled}\n size=\"medium\"\n />\n </Col>}\n \n {roundTripValue && (\n <Col xs={12} sm={12} md={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <InputDynamic\n name=\"endDate\"\n label={labels.returnDateLabel}\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:calendar-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder={labels.placeholderReturnDate}\n onClick={onEndDateClick}\n disabled={endDateDisabled}\n style={{ borderColor: 'transparent' }}\n required={roundTripValue}\n validationRules={{\n required: 'Tanggal Pulang wajib diisi',\n }}\n />\n </Col>\n )}\n </Row>\n </div>\n </Col>\n </Row>\n </Col>\n <Visible xl xxl xxxl>\n <Col\n xs={12}\n sm={12}\n lg={12}\n xl={1}\n xxl={1}\n xxxl={1}\n style={{ display: 'flex', alignItems: 'center', justifyContent: 'center' }}\n >\n <Divider vertical style={{ height: '100%' }} />\n </Col>\n </Visible>\n <Col\n xs={12}\n sm={12}\n lg={12}\n xl={5}\n xxl={5}\n xxxl={5}\n style={{\n paddingRight: '2rem',\n paddingLeft: '8px',\n }}\n className={styles.serviceCol}\n >\n <Row style={{ height: '100%', gap: '16px' }}>\n <Col xs={12} sm={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <div className={styles.formField}>\n <Row style={{ height: '100%', gap: '16px' }}>\n <Col xs={12} sm={12} md={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <InputDynamic\n name=\"serviceClass\"\n label={labels.serviceClassLabel}\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:ribbon-star-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder={labels.placeholderTypeClass}\n onClick={onServiceClassClick}\n required\n disabled={serviceClassDisabled}\n />\n </Col>\n <Col xs={12} sm={12} md={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <InputDynamic\n name=\"typeOfService\"\n label={labels.typeOfServiceLabel}\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:apps-list-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder={labels.placeholderTypeService}\n onClick={onTypeOfServiceClick}\n required\n disabled={typeOfServiceDisabled}\n />\n </Col>\n {showPassengerField && (\n <Col xs={12} sm={12} md={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <InputDynamic\n required\n name=\"passenger\"\n label={labels.passengerLabel}\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:people-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder={labels.placeholderPassenger}\n onClick={onPassengerClick}\n />\n </Col>\n )}\n </Row>\n </div>\n </Col>\n <Col xs={12} sm={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <Button\n className={styles.searchButton}\n appearance=\"primary\"\n size=\"large\"\n type=\"submit\"\n icon={<Icon icon=\"fluent:vehicle-ship-20-filled\" />}\n disabled={submitDisabled}\n >\n {labels.searchButton}\n </Button>\n </Col>\n </Row>\n </Col>\n </Row>\n </form>\n </Col>\n </Row>\n </div>\n );\n};\n\nexport default CardTicketSearch;\n","export const DEFAULT_LABELS = {\n originHarbor: 'Pelabuhan Keberangkatan',\n destinationHarbor: 'Pelabuhan Tujuan',\n departureDate: 'Tanggal Keberangkatan',\n serviceClass: 'Kelas Layanan',\n typeOfService: 'Jenis Layanan',\n totalPassengers: 'Jumlah Penumpang',\n changeSearchButton: 'Ganti Pencarian',\n};\n","import React from 'react';\nimport {\n Button,\n Card,\n Field,\n Input,\n Label,\n makeStyles,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport { Row, Col, Visible } from 'react-grid-system';\nimport { CardTicketSearchSummaryProps } from './CardTicketSearchSummary.types';\nimport { DEFAULT_LABELS } from './CardTicketSearchSummary.constants';\nimport { extendedTokens } from '../../constants';\nimport { useWindowSize } from '../../hooks/useWindowSize';\n\nconst useStyles = makeStyles({\n cardSearchTicket: {\n borderRadius: '32px',\n // borderBottomLeftRadius: '0',\n // borderBottomRightRadius: '0',\n padding: '3rem',\n paddingBottom: '8rem',\n position: 'relative',\n overflow: 'visible',\n // boxShadow: '0 0 2px rgba(0,0,0,0.12), 0 -8px 16px rgba(0,0,0,0.14)',\n // boxShadow: 'none',\n borderBottom: 'none',\n [`@media (max-width: ${extendedTokens.breakpointLg})`]: {\n padding: '2rem',\n paddingBottom: '6rem',\n },\n [`@media (max-width: ${extendedTokens.breakpointMd})`]: {\n padding: '1rem',\n paddingBottom: '5rem',\n },\n\n },\n paddingResponsive: {\n [`@media (max-width: ${extendedTokens.breakpointXxxl})`]: {\n padding: '5px',\n },\n },\n formField: {\n padding: '12px',\n display: 'flex',\n flexDirection: 'column',\n gap: '0px',\n borderRadius: tokens.borderRadiusXLarge,\n border: '1px solid ' + tokens.colorNeutralStroke1,\n height: '100%',\n },\n field: {\n display: 'flex',\n flexDirection: 'column',\n gap: tokens.spacingVerticalXS,\n },\n buttonSwitch: {\n background: tokens.colorNeutralBackground1,\n boxShadow: `0 1px 2px 0 ${tokens.colorNeutralShadowKey}, 0 0 2px 0 ${tokens.colorNeutralShadowAmbient}`,\n },\n buttonSearchContainer: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n height: '100%',\n width: '100%',\n },\n filterButtonContainer: {\n marginTop: '1rem',\n display: 'flex',\n gap: '1rem',\n // flexWrap: 'wrap',\n },\n circular: {\n position: 'absolute',\n width: 'clamp(40px, 7vw, 90px)',\n height: 'clamp(40px, 7vw, 90px)',\n borderRadius: '50% 50% 0 0',\n backgroundColor: tokens.colorNeutralBackground1Hover,\n bottom: '-10px',\n boxShadow: 'inset 0 2px 0px rgba(0, 0, 0, 0.1)',\n },\n});\n\nexport const CardTicketSearchSummary: React.FC<CardTicketSearchSummaryProps> = ({\n originHarbor,\n destinationHarbor,\n departureDate,\n serviceClass,\n typeOfService,\n totalPassengers,\n onChangeSearch,\n labels,\n showSwapButton = false,\n children,\n}) => {\n const styles = useStyles();\n const mergedLabels = { ...DEFAULT_LABELS, ...labels };\n const {width} = useWindowSize();\n const getCircularConfig = () => {\n if (width <= parseInt(extendedTokens.breakpointXs))\n return { count: 4, spacing: 65, size: 30, height: 30 };\n if (width <= parseInt(extendedTokens.breakpointSm))\n return { count: 5, spacing: 71, size: 40, height: 40 };\n if (width <= parseInt(extendedTokens.breakpointMd))\n return { count: 8, spacing: 87, size: 50, height: 50 };\n if (width <= parseInt(extendedTokens.breakpointLg))\n return { count: 9, spacing: 100, size: 60, height: 60 };\n if (width <= parseInt(extendedTokens.breakpointXl))\n return { count: 8, spacing: 115, size: 70, height: 70 };\n if (width <= parseInt(extendedTokens.breakpointXxl))\n return { count: 8, spacing: 136, size: 90, height: 90 };\n if (width <= parseInt(extendedTokens.breakpointXxxl))\n return { count: 8, spacing: 136, size: 90, height: 90 };\n return { count: 11, spacing: 136, size: 100, height: 90 };\n };\n\n const circularConfig = getCircularConfig();\n\n return (\n <Card className={styles.cardSearchTicket}>\n <Row>\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={12}\n xxl={5}\n xxxl={5}\n className={styles.paddingResponsive}\n >\n <div className={styles.formField}>\n <Row style={{ padding: '12px' }}>\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={12}\n xxl={5}\n xxxl={5}\n className={styles.paddingResponsive}\n >\n <Field label={mergedLabels.originHarbor} className={styles.field}>\n <Input\n name=\"from\"\n disabled\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:vehicle-ship-16-filled\"\n color={tokens.colorNeutralForegroundDisabled}\n />\n }\n value={originHarbor}\n appearance=\"outline\"\n size=\"medium\"\n />\n </Field>\n </Col>\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={12}\n xxl={1}\n xxxl={1}\n className={styles.paddingResponsive}\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <Visible lg xl xxl xxxl>\n <Button\n className={styles.buttonSwitch}\n shape=\"circular\"\n disabled\n appearance=\"secondary\"\n size=\"medium\"\n icon={<Icon icon=\"fluent:arrow-swap-24-filled\" />}\n />\n </Visible>\n </Col>\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={12}\n xxl={6}\n xxxl={6}\n className={styles.paddingResponsive}\n >\n <Field label={mergedLabels.destinationHarbor} className={styles.field}>\n <Input\n name=\"to\"\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:location-24-filled\"\n color={tokens.colorNeutralForegroundDisabled}\n />\n }\n disabled\n appearance=\"outline\"\n size=\"medium\"\n value={destinationHarbor}\n />\n </Field>\n </Col>\n </Row>\n </div>\n </Col>\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={12}\n xxl={5}\n xxxl={5}\n className={styles.paddingResponsive}\n >\n <div className={styles.formField}>\n <Row style={{ height: '100%', alignItems: 'center' }}>\n <Col\n xs={12}\n sm={12}\n md={6}\n lg={6}\n xl={6}\n xxl={3}\n xxxl={3}\n className={styles.paddingResponsive}\n >\n <Field className={styles.field}>\n <Input\n name=\"startDate\"\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:calendar-24-regular\"\n color={tokens.colorNeutralForegroundDisabled}\n />\n }\n disabled\n appearance=\"outline\"\n size=\"medium\"\n value={departureDate}\n />\n </Field>\n </Col>\n <Col\n xs={12}\n sm={12}\n md={6}\n lg={6}\n xl={6}\n xxl={3}\n xxxl={3}\n className={styles.paddingResponsive}\n >\n <Label className={styles.field}>\n <Input\n name=\"serviceClass\"\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:ribbon-star-24-regular\"\n color={tokens.colorNeutralForegroundDisabled}\n />\n }\n disabled\n appearance=\"outline\"\n size=\"medium\"\n value={serviceClass}\n />\n </Label>\n </Col>\n <Col\n xs={12}\n sm={12}\n md={6}\n lg={6}\n xl={6}\n xxl={3}\n xxxl={3}\n className={styles.paddingResponsive}\n >\n <Field className={styles.field}>\n <Input\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:vehicle-car-24-regular\"\n color={tokens.colorNeutralForegroundDisabled}\n />\n }\n disabled\n appearance=\"outline\"\n size=\"medium\"\n value={typeOfService}\n />\n </Field>\n </Col>\n <Col\n xs={12}\n sm={12}\n md={6}\n lg={6}\n xl={6}\n xxl={3}\n xxxl={3}\n className={styles.paddingResponsive}\n >\n <Field className={styles.field}>\n <Input\n name=\"passenger\"\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:people-24-regular\"\n color={tokens.colorNeutralForegroundDisabled}\n />\n }\n disabled\n appearance=\"outline\"\n size=\"medium\"\n value={totalPassengers}\n />\n </Field>\n </Col>\n </Row>\n </div>\n </Col>\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={12}\n xxl={2}\n xxxl={2}\n className={styles.paddingResponsive}\n >\n <div className={styles.buttonSearchContainer}>\n <Button\n type=\"button\"\n appearance=\"primary\"\n size=\"medium\"\n style={{ width: '100%', borderRadius: tokens.borderRadiusCircular }}\n iconPosition=\"before\"\n icon={<Icon icon=\"fluent:search-24-filled\" />}\n onClick={onChangeSearch}\n >\n {mergedLabels.changeSearchButton}\n </Button>\n </div>\n </Col>\n </Row>\n {children && (\n <div className={styles.filterButtonContainer}>\n {children}\n </div>\n )}\n\n {Array.from({ length: circularConfig.count }).map((_, index) => (\n <div\n key={index}\n className={styles.circular}\n style={{\n left: `${30 + index * circularConfig.spacing}px`,\n }}\n />\n ))}\n </Card>\n );\n};\n\nexport default CardTicketSearchSummary;\n","import React from 'react';\nimport {\n Body1,\n Body1Strong,\n Button,\n Caption1,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n Divider,\n Input,\n makeStyles,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\n\nconst useStyles = makeStyles({\n dialogTitle: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingRight: '8px',\n },\n dialogSurface: {\n maxWidth: '600px',\n width: '100%',\n },\n closeButton: {\n minWidth: '32px',\n minHeight: '32px',\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0px',\n paddingTop: '10px',\n paddingLeft: '10px',\n paddingRight: '10px',\n },\n searchInput: {\n width: '100%',\n marginBottom: '16px',\n },\n resultList: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0px',\n maxHeight: '400px',\n overflowY: 'auto',\n paddingRight: '1rem',\n },\n resultItem: {\n padding: '16px 20px',\n borderBottom: `1px solid ${tokens.colorNeutralStroke2}`,\n cursor: 'pointer',\n transition: 'all 0.2s ease',\n backgroundColor: tokens.colorNeutralBackground1,\n position: 'relative',\n ':hover': {\n backgroundColor: tokens.colorNeutralBackground1Hover,\n borderBottom: `1px solid ${tokens.colorBrandBackground}`,\n },\n },\n resultItemSelected: {\n backgroundColor: tokens.colorNeutralBackground1,\n borderLeft: `4px solid ${tokens.colorBrandBackground}`,\n paddingLeft: '16px',\n },\n harborName: {\n fontSize: tokens.fontSizeBase300,\n fontWeight: tokens.fontWeightRegular,\n color: tokens.colorNeutralForeground1,\n marginBottom: '2px',\n },\n harborLocation: {\n fontSize: tokens.fontSizeBase200,\n color: tokens.colorNeutralForeground3,\n },\n buttonContainer: {\n display: 'flex',\n gap: '1rem',\n marginBottom: '1rem',\n flexWrap: 'wrap',\n },\n circularButton: {\n borderRadius: tokens.borderRadiusCircular,\n },\n headerRow: {\n display: 'flex',\n justifyContent: 'space-between',\n marginTop: '1rem',\n marginBottom: '1rem',\n },\n dangerText: {\n color: tokens.colorStatusDangerForeground1,\n },\n historyItem: {\n display: 'flex',\n justifyContent: 'space-between',\n marginTop: '1rem',\n marginBottom: '1rem',\n },\n iconMargin: {\n marginRight: '0.5rem',\n },\n cursorPointer: {\n cursor: 'pointer',\n },\n sectionTitle: {\n marginTop: '1rem',\n marginBottom: '1rem',\n },\n harborList: {\n display: 'flex',\n flexDirection: 'column',\n gap: '1rem',\n marginBottom: '1rem',\n },\n harborItem: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n emptyState: {\n textAlign: 'center',\n padding: '32px',\n color: tokens.colorNeutralForeground3,\n },\n});\n\n/**\n * Harbor item interface\n */\nexport interface HarborItem {\n /**\n * Unique identifier for the harbor\n */\n id: number;\n \n /**\n * Display name of the harbor\n */\n name: string;\n}\n\n/**\n * Props for ModalSearchHarbor component\n */\nexport interface ModalSearchHarborProps {\n /**\n * Whether the modal is open\n */\n open: boolean;\n \n /**\n * Callback when modal should close\n */\n onClose: () => void;\n \n /**\n * Modal title\n * @default \"Pilih Pelabuhan\"\n */\n title?: string;\n \n /**\n * Type of modal - origin or destination\n * @default \"origin\"\n */\n modalType?: 'origin' | 'destination';\n \n /**\n * List of harbors to display\n */\n harbors: HarborItem[];\n \n /**\n * List of favorite harbors\n */\n favoriteHarbors: HarborItem[];\n \n /**\n * List of last searched harbors\n */\n lastSearchedHarbors: HarborItem[];\n \n /**\n * Loading state\n * @default false\n */\n isLoading?: boolean;\n \n /**\n * Current search query value\n */\n searchQuery: string;\n \n /**\n * Callback when search query changes\n */\n onSearchChange: (query: string) => void;\n \n /**\n * Callback when a harbor is selected\n */\n onSelectHarbor: (harbor: HarborItem) => void;\n \n /**\n * Callback when favorite is toggled\n */\n onToggleFavorite: (harbor: HarborItem) => void;\n \n /**\n * Callback when adding to last searched\n */\n onAddLastSearched: (harbor: HarborItem) => void;\n \n /**\n * Callback when removing from last searched\n */\n onRemoveLastSearched: (harborId: number) => void;\n \n /**\n * Callback when clearing all last searched\n */\n onClearLastSearched: () => void;\n}\n\n/**\n * ModalSearchHarbor - A reusable modal component for searching and selecting harbors\n * \n * This component provides a searchable modal interface for selecting harbors with features like:\n * - Search functionality\n * - Favorite harbors quick access\n * - Last searched history\n * - Loading states\n * \n * @example\n * ```tsx\n * <ModalSearchHarbor\n * open={isOpen}\n * onClose={() => setIsOpen(false)}\n * title=\"Pilih Pelabuhan Asal\"\n * harbors={harborList}\n * favoriteHarbors={favorites}\n * lastSearchedHarbors={history}\n * searchQuery={search}\n * onSearchChange={setSearch}\n * onSelectHarbor={handleSelect}\n * onToggleFavorite={handleToggleFavorite}\n * onAddLastSearched={handleAddHistory}\n * onRemoveLastSearched={handleRemoveHistory}\n * onClearLastSearched={handleClearHistory}\n * />\n * ```\n */\nexport const ModalSearchHarbor: React.FC<ModalSearchHarborProps> = ({\n open,\n onClose,\n title = 'Pilih Pelabuhan',\n modalType = 'origin',\n harbors,\n favoriteHarbors,\n lastSearchedHarbors,\n isLoading = false,\n searchQuery,\n onSearchChange,\n onSelectHarbor,\n onToggleFavorite,\n onAddLastSearched,\n onRemoveLastSearched,\n onClearLastSearched,\n}) => {\n const styles = useStyles();\n\n const handleSelect = (harbor: HarborItem) => {\n onAddLastSearched(harbor);\n onSelectHarbor(harbor);\n onSearchChange('');\n };\n\n const handleClose = () => {\n onClose();\n onSearchChange('');\n };\n\n return (\n <Dialog\n open={open}\n onOpenChange={(_, data) => {\n if (!data.open) {\n onClose();\n }\n }}\n >\n <DialogSurface className={styles.dialogSurface}>\n <DialogBody>\n <DialogTitle\n action={\n <Button\n appearance=\"subtle\"\n aria-label=\"close\"\n icon={<Icon icon=\"fluent:dismiss-24-regular\" />}\n onClick={handleClose}\n className={styles.closeButton}\n />\n }\n >\n {title}\n </DialogTitle>\n <DialogContent className={styles.content}>\n <div>\n <Input\n className={styles.searchInput}\n value={searchQuery}\n onChange={e => onSearchChange(e.target.value)}\n placeholder=\"Cari Pelabuhan...\"\n contentBefore={\n <Icon icon=\"fluent:search-24-regular\" color={tokens.colorNeutralForeground3} />\n }\n size=\"large\"\n />\n </div>\n \n {/* Favorite Harbors */}\n {favoriteHarbors.length > 0 && (\n <div className={styles.buttonContainer}>\n {favoriteHarbors.map(harbor => (\n <Button\n onClick={() => handleSelect(harbor)}\n key={harbor.id}\n size=\"medium\"\n appearance=\"outline\"\n iconPosition=\"before\"\n className={styles.circularButton}\n icon={<Icon icon=\"fluent:ribbon-20-filled\" />}\n >\n <Body1>{harbor.name}</Body1>\n </Button>\n ))}\n </div>\n )}\n \n <Divider />\n\n <div className={styles.resultList}>\n {/* Last Searched Section */}\n {lastSearchedHarbors.length > 0 && (\n <>\n <div className={styles.headerRow}>\n <Body1Strong>Terakhir dicari</Body1Strong>\n <Caption1\n className={`${styles.dangerText} ${styles.cursorPointer}`}\n onClick={onClearLastSearched}\n >\n Hapus Semua\n </Caption1>\n </div>\n\n <div>\n {lastSearchedHarbors.map(harbor => (\n <div className={styles.historyItem} key={harbor.id}>\n <div\n style={{ cursor: 'pointer' }}\n onClick={() => handleSelect(harbor)}\n >\n <Icon icon=\"fluent:vehicle-ship-24-regular\" className={styles.iconMargin} />\n {harbor.name}\n </div>\n <Icon\n onClick={() => onRemoveLastSearched(harbor.id)}\n icon=\"fluent:dismiss-24-regular\"\n color={tokens.colorStatusDangerForeground1}\n className={styles.cursorPointer}\n />\n </div>\n ))}\n </div>\n <Divider />\n </>\n )}\n\n {/* All Harbors Section */}\n <Body1Strong className={styles.sectionTitle}>Semua Pelabuhan</Body1Strong>\n <div className={styles.harborList}>\n {isLoading ? (\n <div className={styles.emptyState}>Memuat data...</div>\n ) : harbors.length > 0 ? (\n harbors.map((harbor, index) => (\n <div key={index} className={styles.harborItem}>\n <div\n className={styles.cursorPointer}\n onClick={() => handleSelect(harbor)}\n >\n <Icon icon=\"fluent:vehicle-ship-24-regular\" className={styles.iconMargin} />\n {harbor.name}\n </div>\n <Icon\n icon={\n favoriteHarbors.find(fav => fav.id === harbor.id)\n ? 'fluent:star-24-filled'\n : 'fluent:star-24-regular'\n }\n color={tokens.colorBrandBackground}\n className={styles.cursorPointer}\n onClick={() => onToggleFavorite(harbor)}\n />\n </div>\n ))\n ) : (\n <div className={styles.emptyState}>Pelabuhan tidak ditemukan</div>\n )}\n </div>\n </div>\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n\nexport default ModalSearchHarbor;\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Calendar, type CalendarDayGridStyles } from '@fluentui/react-calendar-compat';\nimport {\n Button,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n makeStyles,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport moment from 'moment';\nimport \"./modalSelectDate.css\";\n\nconst useStyles = makeStyles({\n dialogSurface: {\n maxWidth: '600px',\n width: '100%',\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0px',\n paddingTop: '10px',\n paddingLeft: '10px',\n paddingRight: '10px',\n paddingBottom: '20px',\n width: '100%',\n overflow: 'hidden',\n },\n closeButton: {\n minWidth: '32px',\n minHeight: '32px',\n },\n tabContainer: {\n display: 'flex',\n gap: '0px',\n marginBottom: '16px',\n borderBottom: `2px solid ${tokens.colorNeutralStroke2}`,\n },\n tab: {\n flex: 1,\n padding: '12px 16px',\n cursor: 'pointer',\n textAlign: 'center',\n fontSize: tokens.fontSizeBase300,\n fontWeight: tokens.fontWeightRegular,\n color: tokens.colorNeutralForeground3,\n borderBottom: '2px solid transparent',\n marginBottom: '-2px',\n transition: 'all 0.2s ease',\n backgroundColor: 'transparent',\n border: 'none',\n ':hover': {\n color: tokens.colorNeutralForeground1,\n backgroundColor: tokens.colorNeutralBackground1Hover,\n },\n },\n tabActive: {\n color: tokens.colorBrandForeground1,\n fontWeight: tokens.fontWeightSemibold,\n borderBottom: `2px solid ${tokens.colorBrandBackground}`,\n },\n calendarContainer: {\n display: 'flex',\n gap: '20px',\n justifyContent: 'center',\n alignItems: 'flex-start',\n width: '100%',\n },\n rangeCalendar: {\n '& .ms-CalendarDay': {\n position: 'relative',\n },\n '& button[class*=\"ms-CalendarDay\"]': {\n borderRadius: '999px',\n transition: 'all 0.15s ease',\n border: 'none',\n '&:hover': {\n backgroundColor: `${tokens.colorBrandBackground} !important`,\n color: tokens.colorNeutralForegroundStaticInverted,\n },\n },\n },\n rangeStart: {\n backgroundColor: `${tokens.colorBrandBackground} !important`,\n color: `${tokens.colorNeutralForegroundStaticInverted} !important`,\n borderTopLeftRadius: '999px !important',\n borderBottomLeftRadius: '999px !important',\n fontWeight: tokens.fontWeightSemibold,\n },\n rangeEnd: {\n backgroundColor: `${tokens.colorBrandBackground} !important`,\n color: `${tokens.colorNeutralForegroundOnBrand} !important`,\n borderTopRightRadius: '999px !important',\n borderBottomRightRadius: '999px !important',\n fontWeight: tokens.fontWeightSemibold,\n },\n rangeMiddle: {\n backgroundColor: `${tokens.colorBrandBackground} !important`,\n color: `${tokens.colorNeutralForegroundStaticInverted} !important`,\n borderRadius: '0px !important',\n },\n rangePreview: {\n backgroundColor: `${tokens.colorBrandBackground} !important`,\n color: tokens.colorNeutralForegroundStaticInverted,\n borderRadius: '0px !important',\n boxShadow: `inset 0 0 0 1px ${tokens.colorBrandStroke1}`,\n },\n rangeSingle: {\n backgroundColor: `${tokens.colorBrandBackground} !important`,\n color: `${tokens.colorNeutralForegroundOnBrand} !important`,\n borderRadius: '999px !important',\n fontWeight: tokens.fontWeightSemibold,\n },\n});\n\n/**\n * Tab type for trip selection\n */\nexport type TabType = 'one-way' | 'round-trip';\n\n/**\n * Props for ModalSelectDate component\n */\nexport interface ModalSelectDateProps {\n /**\n * Whether the modal is open\n */\n open: boolean;\n\n /**\n * Callback when modal should close\n */\n onClose: () => void;\n\n /**\n * Modal title\n * @default \"Pilih Tanggal\"\n */\n title?: string;\n\n /**\n * Initial selected departure date\n */\n selectedDepartureDate?: Date;\n\n /**\n * Initial selected return date (for round trip)\n */\n selectedReturnDate?: Date;\n\n /**\n * Initial tab selection\n * @default \"one-way\"\n */\n initialTab?: TabType;\n\n /**\n * Whether to show tabs for one-way/round-trip selection\n * @default true\n */\n showTabs?: boolean;\n\n /**\n * Callback when departure date is selected\n */\n onSelectDepartureDate: (date: Date) => void;\n\n /**\n * Callback when return date is selected (for round trip)\n */\n onSelectReturnDate?: (date: Date) => void;\n\n /**\n * Callback when tab changes\n */\n onTabChange?: (tab: TabType) => void;\n\n /**\n * Minimum selectable date\n * @default new Date()\n */\n minDate?: Date;\n\n /**\n * Maximum selectable date\n */\n maxDate?: Date;\n\n /**\n * Date format for internal handling\n * @default \"DD MMMM YYYY\"\n */\n dateFormat?: string;\n\n /**\n * Show Roundtrip\n * @default true\n */\n showRoundtrip?: boolean;\n}\n\n/**\n * ModalSelectDate - A reusable modal component for selecting dates\n * \n * This component provides a date selection modal with features like:\n * - Single date selection (one-way)\n * - Date range selection (round-trip)\n * - Visual range preview on hover\n * - Customizable date constraints\n * \n * @example\n * ```tsx\n * <ModalSelectDate\n * open={isOpen}\n * onClose={() => setIsOpen(false)}\n * title=\"Pilih Tanggal Keberangkatan\"\n * selectedDepartureDate={departureDate}\n * selectedReturnDate={returnDate}\n * onSelectDepartureDate={setDepartureDate}\n * onSelectReturnDate={setReturnDate}\n * onTabChange={handleTabChange}\n * />\n * ```\n */\nexport const ModalSelectDate: React.FC<ModalSelectDateProps> = ({\n open,\n onClose,\n title = 'Pilih Tanggal',\n selectedDepartureDate,\n selectedReturnDate,\n initialTab = 'one-way',\n showTabs = true,\n onSelectDepartureDate,\n onSelectReturnDate,\n onTabChange,\n minDate = new Date(),\n maxDate,\n dateFormat = 'DD MMMM YYYY',\n showRoundtrip = true,\n}) => {\n const styles = useStyles();\n\n const [selectedDate, setSelectedDate] = useState<Date | undefined>(selectedDepartureDate);\n const [selectedEndDate, setSelectedEndDate] = useState<Date | undefined>(selectedReturnDate);\n const [hoveredDate, setHoveredDate] = useState<Date | undefined>();\n const [activeTab, setActiveTab] = useState<TabType>(initialTab);\n\n const previewEndDate = useMemo(() => {\n if (selectedEndDate) return selectedEndDate;\n if (selectedDate && hoveredDate && hoveredDate > selectedDate) {\n return hoveredDate;\n }\n return undefined;\n }, [hoveredDate, selectedDate, selectedEndDate]);\n\n const isSameCalendarDay = (first?: Date, second?: Date) => {\n if (!first || !second) return false;\n return moment(first).isSame(second, 'day');\n };\n\n // Reset state when modal opens\n useEffect(() => {\n if (open) {\n setSelectedDate(selectedDepartureDate);\n setSelectedEndDate(selectedReturnDate);\n setActiveTab(initialTab);\n setHoveredDate(undefined);\n }\n }, [open, selectedDepartureDate, selectedReturnDate, initialTab]);\n\n const handleTabChange = (tab: TabType) => {\n setActiveTab(tab);\n setSelectedEndDate(undefined);\n setHoveredDate(undefined);\n\n if (onTabChange) {\n onTabChange(tab);\n }\n };\n\n const handleClose = () => {\n setHoveredDate(undefined);\n onClose();\n };\n\n const handleDateSelect = (date: Date | null | undefined) => {\n if (!date) return;\n\n const currentStart = selectedDate;\n\n if (activeTab === 'round-trip') {\n // Range selection mode\n if (!currentStart || selectedEndDate) {\n // First click or restart selection\n setSelectedDate(date);\n setSelectedEndDate(undefined);\n setHoveredDate(undefined);\n onSelectDepartureDate(date);\n if (onSelectReturnDate) {\n // Clear return date when starting new selection\n }\n } else {\n // Second click - set end date\n if (date < currentStart) {\n // If end date is before start date, swap them\n setSelectedEndDate(currentStart);\n setSelectedDate(date);\n onSelectDepartureDate(date);\n if (onSelectReturnDate) {\n onSelectReturnDate(currentStart);\n }\n } else {\n setSelectedEndDate(date);\n if (onSelectReturnDate) {\n onSelectReturnDate(date);\n }\n }\n setHoveredDate(undefined);\n handleClose();\n }\n } else {\n // Single date selection mode\n setSelectedDate(date);\n onSelectDepartureDate(date);\n handleClose();\n }\n };\n\n const handleCustomDayCellRef = useCallback(\n (element: HTMLElement | null, date: Date, _classNames?: CalendarDayGridStyles) => {\n if (!element) return;\n\n const removeTokens = (className?: string) => {\n className\n ?.split(/\\s+/)\n .filter(Boolean)\n .forEach(token => element.classList.remove(token));\n };\n const addTokens = (className?: string) => {\n className\n ?.split(/\\s+/)\n .filter(Boolean)\n .forEach(token => element.classList.add(token));\n };\n const removableClasses = [\n styles.rangeStart,\n styles.rangeEnd,\n styles.rangeMiddle,\n styles.rangePreview,\n styles.rangeSingle,\n ];\n removableClasses.forEach(removeTokens);\n\n if (activeTab !== 'round-trip' || !selectedDate) {\n element.onmouseenter = null;\n element.onmouseleave = null;\n return;\n }\n\n const endDateForVisual = previewEndDate;\n const startTime = selectedDate.getTime();\n const endTime = endDateForVisual?.getTime();\n const currentTime = date.getTime();\n const isSameStartEnd = isSameCalendarDay(endDateForVisual, selectedDate);\n const isStartDay = isSameCalendarDay(date, selectedDate);\n const isEndDay = isSameCalendarDay(date, endDateForVisual);\n\n if (isStartDay && (!endDateForVisual || isSameStartEnd)) {\n addTokens(styles.rangeSingle);\n } else {\n if (isStartDay) {\n addTokens(styles.rangeStart);\n }\n if (isEndDay && !isSameStartEnd) {\n addTokens(styles.rangeEnd);\n }\n }\n\n if (endTime && currentTime > startTime && currentTime < endTime) {\n addTokens(selectedEndDate ? styles.rangeMiddle : styles.rangePreview);\n }\n\n if (!selectedEndDate) {\n element.onmouseenter = () => {\n if (date < selectedDate) return;\n setHoveredDate(prev => {\n if (isSameCalendarDay(prev, date)) {\n return prev;\n }\n return date;\n });\n };\n element.onmouseleave = () => {\n setHoveredDate(undefined);\n };\n } else {\n element.onmouseenter = null;\n element.onmouseleave = null;\n }\n },\n [\n activeTab,\n previewEndDate,\n selectedDate,\n selectedEndDate,\n styles.rangeEnd,\n styles.rangeMiddle,\n styles.rangePreview,\n styles.rangeSingle,\n styles.rangeStart,\n ],\n );\n\n return (\n <Dialog\n open={open}\n onOpenChange={(_, data) => {\n if (!data.open) {\n onClose();\n }\n }}\n >\n <DialogSurface className={styles.dialogSurface}>\n <DialogBody>\n <DialogTitle\n action={\n <Button\n appearance=\"subtle\"\n aria-label=\"close\"\n icon={<Icon icon=\"fluent:dismiss-24-regular\" />}\n onClick={handleClose}\n className={styles.closeButton}\n />\n }\n >\n {title}\n </DialogTitle>\n <DialogContent className={styles.content}>\n {/* Tabs */}\n {showTabs && (\n <div className={styles.tabContainer}>\n <button\n disabled={activeTab === 'round-trip'}\n className={`${styles.tab} ${activeTab === 'one-way' ? styles.tabActive : ''}`}\n onClick={() => handleTabChange('one-way')}\n >\n Sekali Jalan\n </button>\n {showRoundtrip && (\n <button\n className={`${styles.tab} ${activeTab === 'round-trip' ? styles.tabActive : ''}`}\n onClick={() => handleTabChange('round-trip')}\n disabled={activeTab === 'one-way'}\n >\n Pulang Pergi\n </button>\n )}\n </div>\n )}\n\n {/* Calendar */}\n <div className={styles.calendarContainer}>\n <div style={{ width: '100%' }}>\n <div className={activeTab === 'round-trip' ? styles.rangeCalendar : ''}>\n <Calendar\n minDate={minDate}\n maxDate={maxDate}\n value={selectedDate}\n onSelectDate={handleDateSelect}\n showGoToToday\n highlightSelectedMonth\n showMonthPickerAsOverlay={false}\n allFocusable\n calendarDayProps={{\n customDayCellRef: handleCustomDayCellRef,\n }}\n />\n </div>\n </div>\n </div>\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n\nexport default ModalSelectDate;\n","import React, { useEffect, useState } from 'react';\nimport {\n Body1,\n Button,\n Caption1,\n Checkbox,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n makeStyles,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\n\nconst useStyles = makeStyles({\n dialogSurface: {\n maxWidth: '600px',\n width: '100%',\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0px',\n paddingTop: '10px',\n paddingLeft: '10px',\n paddingRight: '10px',\n },\n closeButton: {\n minWidth: '32px',\n minHeight: '32px',\n },\n headerRow: {\n display: 'flex',\n justifyContent: 'end',\n alignItems: 'center',\n borderBottom: `1px solid ${tokens.colorNeutralStroke2}`,\n },\n serviceList: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0px',\n maxHeight: '400px',\n overflowY: 'auto',\n paddingLeft: '20px',\n },\n serviceItem: {\n padding: '16px 0px',\n borderBottom: `1px solid ${tokens.colorNeutralStroke2}`,\n display: 'flex',\n alignItems: 'flex-start',\n gap: '12px',\n cursor: 'pointer',\n transition: 'background-color 0.2s ease',\n ':hover': {\n backgroundColor: tokens.colorNeutralBackground1Hover,\n },\n },\n serviceContent: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n gap: '4px',\n },\n serviceName: {\n fontSize: tokens.fontSizeBase300,\n fontWeight: tokens.fontWeightSemibold,\n color: tokens.colorNeutralForeground1,\n },\n serviceType: {\n fontSize: tokens.fontSizeBase200,\n fontWeight: tokens.fontWeightRegular,\n color: tokens.colorNeutralForeground2,\n },\n serviceDescription: {\n fontSize: tokens.fontSizeBase200,\n color: tokens.colorNeutralForeground3,\n lineHeight: '1.4',\n },\n footer: {\n padding: '16px 20px',\n borderTop: `1px solid ${tokens.colorNeutralStroke2}`,\n },\n saveButton: {\n width: '100%',\n borderRadius: tokens.borderRadiusCircular,\n },\n});\n\n/**\n * Service item structure\n */\nexport interface ServiceItem {\n /**\n * Unique identifier for the service\n */\n id: number;\n \n /**\n * Display name of the service type\n */\n serviceTypeName: string;\n \n /**\n * Code identifier for the service type\n */\n serviceTypeCode: string;\n \n /**\n * Detailed description of the service\n */\n serviceDescription: string;\n}\n\n/**\n * Props for ModalService component\n */\nexport interface ModalServiceProps {\n /**\n * Whether the modal is open\n */\n open: boolean;\n\n /**\n * Callback when modal should close\n */\n onClose: () => void;\n\n /**\n * Modal title\n * @default \"Pilih Kelas Layanan\"\n */\n title?: string;\n\n /**\n * Array of available services\n */\n services: ServiceItem[];\n\n /**\n * Array of currently selected service IDs\n */\n selectedServiceIds: number[];\n\n /**\n * Callback when save button is clicked\n * @param services - Array of selected service items\n */\n onSave: (services: ServiceItem[]) => void;\n\n /**\n * Loading state for services data\n * @default false\n */\n isLoading?: boolean;\n\n /**\n * Error state for services data\n * @default false\n */\n isError?: boolean;\n}\n\n/**\n * ModalService - A reusable modal component for selecting service classes\n * \n * This component provides a service selection modal with features like:\n * - Multiple service selection with checkboxes\n * - Select all/deselect all functionality\n * - Service details display (name, code, description)\n * - Save validation (requires at least one selection)\n * \n * @example\n * ```tsx\n * <ModalService\n * open={isOpen}\n * onClose={() => setIsOpen(false)}\n * title=\"Pilih Kelas Layanan\"\n * services={servicesList}\n * selectedServiceIds={selectedIds}\n * onSave={handleSave}\n * isLoading={isLoading}\n * isError={isError}\n * />\n * ```\n */\nexport const ModalService: React.FC<ModalServiceProps> = ({\n open,\n onClose,\n title = 'Pilih Kelas Layanan',\n services,\n selectedServiceIds,\n onSave,\n isLoading = false,\n isError = false,\n}) => {\n const styles = useStyles();\n const [selectedServices, setSelectedServices] = useState<number[]>(selectedServiceIds);\n\n // Reset selectedServices when modal opens or selectedServiceIds prop changes\n useEffect(() => {\n if (open) {\n // If selectedServiceIds is provided and not empty, use it\n if (selectedServiceIds && selectedServiceIds.length > 0) {\n // Filter to only include IDs that exist in services list\n const validIds = services\n .filter(s => selectedServiceIds.includes(s.id))\n .map(s => s.id);\n setSelectedServices(validIds);\n } else {\n // If no selection, select all by default\n setSelectedServices(services.map(s => s.id));\n }\n }\n }, [open, services, selectedServiceIds]);\n\n const handleClose = () => {\n onClose();\n };\n\n const handleToggleService = (serviceId: number) => {\n setSelectedServices(prev => {\n if (prev.includes(serviceId)) {\n return prev.filter(id => id !== serviceId);\n } else {\n return [...prev, serviceId];\n }\n });\n };\n\n const handleToggleAll = () => {\n if (selectedServices.length === services.length) {\n setSelectedServices([]);\n } else {\n setSelectedServices(services.map(s => s.id));\n }\n };\n\n const handleSave = () => {\n const selectedServiceItems = services.filter(s => selectedServices.includes(s.id));\n onSave(selectedServiceItems);\n };\n\n return (\n <Dialog\n open={open}\n onOpenChange={(_, data) => !data.open && onClose()}\n >\n <DialogSurface className={styles.dialogSurface}>\n <DialogBody>\n <DialogTitle\n action={\n <Button\n appearance=\"subtle\"\n aria-label=\"close\"\n icon={<Icon icon=\"fluent:dismiss-24-regular\" />}\n onClick={handleClose}\n className={styles.closeButton}\n />\n }\n >\n {title}\n </DialogTitle>\n <DialogContent className={styles.content}>\n {isLoading ? (\n <Body1>Loading...</Body1>\n ) : isError ? (\n <Body1>Error loading services</Body1>\n ) : (\n <>\n <div className={styles.serviceList}>\n <div className={styles.headerRow}>\n <Body1>Pilih Semua</Body1>\n <Checkbox\n checked={selectedServices.length === services.length}\n onChange={handleToggleAll}\n />\n </div>\n {services.map(service => (\n <div\n key={service.id}\n className={styles.serviceItem}\n onClick={() => handleToggleService(service.id)}\n >\n <div className={styles.serviceContent}>\n <Body1 className={styles.serviceName}>{service.serviceTypeName}</Body1>\n <Caption1 className={styles.serviceType}>{service.serviceTypeCode}</Caption1>\n <Caption1 className={styles.serviceDescription}>\n {service.serviceDescription}\n </Caption1>\n </div>\n <Checkbox\n checked={selectedServices.includes(service.id)}\n onChange={() => handleToggleService(service.id)}\n />\n </div>\n ))}\n </div>\n <div className={styles.footer}>\n <Button\n appearance=\"primary\"\n size=\"medium\"\n className={styles.saveButton}\n onClick={handleSave}\n disabled={selectedServices.length === 0}\n >\n Simpan\n </Button>\n </div>\n </>\n )}\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n\nexport default ModalService;\n","/**\n * Service class codes for passenger services\n */\nexport type PassengerServiceCode = 'ECONOMY' | 'BUSINESS' | 'EXECUTIVE';\n\n/**\n * Service class data structure\n */\nexport interface ServiceClass {\n id: number;\n name: string;\n key: string;\n serviceName: PassengerServiceCode;\n}\n\n/**\n * Default service classes available\n */\nexport const DEFAULT_SERVICE_CLASSES: ServiceClass[] = [\n { id: 1, name: 'Ekonomi', key: 'ekonomi', serviceName: 'ECONOMY' },\n { id: 2, name: 'Bisnis', key: 'bisnis', serviceName: 'BUSINESS' },\n { id: 3, name: 'Eksekutif', key: 'eksekutif', serviceName: 'EXECUTIVE' },\n];\n","import {\n Accordion,\n AccordionHeader,\n AccordionItem,\n AccordionPanel,\n Body1,\n Button,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n makeStyles,\n MessageBar,\n MessageBarBody,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport React, { useEffect, useState } from 'react';\n\nimport { DEFAULT_SERVICE_CLASSES, type PassengerServiceCode, type ServiceClass } from './constants';\n\nconst useStyles = makeStyles({\n dialogSurface: {\n maxWidth: '600px',\n width: '100%',\n },\n passengerSection: {\n marginTop: tokens.spacingHorizontalM,\n display: 'flex',\n flexDirection: 'column',\n },\n accordionHeader: {\n fontSize: tokens.fontSizeBase300,\n fontWeight: tokens.fontWeightBold,\n },\n accordionItem: {\n borderRadius: tokens.borderRadiusXLarge,\n marginBottom: '1rem',\n border: `1px solid ${tokens.colorNeutralStroke2}`,\n },\n passengerCount: {\n display: 'flex',\n alignItems: 'center',\n gap: '12px',\n },\n counterButton: {\n minWidth: '24px',\n height: '24px',\n padding: '0',\n borderRadius: tokens.borderRadiusCircular,\n color: tokens.colorBrandBackground,\n border: `1px solid ${tokens.colorBrandBackground}`,\n '&:hover': {\n border: `1px solid ${tokens.colorBrandBackgroundHover}`,\n color: tokens.colorBrandBackgroundHover,\n },\n '&:disabled': {\n border: `1px solid ${tokens.colorNeutralStrokeDisabled}`,\n color: tokens.colorNeutralForegroundDisabled,\n },\n },\n countText: {\n minWidth: '24px',\n textAlign: 'center',\n },\n nestedSection: {\n borderTop: `2px solid ${tokens.colorBrandBackground}`,\n display: 'flex',\n flexDirection: 'column',\n padding: '0.6rem',\n },\n nestedRow: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: '4px',\n borderRadius: tokens.borderRadiusSmall,\n backgroundColor: tokens.colorNeutralBackground1,\n },\n submitButton: {\n marginTop: '16px',\n width: '100%',\n borderRadius: tokens.borderRadiusCircular,\n },\n accordionPanel: {\n margin: 0,\n },\n});\n\n/**\n * Passenger object structure\n */\nexport interface Passenger {\n [key: string]: any;\n}\n\n/**\n * Service with passenger count\n */\nexport interface PassengerService {\n serviceId: number;\n serviceName: PassengerServiceCode;\n count: number;\n passengers: Passenger[];\n}\n\n/**\n * Passenger type from API\n */\nexport interface PassengerType {\n id: number;\n passengerTypeCode: string;\n passengerTypeName: string;\n}\n\n/**\n * Selected passenger item structure\n */\nexport interface SelectedPassengerItem {\n passengerTypeId: number;\n passengerTypeCode: string;\n passengerTypeName: string;\n services: PassengerService[];\n}\n\n/**\n * Props for ModalTotalPassengers component\n */\nexport interface ModalTotalPassengersProps {\n /**\n * Whether the modal is open\n */\n open: boolean;\n\n /**\n * Callback when modal should close\n */\n onClose: () => void;\n\n /**\n * Modal title\n * @default \"Pilih Jumlah Penumpang\"\n */\n title?: string;\n\n /**\n * Array of passenger types from API\n */\n passengerTypes: PassengerType[];\n\n /**\n * Array of service classes\n * @default DEFAULT_SERVICE_CLASSES\n */\n serviceClasses?: ServiceClass[];\n\n /**\n * Currently selected passengers\n */\n selectedPassengers: SelectedPassengerItem[];\n\n /**\n * Callback when save button is clicked\n */\n onSave: (passengers: SelectedPassengerItem[]) => void;\n\n /**\n * Loading state\n * @default false\n */\n isLoading?: boolean;\n\n /**\n * Maximum number of passengers allowed\n * @default 10\n */\n maxPassengers?: number;\n\n /**\n * Message to display in the info bar\n * @default \"Anda dapat menambahkan hingga {maxPassengers} penumpang pada golongan kendaraan ini.\"\n */\n infoMessage?: string;\n}\n\n/**\n * ModalTotalPassengers - A reusable modal component for selecting passenger counts\n * \n * This component provides a passenger selection modal with features like:\n * - Accordion for each passenger type\n * - Counter for each service class (Economy, Business, Executive)\n * - Automatic default selection (1 adult economy)\n * - Validation and save functionality\n * \n * @example\n * ```tsx\n * <ModalTotalPassengers\n * open={isOpen}\n * onClose={() => setIsOpen(false)}\n * title=\"Pilih Jumlah Penumpang\"\n * passengerTypes={passengerTypes}\n * selectedPassengers={selectedPassengers}\n * onSave={handleSave}\n * />\n * ```\n */\nexport const ModalTotalPassengers: React.FC<ModalTotalPassengersProps> = ({\n open,\n onClose,\n title = 'Pilih Jumlah Penumpang',\n passengerTypes,\n serviceClasses = DEFAULT_SERVICE_CLASSES,\n selectedPassengers,\n onSave,\n isLoading = false,\n maxPassengers = 10,\n infoMessage,\n}) => {\n const styles = useStyles();\n const [passengers, setPassengers] = useState<SelectedPassengerItem[]>([]);\n const [openItems, setOpenItems] = useState<string[]>([]);\n\n const defaultInfoMessage = `Anda dapat menambahkan hingga ${maxPassengers} penumpang pada golongan kendaraan ini.`;\n\n // Initialize passengers state when modal opens or data changes\n useEffect(() => {\n if (passengerTypes.length === 0) return;\n\n // Create default structure for all passenger types\n const defaultPassengers: SelectedPassengerItem[] = passengerTypes.map(passengerType => ({\n passengerTypeId: passengerType.id,\n passengerTypeCode: passengerType.passengerTypeCode,\n passengerTypeName: passengerType.passengerTypeName,\n services: serviceClasses.map(sc => ({\n serviceId: sc.id,\n serviceName: sc.serviceName,\n count: 0,\n passengers: [],\n })),\n }));\n\n // If selectedPassengers has data, merge with default structure\n if (selectedPassengers && selectedPassengers.length > 0) {\n const mergedPassengers = defaultPassengers.map(defaultP => {\n const selectedP = selectedPassengers.find(\n p => p.passengerTypeCode === defaultP.passengerTypeCode,\n );\n if (selectedP) {\n // Merge services - update counts and passengers from selected\n const mergedServices = defaultP.services.map(defaultS => {\n const selectedS = selectedP.services.find(s => s.serviceName === defaultS.serviceName);\n return selectedS\n ? { ...defaultS, count: selectedS.count, passengers: selectedS.passengers || [] }\n : defaultS;\n });\n return { ...defaultP, services: mergedServices };\n }\n return defaultP;\n });\n setPassengers(mergedPassengers);\n\n // Set accordion open items for passenger types that have data\n const itemsWithData = selectedPassengers\n .filter(p => p.services.some(s => s.count > 0))\n .map(p => {\n const passengerType = passengerTypes.find(\n pt => pt.passengerTypeCode === p.passengerTypeCode,\n );\n return passengerType ? String(passengerType.id) : '';\n })\n .filter(id => id !== '');\n setOpenItems(itemsWithData);\n } else {\n setPassengers(defaultPassengers);\n setOpenItems([]);\n }\n }, [open, passengerTypes, serviceClasses, selectedPassengers]);\n\n // Get service count for a specific passenger type and service\n const getServiceCount = (\n passengerTypeCode: string,\n serviceName: PassengerServiceCode,\n ): number => {\n const passenger = passengers.find(p => p.passengerTypeCode === passengerTypeCode);\n if (!passenger) return 0;\n const service = passenger.services.find(s => s.serviceName === serviceName);\n return service?.count || 0;\n };\n\n // Get total description for a passenger type\n const getTotalForType = (passengerTypeCode: string) => {\n const passenger = passengers.find(p => p.passengerTypeCode === passengerTypeCode);\n if (!passenger) return '0';\n\n const parts: string[] = [];\n passenger.services.forEach(service => {\n if (service.count > 0) {\n const serviceClass = serviceClasses.find(sc => sc.serviceName === service.serviceName);\n const serviceName = serviceClass?.name || service.serviceName;\n parts.push(`${service.count} ${serviceName}`);\n }\n });\n\n return parts.length > 0 ? parts.join(', ') : '0';\n };\n\n const handleIncrement = (passengerTypeCode: string, serviceName: PassengerServiceCode) => {\n setPassengers(prev =>\n prev.map(passenger => {\n if (passenger.passengerTypeCode === passengerTypeCode) {\n return {\n ...passenger,\n services: passenger.services.map(service => {\n if (service.serviceName === serviceName) {\n const newCount = service.count + 1;\n const newPassengers = [...(service.passengers || [])];\n\n // Add new empty passenger objects until we reach newCount\n while (newPassengers.length < newCount) {\n newPassengers.push({} as Passenger);\n }\n\n return {\n ...service,\n count: newCount,\n passengers: newPassengers,\n };\n }\n return service;\n }),\n };\n }\n return passenger;\n }),\n );\n };\n\n const handleDecrement = (passengerTypeCode: string, serviceName: PassengerServiceCode) => {\n setPassengers(prev =>\n prev.map(passenger => {\n if (passenger.passengerTypeCode === passengerTypeCode) {\n return {\n ...passenger,\n services: passenger.services.map(service => {\n if (service.serviceName === serviceName && service.count > 0) {\n const newCount = service.count - 1;\n const newPassengers = (service.passengers || []).slice(0, newCount);\n return {\n ...service,\n count: newCount,\n passengers: newPassengers,\n };\n }\n return service;\n }),\n };\n }\n return passenger;\n }),\n );\n };\n\n const handleSave = () => {\n // Filter out passengers with all services at count 0\n const filteredPassengers = passengers\n .map(passenger => ({\n ...passenger,\n services: passenger.services.filter(service => service.count > 0),\n }))\n .filter(passenger => passenger.services.length > 0);\n\n onSave(filteredPassengers);\n };\n\n return (\n <Dialog\n open={open}\n onOpenChange={(_, data) => !data.open && onClose()}\n >\n <DialogSurface>\n <DialogBody>\n <DialogTitle\n action={\n <Button\n appearance=\"subtle\"\n aria-label=\"close\"\n icon={<Icon icon=\"fluent:dismiss-12-regular\" />}\n onClick={onClose}\n />\n }\n >\n {title}\n </DialogTitle>\n <DialogContent>\n <MessageBar shape=\"rounded\">\n <MessageBarBody>\n {infoMessage || defaultInfoMessage}\n </MessageBarBody>\n </MessageBar>\n {isLoading ? (\n <Body1>Loading...</Body1>\n ) : (\n <>\n <Accordion\n collapsible\n multiple\n openItems={openItems}\n onToggle={(_, data) => setOpenItems(data.openItems as string[])}\n className={styles.passengerSection}\n >\n {passengerTypes.map(passengerType => {\n return (\n <AccordionItem\n key={passengerType.id}\n value={String(passengerType.id)}\n className={styles.accordionItem}\n >\n <AccordionHeader className={styles.accordionHeader} expandIconPosition=\"end\">\n {passengerType.passengerTypeName} (\n {getTotalForType(passengerType.passengerTypeCode)})\n </AccordionHeader>\n <AccordionPanel className={styles.accordionPanel}>\n <div className={styles.nestedSection}>\n {serviceClasses.map(service => (\n <div key={service.key} className={styles.nestedRow}>\n <Body1>{service.name}</Body1>\n <div className={styles.passengerCount}>\n <Button\n appearance=\"outline\"\n className={styles.counterButton}\n size=\"small\"\n icon={<Icon icon=\"fluent:subtract-12-regular\" />}\n onClick={e => {\n e.stopPropagation();\n handleDecrement(\n passengerType.passengerTypeCode,\n service.serviceName,\n );\n }}\n disabled={\n getServiceCount(\n passengerType.passengerTypeCode,\n service.serviceName,\n ) === 0\n }\n />\n <Body1 className={styles.countText}>\n {getServiceCount(\n passengerType.passengerTypeCode,\n service.serviceName,\n )}\n </Body1>\n <Button\n appearance=\"outline\"\n className={styles.counterButton}\n size=\"small\"\n icon={<Icon icon=\"fluent:add-12-regular\" />}\n onClick={e => {\n e.stopPropagation();\n handleIncrement(\n passengerType.passengerTypeCode,\n service.serviceName,\n );\n }}\n />\n </div>\n </div>\n ))}\n </div>\n </AccordionPanel>\n </AccordionItem>\n );\n })}\n </Accordion>\n\n <Button\n appearance=\"primary\"\n size=\"medium\"\n className={styles.submitButton}\n onClick={handleSave}\n >\n Simpan\n </Button>\n </>\n )}\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n\nexport default ModalTotalPassengers;\n","import {\n Accordion,\n AccordionHeader,\n AccordionItem,\n AccordionPanel,\n Body1,\n Button,\n Caption1,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n makeStyles,\n mergeClasses,\n Radio,\n RadioGroup,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport React, { ReactNode, useEffect, useState } from 'react';\n\nconst useStyles = makeStyles({\n dialogSurface: {\n maxWidth: '600px',\n width: '100%',\n },\n closeButton: {\n minWidth: '32px',\n minHeight: '32px',\n },\n passengerSection: {\n marginTop: tokens.spacingHorizontalM,\n display: 'flex',\n flexDirection: 'column',\n },\n accordionItem: {\n borderBottom: `1px solid ${tokens.colorNeutralStroke2}`,\n width: '100%',\n },\n accordionHeader: {\n fontSize: tokens.fontSizeBase300,\n fontWeight: tokens.fontWeightBold,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n },\n accordionTitleAndInfo: {\n display: 'flex',\n flexDirection: 'column',\n gap: '2px',\n marginLeft: tokens.spacingHorizontalM,\n flex: 1,\n },\n accordionBody: {\n marginLeft: '100px',\n },\n footer: {\n marginTop: tokens.spacingVerticalL,\n display: 'flex',\n gap: tokens.spacingHorizontalM,\n justifyContent: 'flex-end',\n },\n});\n\n/**\n * Service type item structure\n */\nexport interface TypeOfService {\n id: number;\n image: string;\n title: string;\n info: string;\n price: number;\n type: string;\n parentId?: number;\n parentTitle?: string;\n child: TypeOfService[];\n typeOfPassanger: string;\n}\n\n/**\n * Props for ModalTypeOfService component\n */\nexport interface ModalTypeOfServiceProps {\n /**\n * Whether the modal is open\n */\n open: boolean;\n\n /**\n * Callback when modal should close\n */\n onClose: () => void;\n\n /**\n * Modal title\n * @default \"Pilih Tipe Layanan\"\n */\n title?: string;\n\n /**\n * Array of service types\n */\n serviceTypes: TypeOfService[];\n\n /**\n * Currently selected service\n */\n selectedService?: TypeOfService | null;\n\n /**\n * Callback when save button is clicked\n */\n onSave: (service: TypeOfService) => void;\n\n /**\n * Optional custom image renderer\n * Useful for Next.js Image component or other custom renderers\n */\n renderImage?: (props: { src: string; alt: string; width: number; height: number }) => ReactNode;\n}\n\n/**\n * ModalTypeOfService - A reusable modal component for selecting service types\n * \n * This component provides a service type selection modal with features like:\n * - Accordion for categories with children (vehicles, goods, etc.)\n * - Radio buttons for individual selections\n * - Image display for each service type\n * - Customizable image renderer for framework-specific components\n * \n * @example\n * ```tsx\n * <ModalTypeOfService\n * open={isOpen}\n * onClose={() => setIsOpen(false)}\n * title=\"Pilih Tipe Layanan\"\n * serviceTypes={serviceTypes}\n * selectedService={selectedService}\n * onSave={handleSave}\n * renderImage={(props) => <Image {...props} />}\n * />\n * ```\n */\nexport const ModalTypeOfService: React.FC<ModalTypeOfServiceProps> = ({\n open,\n onClose,\n title = 'Pilih Tipe Layanan',\n serviceTypes,\n selectedService,\n onSave,\n renderImage,\n}) => {\n const styles = useStyles();\n const [selectedServiceTitle, setSelectedServiceTitle] = useState<string>(\n selectedService?.title || '',\n );\n const [openItems, setOpenItems] = useState<number | undefined>(() => {\n // Initialize openItems based on selected service\n if (!selectedService) return undefined;\n for (const item of serviceTypes) {\n if (item.type === 'accordion' && item.child.length > 0) {\n const hasSelectedChild = item.child.some(\n child => child.title === selectedService.title,\n );\n if (hasSelectedChild) {\n return item.id;\n }\n }\n }\n return undefined;\n });\n\n // Default image renderer using standard img tag\n const defaultRenderImage = ({ src, alt, width, height }: { src: string; alt: string; width: number; height: number }) => (\n <img src={src} alt={alt} width={width} height={height} style={{ objectFit: 'contain' }} />\n );\n\n const imageRenderer = renderImage || defaultRenderImage;\n\n // Reset local state when modal opens or selected service changes\n useEffect(() => {\n const newTitle = selectedService?.title || '';\n\n // Only update if the value actually changed\n if (newTitle !== selectedServiceTitle) {\n setSelectedServiceTitle(newTitle);\n }\n\n // Find and open the parent accordion if selected service is a child\n if (selectedService) {\n for (const item of serviceTypes) {\n if (item.type === 'accordion' && item.child.length > 0) {\n const hasSelectedChild = item.child.some(\n child => child.title === selectedService.title,\n );\n if (hasSelectedChild && openItems !== item.id) {\n setOpenItems(item.id);\n break;\n }\n }\n }\n } else if (openItems !== undefined) {\n setOpenItems(undefined);\n }\n }, [open, selectedService?.title]);\n\n const handleConfirm = () => {\n if (selectedServiceTitle) {\n // Find the selected service item from serviceTypes\n let selectedItem: TypeOfService | null = null;\n\n for (const item of serviceTypes) {\n if (item.title === selectedServiceTitle) {\n // Top level item selected\n selectedItem = {\n id: item.id,\n image: item.image,\n title: item.title,\n info: item.info,\n price: item.price,\n parentTitle: '',\n parentId: 0,\n type: item.type,\n typeOfPassanger: item.typeOfPassanger,\n child: [],\n };\n break;\n }\n if (item.child && item.child.length > 0) {\n const childItem = item.child.find(child => child.title === selectedServiceTitle);\n if (childItem) {\n selectedItem = {\n id: childItem.id,\n image: childItem.image,\n title: childItem.title,\n info: childItem.info,\n price: childItem.price,\n parentTitle: childItem.parentTitle,\n parentId: childItem.parentId,\n type: childItem.type,\n typeOfPassanger: childItem.typeOfPassanger,\n child: [],\n };\n break;\n }\n }\n }\n\n if (selectedItem) {\n onSave(selectedItem);\n }\n }\n };\n\n return (\n <Dialog\n open={open}\n onOpenChange={(_, data) => !data.open && onClose()}\n >\n <DialogSurface className={styles.dialogSurface}>\n <DialogBody>\n <DialogTitle\n action={\n <Button\n appearance=\"subtle\"\n aria-label=\"close\"\n icon={<Icon icon=\"fluent:dismiss-24-regular\" />}\n onClick={onClose}\n className={styles.closeButton}\n />\n }\n >\n {title}\n </DialogTitle>\n <DialogContent>\n <Accordion\n collapsible\n openItems={openItems}\n onToggle={(_, data) => setOpenItems(data.openItems[0] as number)}\n className={styles.passengerSection}\n >\n <RadioGroup\n value={selectedServiceTitle}\n onChange={(_, data) => setSelectedServiceTitle(data.value)}\n >\n {serviceTypes.map((item, index) => {\n if (item.type === 'accordion') {\n return (\n <AccordionItem key={index} value={item.id} className={styles.accordionItem}>\n <AccordionHeader\n className={styles.accordionHeader}\n expandIconPosition=\"end\"\n >\n <div>\n {imageRenderer({ src: item.image, alt: 'vehicles', width: 74, height: 74 })}\n </div>\n <div className={styles.accordionTitleAndInfo}>\n <Body1>{item.title}</Body1>\n <Caption1>{item.info}</Caption1>\n </div>\n </AccordionHeader>\n <AccordionPanel className={styles.accordionBody}>\n {item.child.length > 0 &&\n item.child.map((childItem, childIndex) => (\n <div\n key={childIndex}\n className={mergeClasses(\n styles.accordionHeader,\n styles.accordionItem,\n )}\n style={{ padding: tokens.spacingHorizontalXS }}\n >\n <div>\n {imageRenderer({\n src: childItem.image,\n alt: childItem.title,\n width: 48,\n height: 48,\n })}\n </div>\n <div className={styles.accordionTitleAndInfo}>\n <Body1>{childItem.title}</Body1>\n <Caption1>{childItem.info}</Caption1>\n </div>\n <Radio value={childItem.title} />\n </div>\n ))}\n </AccordionPanel>\n </AccordionItem>\n );\n } else if (item.type === 'radio') {\n return (\n <div\n key={index}\n className={mergeClasses(styles.accordionHeader, styles.accordionItem)}\n style={{ padding: tokens.spacingHorizontalXS }}\n >\n <div style={{ marginLeft: 2 }}>\n {imageRenderer({ src: item.image, alt: item.title, width: 74, height: 74 })}\n </div>\n <div className={styles.accordionTitleAndInfo} style={{ marginLeft: 18 }}>\n <Body1>{item.title}</Body1>\n <Caption1>{item.info}</Caption1>\n </div>\n <Radio value={item.title} />\n </div>\n );\n }\n return null;\n })}\n </RadioGroup>\n </Accordion>\n <div className={styles.footer}>\n <Button appearance=\"secondary\" shape=\"circular\" onClick={onClose}>\n Batal\n </Button>\n <Button\n appearance=\"primary\"\n shape=\"circular\"\n onClick={handleConfirm}\n disabled={!selectedServiceTitle}\n >\n Simpan\n </Button>\n </div>\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n\nexport default ModalTypeOfService;\n","/**\n * Default paths for vehicle icon images\n * These images are bundled with the library in the assets directory\n */\nexport const DEFAULT_VEHICLE_ICONS = {\n pedestrian: '/assets/images/icons/pedestrian.webp',\n roadbike: '/assets/images/icons/roadbike.webp',\n motorbike1: '/assets/images/icons/motorbike-1.webp',\n motorbike2: '/assets/images/icons/motorbike-2.svg',\n smallCar: '/assets/images/icons/small-car.webp',\n smallBus: '/assets/images/icons/small-bus.webp',\n bigBus: '/assets/images/icons/big-bus.webp',\n truck: '/assets/images/icons/truck.webp',\n bigTruck: '/assets/images/icons/big-truck.webp',\n looseLoad: '/assets/images/icons/loose-load.webp',\n} as const;\n\n/**\n * Helper function to get asset URL\n * Can be overridden by consuming applications\n */\nexport const getAssetUrl = (path: string): string => {\n return path;\n};\n","export const DEFAULT_SORT_OPTIONS = [\n { value: 'rekomendasi', label: 'Rekomendasi' },\n { value: 'harga-tertinggi', label: 'Harga Tertinggi' },\n { value: 'harga-terendah', label: 'Harga Terendah' },\n { value: 'keberangkatan-paling-awal', label: 'Keberangkatan Paling Awal' },\n { value: 'keberangkatan-paling-akhir', label: 'Keberangkatan Paling Akhir' },\n];\n\nexport const getSortLabel = (value: string): string => {\n const option = DEFAULT_SORT_OPTIONS.find(opt => opt.value === value);\n return option?.label || 'Rekomendasi';\n};\n","import React from 'react';\nimport {\n Button,\n Divider,\n makeStyles,\n Menu,\n MenuList,\n MenuPopover,\n MenuTrigger,\n Radio,\n RadioGroup,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport { SortMenuProps } from './SortMenu.types';\nimport { DEFAULT_SORT_OPTIONS, getSortLabel } from './SortMenu.constants';\n\nconst useStyles = makeStyles({\n container: {\n display: 'flex',\n width: '100%',\n gap: tokens.spacingHorizontalM,\n '@media (max-width: 768px)': {\n flexDirection: 'column',\n gap: tokens.spacingVerticalS,\n },\n },\n divider: {\n width: '100%',\n maxWidth: 'min-content',\n '@media (max-width: 768px)': {\n display: 'none',\n },\n },\n button: {\n borderRadius: tokens.borderRadiusCircular,\n color: tokens.colorBrandBackground,\n border: '1px solid ' + tokens.colorBrandBackground,\n },\n});\n\nexport const SortMenu: React.FC<SortMenuProps> = ({\n value,\n onChange,\n totalActiveFilters = 0,\n onFilterClick,\n onClearFilters,\n sortOptions = DEFAULT_SORT_OPTIONS,\n filterButtonText = 'Filter',\n sortButtonText = 'Urutkan Berdasarkan',\n clearFiltersText = '{count} Filter Dipilih',\n}) => {\n const styles = useStyles();\n\n const handleReset = () => {\n onChange('rekomendasi');\n };\n\n return (\n <div className={styles.container}>\n {onFilterClick && (\n <Button\n icon={<Icon icon=\"fluent:filter-16-regular\" />}\n size=\"medium\"\n type=\"button\"\n appearance=\"outline\"\n shape=\"circular\"\n className={styles.button}\n onClick={onFilterClick}\n >\n {filterButtonText}\n </Button>\n )}\n\n <Menu>\n <MenuTrigger disableButtonEnhancement>\n <Button\n icon={<Icon icon=\"fluent:arrow-sort-16-regular\" />}\n size=\"medium\"\n type=\"button\"\n shape=\"circular\"\n className={styles.button}\n >\n {sortButtonText}\n </Button>\n </MenuTrigger>\n <MenuPopover>\n <MenuList>\n <RadioGroup value={value} onChange={(_, data) => onChange(data.value)}>\n {sortOptions.map(option => (\n <Radio key={option.value} value={option.value} label={option.label} />\n ))}\n </RadioGroup>\n </MenuList>\n </MenuPopover>\n </Menu>\n\n <Divider vertical className={styles.divider} />\n\n <Button\n icon={<Icon icon=\"fluent:dismiss-32-regular\" />}\n size=\"medium\"\n iconPosition=\"after\"\n onClick={handleReset}\n type=\"button\"\n shape=\"circular\"\n className={styles.button}\n >\n {getSortLabel(value)}\n </Button>\n\n {totalActiveFilters > 0 && onClearFilters && (\n <>\n <Divider vertical className={styles.divider} />\n <Button\n icon={<Icon icon=\"fluent:dismiss-32-regular\" />}\n size=\"medium\"\n iconPosition=\"after\"\n type=\"button\"\n onClick={onClearFilters}\n shape=\"circular\"\n className={styles.button}\n >\n {clearFiltersText.replace('{count}', totalActiveFilters.toString())}\n </Button>\n </>\n )}\n </div>\n );\n};\n\nexport default SortMenu;\n","import { ModalFilterTicketLabels } from './ModalFilterTicket.types';\n\nexport const DEFAULT_LABELS: ModalFilterTicketLabels = {\n title: 'Filter dengan',\n serviceTypeLabel: 'Jenis Layanan',\n departureTimeLabel: 'Waktu pergi',\n arrivalTimeLabel: 'Waktu tiba',\n priceLabel: 'Harga',\n priceRangeText: (min: number, max: number) => {\n const formatPrice = (price: number) => new Intl.NumberFormat('id-ID').format(price);\n return `Mulai dari IDR ${formatPrice(min)} - ${formatPrice(max)}`;\n },\n durationLabel: 'Durasi perjalanan',\n durationRangeText: (min: number, max: number) => `Perjalanan ${min} - ${max} jam`,\n resetButton: 'Reset',\n applyButton: 'Terapkan',\n};\n\nexport const DEFAULT_SERVICE_TYPES = [\n { value: 'ropax-regular', label: 'Ropax Regular' },\n { value: 'ropax-express', label: 'Ropax Express' },\n { value: 'fast-ferry', label: 'Fast Ferry' },\n { value: 'bus-air', label: 'Bus Air' },\n { value: 'water-taxi', label: 'Water Taxi' },\n { value: 'pctc', label: 'PCTC' },\n { value: 'pcc', label: 'PCC' },\n];\n\nexport const DEFAULT_TIME_SLOTS = [\n { value: '00:00 - 06:00', label: '00:00 - 06:00' },\n { value: '06:00 - 12:00', label: '06:00 - 12:00' },\n { value: '12:00 - 18:00', label: '12:00 - 18:00' },\n { value: '18:00 - 24:00', label: '18:00 - 24:00' },\n];\n\nexport const DEFAULT_PRICE_RANGE = {\n min: 200000,\n max: 800000,\n};\n\nexport const DEFAULT_DURATION_RANGE = {\n min: 0,\n max: 8,\n};\n","import React, { useCallback, useState, useEffect } from 'react';\nimport {\n Body1,\n Button,\n Checkbox,\n Dialog,\n DialogActions,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n Divider,\n makeStyles,\n shorthands,\n Subtitle2,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport { Row, Col } from 'react-grid-system';\nimport { Range } from 'react-range';\n\nimport { ModalFilterTicketProps } from './ModalFilterTicket.types';\nimport {\n DEFAULT_LABELS,\n DEFAULT_SERVICE_TYPES,\n DEFAULT_TIME_SLOTS,\n DEFAULT_PRICE_RANGE,\n DEFAULT_DURATION_RANGE,\n} from './ModalFilterTicket.constants';\nimport { extendedTokens } from '../../constants';\n\nconst useStyles = makeStyles({\n dialogSurface: {\n maxWidth: '600px',\n width: '100%',\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n gap: tokens.spacingHorizontalXXL,\n paddingTop: tokens.spacingVerticalMNudge,\n paddingLeft: tokens.spacingHorizontalSNudge,\n paddingRight: tokens.spacingHorizontalSNudge,\n paddingBottom: tokens.spacingHorizontalXL,\n maxHeight: '70vh',\n overflowY: 'auto',\n },\n closeButton: {\n minWidth: '32px',\n minHeight: '32px',\n },\n section: {\n display: 'flex',\n flexDirection: 'column',\n gap: '12px',\n },\n containerRange: {\n display: 'flex',\n flexDirection: 'column',\n gap: tokens.spacingVerticalM,\n },\n spaceText: {\n display: 'flex',\n flexDirection: 'column',\n gap: tokens.spacingHorizontalXXS,\n },\n sliderContainer: {\n display: 'flex',\n flexDirection: 'column',\n gap: tokens.spacingVerticalS,\n ...shorthands.padding(tokens.spacingHorizontalNone, tokens.spacingHorizontalSNudge),\n },\n sliderValues: {\n display: 'flex',\n justifyContent: 'space-between',\n fontSize: tokens.fontSizeBase200,\n color: tokens.colorNeutralForeground2,\n marginTop: tokens.spacingVerticalXS,\n },\n footerButtons: {\n display: 'flex',\n gap: tokens.spacingVerticalM,\n justifyContent: 'flex-end',\n paddingTop: tokens.spacingVerticalL,\n },\n checkboxWrapper: {\n '& label': {\n whiteSpace: 'nowrap',\n },\n },\n buttonGrid: {\n display: 'grid',\n gridTemplateColumns: 'repeat(2, 1fr)',\n gap: '0.5rem',\n },\n outlinePrimary: {\n color: tokens.colorBrandBackground,\n ...shorthands.border('1px', 'solid', tokens.colorBrandBackground),\n ':hover': {\n backgroundColor: tokens.colorBrandBackgroundHover,\n ...shorthands.borderColor(tokens.colorBrandBackgroundHover),\n color: tokens.colorNeutralForegroundOnBrand,\n },\n },\n outlineDanger: {\n color: tokens.colorPaletteRedForeground1,\n ...shorthands.border('1px', 'solid', tokens.colorPaletteRedForeground1),\n ':hover': {\n backgroundColor: tokens.colorPaletteRedBackground1,\n ...shorthands.borderColor(tokens.colorPaletteRedForeground1),\n },\n },\n});\n\nexport const ModalFilterTicket: React.FC<ModalFilterTicketProps> = ({\n open,\n onOpenChange,\n selectedServiceTypes,\n onServiceTypesChange,\n departureTime,\n onDepartureTimeChange,\n arrivalTime,\n onArrivalTimeChange,\n priceRange,\n onPriceRangeChange,\n durationRange,\n onDurationRangeChange,\n onReset,\n onApply,\n labels,\n serviceTypes = DEFAULT_SERVICE_TYPES,\n timeSlots = DEFAULT_TIME_SLOTS,\n minPrice = DEFAULT_PRICE_RANGE.min,\n maxPrice = DEFAULT_PRICE_RANGE.max,\n minDuration = DEFAULT_DURATION_RANGE.min,\n maxDuration = DEFAULT_DURATION_RANGE.max,\n}) => {\n const styles = useStyles();\n const mergedLabels = { ...DEFAULT_LABELS, ...labels };\n const [rangeReady, setRangeReady] = useState(false);\n\n // Delay range slider rendering to prevent errors\n useEffect(() => {\n if (open) {\n const timer = setTimeout(() => {\n setRangeReady(true);\n }, 200);\n\n return () => {\n clearTimeout(timer);\n setRangeReady(false);\n };\n }\n }, [open]);\n\n\n const handleServiceTypeToggle = (value: string) => {\n if (selectedServiceTypes.includes(value)) {\n onServiceTypesChange(selectedServiceTypes.filter(s => s !== value));\n } else {\n onServiceTypesChange([...selectedServiceTypes, value]);\n }\n };\n\n const handleDepartureTimeChange = (value: string, checked: boolean) => {\n if (checked) {\n onDepartureTimeChange([...departureTime, value]);\n } else {\n onDepartureTimeChange(departureTime.filter(t => t !== value));\n }\n };\n\n const handleArrivalTimeChange = (value: string, checked: boolean) => {\n if (checked) {\n onArrivalTimeChange([...arrivalTime, value]);\n } else {\n onArrivalTimeChange(arrivalTime.filter(t => t !== value));\n }\n };\n\n const formatPrice = (price: number) => {\n return new Intl.NumberFormat('id-ID').format(price);\n };\n\n const renderPriceTrack = useCallback(\n ({ props, children }: any) => {\n const [value1, value2] = priceRange;\n const percent1 = ((value1 - minPrice) / (maxPrice - minPrice)) * 100;\n const percent2 = ((value2 - minPrice) / (maxPrice - minPrice)) * 100;\n\n return (\n <div\n {...props}\n ref={props.ref}\n style={{\n ...props.style,\n height: '4px',\n width: '100%',\n backgroundColor: tokens.colorNeutralStroke2,\n borderRadius: tokens.borderRadiusSmall,\n position: 'relative',\n }}\n >\n <div\n style={{\n position: 'absolute',\n height: '100%',\n left: `${percent1}%`,\n right: `${100 - percent2}%`,\n backgroundColor: tokens.colorBrandBackground,\n borderRadius: tokens.borderRadiusSmall,\n }}\n />\n {children}\n </div>\n );\n },\n [priceRange, minPrice, maxPrice],\n );\n\n const renderDurationTrack = useCallback(\n ({ props, children }: any) => {\n const [value1, value2] = durationRange;\n const percent1 = ((value1 - minDuration) / (maxDuration - minDuration)) * 100;\n const percent2 = ((value2 - minDuration) / (maxDuration - minDuration)) * 100;\n\n return (\n <div\n {...props}\n ref={props.ref}\n style={{\n ...props.style,\n height: '4px',\n width: '100%',\n backgroundColor: tokens.colorNeutralStroke2,\n borderRadius: tokens.borderRadiusSmall,\n position: 'relative',\n }}\n >\n <div\n style={{\n position: 'absolute',\n height: '100%',\n left: `${percent1}%`,\n right: `${100 - percent2}%`,\n backgroundColor: tokens.colorBrandBackground,\n borderRadius: tokens.borderRadiusSmall,\n }}\n />\n {children}\n </div>\n );\n },\n [durationRange, minDuration, maxDuration],\n );\n\n const renderThumb = ({ props }: any) => (\n <div\n {...props}\n ref={props.ref}\n style={{\n ...props.style,\n height: '15px',\n width: '15px',\n borderRadius: '50%',\n backgroundColor: tokens.colorBrandBackground,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n boxShadow: tokens.shadow4,\n }}\n />\n );\n\n return (\n <Dialog open={open} onOpenChange={(_, data) => onOpenChange(data.open)}>\n <DialogSurface className={styles.dialogSurface}>\n <DialogBody>\n <DialogTitle\n action={\n <Button\n appearance=\"subtle\"\n aria-label=\"close\"\n icon={<Icon icon=\"fluent:dismiss-24-regular\" />}\n className={styles.closeButton}\n onClick={() => onOpenChange(false)}\n />\n }\n >\n {mergedLabels.title}\n </DialogTitle>\n <DialogContent className={styles.content}>\n <Divider />\n \n {/* Jenis Layanan */}\n <div className={styles.section}>\n <Body1>{mergedLabels.serviceTypeLabel}</Body1>\n <div className={styles.buttonGrid}>\n {serviceTypes.map(service => {\n const isSelected = selectedServiceTypes.includes(service.value);\n return (\n <Button\n key={service.value}\n appearance={isSelected ? 'primary' : 'outline'}\n className={isSelected ? '' : styles.outlinePrimary}\n size=\"large\"\n onClick={() => handleServiceTypeToggle(service.value)}\n style={{ width: '100%' }}\n >\n {service.label}\n </Button>\n );\n })}\n </div>\n </div>\n \n <Divider />\n \n {/* Waktu Pergi */}\n <div className={styles.section}>\n <Body1>{mergedLabels.departureTimeLabel}</Body1>\n <Row>\n {timeSlots.map(slot => (\n <Col key={slot.value} xs={6} sm={6} md={6} lg={3} xl={3} xxl={3} xxxl={3}>\n <div className={styles.checkboxWrapper}>\n <Checkbox\n label={slot.label}\n checked={departureTime.includes(slot.value)}\n onChange={(_, data) =>\n handleDepartureTimeChange(slot.value, data.checked as boolean)\n }\n />\n </div>\n </Col>\n ))}\n </Row>\n </div>\n \n <Divider />\n \n {/* Waktu Tiba */}\n <div className={styles.section}>\n <Body1>{mergedLabels.arrivalTimeLabel}</Body1>\n <Row>\n {timeSlots.map(slot => (\n <Col key={slot.value} xs={6} sm={6} md={6} lg={3} xl={3} xxl={3} xxxl={3}>\n <div className={styles.checkboxWrapper}>\n <Checkbox\n label={slot.label}\n checked={arrivalTime.includes(slot.value)}\n onChange={(_, data) =>\n handleArrivalTimeChange(slot.value, data.checked as boolean)\n }\n />\n </div>\n </Col>\n ))}\n </Row>\n </div>\n \n <Divider />\n \n {/* Harga */}\n <div className={styles.containerRange}>\n <div className={styles.spaceText}>\n <Subtitle2>{mergedLabels.priceLabel}</Subtitle2>\n <Body1>{mergedLabels.priceRangeText(priceRange[0], priceRange[1])}</Body1>\n </div>\n <div className={styles.sliderContainer}>\n {rangeReady && (\n <Range\n key={open ? 'open' : 'closed'}\n min={minPrice}\n max={maxPrice}\n values={priceRange}\n onChange={(values: number[]) => onPriceRangeChange(values as [number, number])}\n renderTrack={renderPriceTrack}\n renderThumb={renderThumb}\n />\n )}\n <div className={styles.sliderValues}>\n <span>{formatPrice(minPrice)}</span>\n <span>{formatPrice(maxPrice)}</span>\n </div>\n </div>\n </div>\n \n <Divider />\n \n {/* Durasi Perjalanan */}\n <div className={styles.containerRange}>\n <div className={styles.spaceText}>\n <Subtitle2>{mergedLabels.durationLabel}</Subtitle2>\n <Body1>{mergedLabels.durationRangeText(durationRange[0], durationRange[1])}</Body1>\n </div>\n <div className={styles.sliderContainer}>\n {rangeReady && (\n <Range\n key={open ? 'open' : 'closed'}\n step={1}\n min={minDuration}\n max={maxDuration}\n values={durationRange}\n onChange={(values: number[]) => onDurationRangeChange(values as [number, number])}\n renderTrack={renderDurationTrack}\n renderThumb={renderThumb}\n />\n )}\n <div className={styles.sliderValues}>\n <span>{minDuration} jam</span>\n <span>{maxDuration} jam</span>\n </div>\n </div>\n </div>\n </DialogContent>\n \n <DialogActions className={styles.footerButtons}>\n <Button\n className={styles.outlineDanger}\n appearance=\"outline\"\n shape=\"circular\"\n onClick={onReset}\n >\n {mergedLabels.resetButton}\n </Button>\n <Button appearance=\"primary\" onClick={onApply} shape=\"circular\">\n {mergedLabels.applyButton}\n </Button>\n </DialogActions>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n","import { DateFilterLabels } from './DateFilter.types';\n\nexport const DEFAULT_LABELS: DateFilterLabels = {\n prevButtonAriaLabel: 'Previous dates',\n nextButtonAriaLabel: 'Next dates',\n calendarButtonAriaLabel: 'Open calendar',\n};\n\nexport const DEFAULT_SCROLL_AMOUNT = 150;\n","import React, { useRef } from 'react';\nimport { Button, Caption2Strong, makeStyles, mergeClasses, shorthands, tokens } from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport { Visible } from 'react-grid-system';\n\nimport { DateFilterProps } from './DateFilter.types';\nimport { DEFAULT_LABELS, DEFAULT_SCROLL_AMOUNT } from './DateFilter.constants';\n\nconst useStyles = makeStyles({\n container: {\n display: 'flex',\n alignItems: 'stretch',\n gap: '8px',\n overflowX: 'auto',\n maxWidth: '95vw',\n boxSizing: 'border-box',\n },\n compoundHeight: {\n // height: '63px',\n },\n item: {\n minWidth: 'clamp(50px, 10vw, 140px)',\n scrollSnapAlign: 'start',\n flexShrink: 0,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n height: '63px',\n '@media (min-width: 1600px)': {\n flexGrow: 1,\n flexShrink: 1,\n minWidth: '120px',\n },\n },\n scrollContainer: {\n display: 'flex',\n overflowX: 'auto',\n scrollSnapType: 'x mandatory',\n gap: '12px',\n scrollbarWidth: 'none',\n msOverflowStyle: 'none',\n minWidth: 0,\n flexGrow: 1,\n '@media (min-width: 1600px)': {\n overflowX: 'visible',\n justifyContent: 'stretch',\n },\n '::-webkit-scrollbar': {\n display: 'none',\n },\n },\n compoundButton: {\n width: '100%',\n textAlign: 'center',\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n gap: '4px',\n backgroundColor: 'white',\n },\n button: {\n minWidth: '48px',\n height: '100%',\n },\n buttonCalendar: {\n minWidth: '65px',\n height: '100%',\n },\n selected: {\n color: tokens.colorBrandBackground,\n ...shorthands.borderColor(tokens.colorBrandBackground),\n ':hover': {\n backgroundColor: tokens.colorBrandBackgroundHover,\n ...shorthands.borderColor(tokens.colorBrandBackgroundHover),\n color: tokens.colorNeutralForegroundOnBrand,\n },\n },\n});\n\nexport const DateFilter: React.FC<DateFilterProps> = ({\n dates,\n selectedDate,\n onDateClick,\n onCalendarClick,\n showNavigation = true,\n showCalendarButton = true,\n scrollAmount = DEFAULT_SCROLL_AMOUNT,\n labels,\n}) => {\n const styles = useStyles();\n const scrollRef = useRef<HTMLDivElement>(null);\n const mergedLabels = { ...DEFAULT_LABELS, ...labels };\n\n const handlePrev = () => {\n scrollRef.current?.scrollBy({ left: -scrollAmount, behavior: 'smooth' });\n };\n\n const handleNext = () => {\n scrollRef.current?.scrollBy({ left: scrollAmount, behavior: 'smooth' });\n };\n\n return (\n <div className={styles.container}>\n {showNavigation && (\n <Visible lg xl xxl xxxl>\n <div className={styles.compoundHeight}>\n <Button\n icon={<Icon icon=\"fluent:chevron-left-32-regular\" />}\n size=\"small\"\n onClick={handlePrev}\n className={styles.button}\n aria-label={mergedLabels.prevButtonAriaLabel}\n />\n </div>\n </Visible>\n )}\n\n {/* Date Carousel */}\n <div ref={scrollRef} className={styles.scrollContainer}>\n {dates.map((date, index) => (\n <div key={index} className={styles.item}>\n <Button\n appearance=\"outline\"\n type=\"button\"\n className={mergeClasses(\n styles.compoundButton,\n selectedDate === date.label ? styles.selected : '',\n )}\n onClick={() => onDateClick(date.label)}\n >\n <Caption2Strong truncate>{date.label}</Caption2Strong>\n <Caption2Strong truncate>{date.price}</Caption2Strong>\n </Button>\n </div>\n ))}\n </div>\n\n {showNavigation && (\n <Visible lg xl xxl xxxl>\n <div className={styles.compoundHeight}>\n <Button\n icon={<Icon icon=\"fluent:chevron-right-32-filled\" />}\n onClick={handleNext}\n className={styles.button}\n size=\"small\"\n aria-label={mergedLabels.nextButtonAriaLabel}\n />\n </div>\n </Visible>\n )}\n\n {showCalendarButton && (\n <div className={styles.compoundHeight}>\n <Button\n size=\"small\"\n icon={<Icon icon=\"fluent:calendar-32-regular\" />}\n className={styles.buttonCalendar}\n onClick={onCalendarClick}\n aria-label={mergedLabels.calendarButtonAriaLabel}\n />\n </div>\n )}\n </div>\n );\n};\n","/**\n * Default labels for ModalSearchTicket\n */\nexport const DEFAULT_LABELS = {\n title: 'Cari Jadwal Lainnya',\n fromLabel: 'Dari',\n toLabel: 'Ke',\n departureDateLabel: 'Tanggal Berangkat',\n returnDateLabel: 'Tanggal Pulang',\n roundTripLabel: 'Pulang Pergi',\n serviceClassLabel: 'Kelas Layanan',\n typeOfServiceLabel: 'Jenis penumpang',\n passengerLabel: 'Penumpang',\n searchButton: 'Cari Tiket',\n fromPlaceholder: 'Pilih pelabuhan asal',\n toPlaceholder: 'Pilih pelabuhan tujuan',\n departureDatePlaceholder: 'Pilih Tanggal Berangkat',\n returnDatePlaceholder: 'Pilih Tanggal Pulang',\n serviceClassPlaceholder: 'Pilih Kelas Layanan',\n typeOfServicePlaceholder: 'Pilih Jenis penumpang',\n passengerPlaceholder: 'Pilih Penumpang',\n};\n\n/**\n * Default form values\n */\nexport const DEFAULT_FORM_VALUES = {\n from: '',\n to: '',\n startDate: '',\n roundTrip: false,\n endDate: '',\n serviceClass: '',\n typeOfService: '',\n passenger: '',\n};\n","import {\n Button,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n Divider,\n makeStyles,\n tokens,\n} from \"@fluentui/react-components\";\nimport { Icon } from \"@iconify/react\";\nimport React, { useEffect, useRef } from \"react\";\nimport { Col, Row, Visible } from \"react-grid-system\";\nimport { useForm, useWatch } from \"react-hook-form\";\nimport { InputDynamic } from \"../InputDynamic\";\nimport {\n ModalSearchTicketProps,\n SearchTicketFormData,\n} from \"./ModalSearchTicket.types\";\nimport { DEFAULT_FORM_VALUES } from \"./ModalSearchTicket.constants\";\nimport { extendedTokens } from \"../../constants\";\n\nconst useStyles = makeStyles({\n dialogSurface: {\n maxWidth: \"900px\",\n width: \"100%\",\n },\n closeButton: {\n minWidth: \"32px\",\n minHeight: \"32px\",\n },\n content: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"24px\",\n paddingTop: \"10px\",\n paddingLeft: \"10px\",\n paddingRight: \"10px\",\n paddingBottom: \"20px\",\n },\n formInnerRow: {\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n margin: \"0 !important\",\n },\n },\n formFieldRow: {\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n gap: \"12px !important\",\n },\n },\n formField: {\n padding: \"16px\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"8px\",\n borderRadius: tokens.borderRadiusXLarge,\n border: \"1px solid \" + tokens.colorNeutralStroke1,\n height: \"100%\",\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n padding: \"20px\",\n borderRadius: tokens.borderRadiusXLarge,\n },\n },\n deviderButton: {\n display: \"flex\",\n justifyContent: \"center\",\n position: \"absolute\",\n left: \"18px\",\n bottom: \"-10px\",\n width: \"90%\",\n },\n serviceCol: {\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n paddingLeft: \"15px !important\",\n paddingRight: \"15px !important\",\n marginTop: \"16px\",\n },\n },\n searchButton: {\n width: \"100%\",\n borderRadius: tokens.borderRadiusCircular,\n },\n buttonSwitch: {\n background: tokens.colorNeutralBackground1,\n boxShadow: `0 1px 2px 0 ${tokens.colorNeutralShadowKey}, 0 0 2px 0 ${tokens.colorNeutralShadowAmbient}`,\n },\n switchIcon: {\n display: \"inline-flex\",\n transition: \"transform 0.3s ease\",\n },\n switchIconRotate: {\n transform: \"rotate(180deg)\",\n },\n});\n\n/**\n * ModalSearchTicket - A reusable modal component for searching ferry tickets\n *\n * This component provides a comprehensive form interface for searching ferry tickets with features like:\n * - Origin and destination harbor selection\n * - Departure and return date selection\n * - Round trip toggle\n * - Service class selection\n * - Type of service selection\n * - Passenger count selection\n * - Harbor switching functionality\n *\n * @example\n * ```tsx\n * <ModalSearchTicket\n * open={isOpen}\n * onClose={() => setIsOpen(false)}\n * defaultValues={{\n * from: 'Merak',\n * to: 'Bakauheni',\n * startDate: '12 Januari 2026',\n * roundTrip: false,\n * endDate: '',\n * serviceClass: '2 Kelas Layanan',\n * typeOfService: 'Pejalan Kaki',\n * passenger: '2 Penumpang',\n * }}\n * onSelectOrigin={() => openOriginModal()}\n * onSelectDestination={() => openDestinationModal()}\n * onSelectDepartureDate={() => openDateModal()}\n * onSelectReturnDate={() => openReturnDateModal()}\n * onSelectServiceClass={() => openServiceClassModal()}\n * onSelectTypeOfService={() => openTypeOfServiceModal()}\n * onSelectPassenger={() => openPassengerModal()}\n * onSwitchHarbor={() => switchHarbors()}\n * onSubmit={(data) => handleSearch(data)}\n * isSubmitDisabled={!isFormValid}\n * />\n * ```\n */\nexport const ModalSearchTicket: React.FC<ModalSearchTicketProps> = ({\n open,\n onClose,\n defaultValues,\n onSelectOrigin,\n onSelectDestination,\n onFromChange,\n onSelectDepartureDate,\n onSelectReturnDate,\n onSelectServiceClass,\n onSelectTypeOfService,\n onSelectPassenger,\n onSwitchHarbor,\n onSwitchClick,\n onRoundTripChange,\n onSubmit,\n toDisabled = false,\n endDateDisabled = false,\n serviceClassDisabled = false,\n typeOfServiceDisabled = false,\n roundTripDisabled = false,\n isSubmitDisabled = false,\n switchDisabled = false,\n isRotating = false,\n showPassengerField = false,\n showRoundTrip = true,\n ...props\n}) => {\n const styles = useStyles();\n\n const { control, setValue, handleSubmit, watch } =\n useForm<SearchTicketFormData>({\n defaultValues: {\n ...DEFAULT_FORM_VALUES,\n ...defaultValues,\n },\n });\n\n const roundTripValue = useWatch({\n control,\n name: \"roundTrip\",\n defaultValue: defaultValues?.roundTrip || false,\n });\n\n // Track if we're updating from props to prevent infinite loop\n const isUpdatingFromProps = useRef(false);\n\n // Update form values when props change\n useEffect(() => {\n if (defaultValues) {\n isUpdatingFromProps.current = true;\n Object.entries(defaultValues).forEach(([key, value]) => {\n setValue(key as keyof SearchTicketFormData, value as any);\n });\n // Reset flag after a tick to allow user interactions\n setTimeout(() => {\n isUpdatingFromProps.current = false;\n }, 0);\n }\n }, [defaultValues, setValue]);\n\n // Handle round trip change - only call callback if change is from user interaction\n useEffect(() => {\n if (onRoundTripChange && !isUpdatingFromProps.current) {\n onRoundTripChange(roundTripValue);\n }\n }, [roundTripValue, onRoundTripChange]);\n\n const handleFromChange = () => {\n setValue('to', '');\n if (onFromChange) {\n onFromChange();\n }\n };\n\n const onFormSubmit = (data: SearchTicketFormData) => {\n if (onSubmit) {\n onSubmit(data);\n }\n };\n\n return (\n <Dialog\n open={open}\n onOpenChange={(_, data) => !data.open && onClose()}\n {...props}\n >\n <DialogSurface className={styles.dialogSurface}>\n <DialogBody>\n <DialogTitle\n action={\n <Button\n appearance=\"subtle\"\n aria-label=\"close\"\n className={styles.closeButton}\n icon={<Icon icon=\"fluent:dismiss-24-regular\" />}\n onClick={onClose}\n />\n }\n >\n Cari Jadwal Lainnya\n </DialogTitle>\n <DialogContent className={styles.content}>\n <form onSubmit={handleSubmit(onFormSubmit)}>\n <Row style={{ width: \"100%\" }} className={styles.formInnerRow}>\n <Col xs={12} sm={12} lg={12} xl={6} xxl={6} xxxl={6}>\n <Row style={{ gap: \"16px\" }} className={styles.formFieldRow}>\n <Col xs={12} sm={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <div className={styles.formField}>\n <Row>\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={12}\n xxl={12}\n xxxl={12}\n >\n <InputDynamic\n name=\"from\"\n label=\"Dari\"\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:vehicle-ship-16-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder=\"Pilih pelabuhan asal\"\n onClick={onSelectOrigin}\n onChange={handleFromChange}\n validationRules={{\n required: 'Pelabuhan asal wajib diisi',\n }}\n required\n />\n <div className={styles.deviderButton}>\n <Divider />{\" \"}\n <Button\n onClick={onSwitchClick}\n className={styles.buttonSwitch}\n shape=\"circular\"\n appearance=\"secondary\"\n size=\"large\"\n disabled={switchDisabled}\n icon={\n <div\n className={`${styles.switchIcon} ${isRotating ? styles.switchIconRotate : \"\"}`}\n >\n <img\n src=\"/assets/images/icons/switch.svg\"\n alt=\"Switch\"\n width={26}\n height={26}\n />\n </div>\n }\n />\n </div>\n </Col>\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={12}\n xxl={12}\n xxxl={12}\n >\n <InputDynamic\n name=\"to\"\n label=\"Ke\"\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:location-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n disabled={toDisabled}\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder=\"Pilih pelabuhan tujuan\"\n onClick={onSelectDestination}\n validationRules={{\n required: 'Pelabuhan tujuan wajib diisi',\n }}\n required\n />\n </Col>\n </Row>\n </div>\n </Col>\n <Col xs={12} sm={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <div className={styles.formField}>\n <Row style={{ height: \"100%\" }}>\n <Col\n xs={6}\n sm={6}\n md={6}\n lg={6}\n xl={6}\n xxl={6}\n xxxl={6}\n >\n <div style={{ position: \"relative\", zIndex: 2 }}>\n <InputDynamic\n name=\"startDate\"\n label=\"Tanggal Berangkat\"\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:calendar-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder=\"Pilih Tanggal Berangkat\"\n onClick={onSelectDepartureDate}\n required\n validationRules={{\n required: 'Tanggal Berangkat wajib diisi',\n }}\n />\n </div>\n </Col>\n {showRoundTrip && <Col\n xs={6}\n sm={6}\n md={6}\n lg={6}\n xl={6}\n xxl={6}\n xxxl={6}\n style={{ display: \"flex\", justifyContent: \"end\" }}\n >\n <InputDynamic\n name=\"roundTrip\"\n label=\"Pulang Pergi\"\n control={control}\n type=\"switch\"\n disabled={roundTripDisabled}\n size=\"medium\"\n />\n </Col>}\n \n {roundTripValue && (\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={12}\n xxl={12}\n xxxl={12}\n >\n <InputDynamic\n name=\"endDate\"\n label=\"Tanggal Pulang\"\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:calendar-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder=\"Pilih Tanggal Pulang\"\n onClick={onSelectReturnDate}\n disabled={endDateDisabled}\n style={{ borderColor: \"transparent\" }}\n required={roundTripValue}\n validationRules={{\n required: 'Tanggal Pulang wajib diisi',\n }}\n />\n </Col>\n )}\n </Row>\n </div>\n </Col>\n </Row>\n </Col>\n <Visible xl xxl xxxl>\n <Col\n xs={12}\n sm={12}\n lg={12}\n xl={1}\n xxl={1}\n xxxl={1}\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n >\n <Divider vertical style={{ height: \"100%\" }} />\n </Col>\n </Visible>\n <Col\n xs={12}\n sm={12}\n lg={12}\n xl={5}\n xxl={5}\n xxxl={5}\n className={styles.serviceCol}\n >\n <Row style={{ height: \"100%\", gap: \"16px\" }}>\n <Col xs={12} sm={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <div className={styles.formField}>\n <Row style={{ height: \"100%\", gap: \"16px\" }}>\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={12}\n xxl={12}\n xxxl={12}\n >\n <InputDynamic\n name=\"serviceClass\"\n label=\"Kelas Layanan\"\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:ribbon-star-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder=\"Pilih Kelas Layanan\"\n onClick={onSelectServiceClass}\n required\n disabled={serviceClassDisabled}\n />\n </Col>\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={12}\n xxl={12}\n xxxl={12}\n >\n <InputDynamic\n name=\"typeOfService\"\n label=\"Jenis penumpang\"\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:apps-list-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder=\"Pilih Jenis penumpang\"\n onClick={onSelectTypeOfService}\n required\n disabled={typeOfServiceDisabled}\n />\n </Col>\n {showPassengerField && (\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={12}\n xxl={12}\n xxxl={12}\n >\n <InputDynamic\n required\n name=\"passenger\"\n label=\"Penumpang\"\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:people-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder=\"Pilih Penumpang\"\n onClick={onSelectPassenger}\n />\n </Col>\n )}\n </Row>\n </div>\n </Col>\n </Row>\n </Col>\n <Col\n xs={12}\n sm={12}\n lg={12}\n xl={12}\n xxl={12}\n xxxl={12}\n style={{ paddingTop: \"2rem\" }}\n >\n <Button\n className={styles.searchButton}\n appearance=\"primary\"\n size=\"large\"\n type=\"submit\"\n icon={<Icon icon=\"fluent:vehicle-ship-20-filled\" />}\n disabled={isSubmitDisabled}\n >\n Cari Tiket\n </Button>\n </Col>\n </Row>\n </form>\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n\nexport default ModalSearchTicket;\n","import React, { Fragment, useMemo } from 'react';\nimport { makeStyles, mergeClasses } from '@fluentui/react-components';\n\nimport type { StepperProps, StepStatus } from './Stepper.types';\nimport { extendedTokens } from '../../constants';\n\n// Create styles with media queries matching original ferizy implementation\nconst useStyles = makeStyles({\n stepperWrapper: {\n position: 'relative',\n width: '100%',\n maxWidth: '988px',\n margin: '0 auto',\n [`@media (max-width: ${extendedTokens.breakpointMd})`]: {\n maxWidth: '100%',\n },\n },\n stepperContainer: {\n position: 'relative',\n width: '100%',\n height: '78px',\n display: 'flex',\n flexDirection: 'column',\n [`@media (max-width: ${extendedTokens.breakpointMd})`]: {\n height: '60px',\n },\n },\n stepperBackground: {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n zIndex: 0,\n pointerEvents: 'none',\n },\n stepsRow: {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-around',\n padding: '0 60px',\n height: '50%',\n zIndex: 2,\n [`@media (max-width: ${extendedTokens.breakpointMd})`]: {\n padding: '0 30px',\n },\n },\n stepCircleWrapper: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n position: 'relative',\n zIndex: 3,\n },\n stepCircle: {\n width: '24px',\n height: '24px',\n borderRadius: '25%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '16px',\n fontWeight: 'bold',\n transition: 'all 0.3s ease',\n [`@media (max-width: ${extendedTokens.breakpointMd})`]: {\n width: '16px',\n height: '16px',\n fontSize: '14px',\n },\n },\n stepCircleActive: {\n backgroundColor: '#FFFFFF',\n color: '#00AEEF',\n boxShadow: '0 2px 8px rgba(0, 174, 239, 0.3)',\n },\n stepCircleCompleted: {\n backgroundColor: '#8DC63F',\n color: '#FFFFFF',\n border: 'none',\n },\n stepCircleInactive: {\n backgroundColor: '#FFFFFF',\n color: '#999999',\n },\n stepLabel: {\n position: 'absolute',\n top: '50%',\n marginTop: '28px',\n left: '50%',\n transform: 'translateX(-50%)',\n fontSize: '12px',\n fontWeight: '600',\n textAlign: 'center',\n whiteSpace: 'nowrap',\n color: '#FFFFFF',\n [`@media (max-width: ${extendedTokens.breakpointMd})`]: {\n marginTop: '20px',\n fontSize: '9px',\n },\n },\n ferryIcon: {\n width: '40px',\n height: '40px',\n [`@media (max-width: ${extendedTokens.breakpointMd})`]: {\n width: '30px',\n height: '30px',\n },\n },\n stepConnector: {\n flex: 1,\n height: '4px',\n backgroundColor: '#CCCCCC',\n margin: '0 8px',\n alignSelf: 'center',\n [`@media (max-width: ${extendedTokens.breakpointMd})`]: {\n height: '3px',\n margin: '0 4px',\n },\n },\n stepConnectorCompleted: {\n backgroundColor: '#8DC63F',\n },\n});\n\nexport const Stepper: React.FC<StepperProps> = ({\n steps,\n currentStep,\n className,\n}) => {\n const styles = useStyles();\n\n // Find current step index\n const currentStepIndex = useMemo(() => {\n if (typeof currentStep === 'number') {\n return steps.findIndex((step) => step.number === currentStep);\n }\n return steps.findIndex((step) => step.id === currentStep);\n }, [steps, currentStep]);\n\n const activeStepNumber = useMemo(() => {\n return currentStepIndex >= 0 ? steps[currentStepIndex].number : 1;\n }, [currentStepIndex, steps]);\n\n const getStepStatus = (stepNumber: number): StepStatus => {\n if (stepNumber < activeStepNumber) return 'completed';\n if (stepNumber === activeStepNumber) return 'active';\n return 'inactive';\n };\n\n const getCircleClass = (stepNumber: number) => {\n const status = getStepStatus(stepNumber);\n const baseClass = styles.stepCircle;\n if (status === 'active') return `${baseClass} ${styles.stepCircleActive}`;\n if (status === 'completed') return `${baseClass} ${styles.stepCircleCompleted}`;\n return `${baseClass} ${styles.stepCircleInactive}`;\n };\n\n const getConnectorClass = (currentStepNumber: number) => {\n if (currentStepNumber < activeStepNumber) {\n return `${styles.stepConnector} ${styles.stepConnectorCompleted}`;\n }\n return styles.stepConnector;\n };\n\n return (\n <div className={mergeClasses(styles.stepperWrapper, className)}>\n <div className={styles.stepperContainer}>\n {/* Background SVG */}\n <img\n src=\"/assets/images/reservation/stepper_bg.svg\"\n alt=\"Stepper Background\"\n className={styles.stepperBackground}\n />\n\n {/* Step circles row */}\n <div className={styles.stepsRow}>\n {steps.map((step, index) => (\n <Fragment key={step.id}>\n <div className={styles.stepCircleWrapper}>\n {getStepStatus(step.number) === 'active' ? (\n <img\n src=\"/assets/images/reservation/ferry_step.svg\"\n alt=\"Ferry\"\n className={styles.ferryIcon}\n />\n ) : (\n <div className={getCircleClass(step.number)}>{step.number}</div>\n )}\n <span className={styles.stepLabel}>{step.label}</span>\n </div>\n {/* Add connector line between steps (except after last step) */}\n {index < steps.length - 1 && (\n <div className={getConnectorClass(step.number)} />\n )}\n </Fragment>\n ))}\n </div>\n </div>\n </div>\n );\n};\n\n","import React from 'react';\nimport {\n Card,\n Title3,\n Subtitle2,\n Body1,\n makeStyles,\n tokens,\n} from '@fluentui/react-components';\n\nimport type { CardOrdererInfoProps } from './CardOrdererInfo.types';\nimport tokensV2 from '../../constants/generated/tokensV2';\n\nconst useStyles = makeStyles({\n card: {\n padding: '1.5rem',\n borderRadius: tokens.borderRadiusXLarge,\n boxShadow: tokens.shadow4,\n zIndex: 3,\n },\n container: {\n display: 'flex',\n justifyContent: 'space-between',\n marginTop: '1rem',\n },\n fieldGroup: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0.25rem',\n },\n label: {\n color: tokens.colorNeutralForeground2,\n },\n value: {\n color: tokensV2.lightModeColors.Neutral_Foreground_Disabled_Rest,\n },\n});\n\nexport const CardOrdererInfo: React.FC<CardOrdererInfoProps> = ({\n orderer,\n className,\n}) => {\n const styles = useStyles();\n\n return (\n <Card className={className || styles.card}>\n <Title3>Informasi Pemesan</Title3>\n\n <div className={styles.container}>\n <div className={styles.fieldGroup}>\n <Subtitle2 className={styles.label}>Nama Pemesan</Subtitle2>\n <Body1 className={styles.value}>{orderer?.name || '-'}</Body1>\n </div>\n\n <div className={styles.fieldGroup}>\n <Subtitle2 className={styles.label}>Nomor Handphone</Subtitle2>\n <Body1 className={styles.value}>{orderer?.phoneNumber || '-'}</Body1>\n </div>\n\n <div className={styles.fieldGroup}>\n <Subtitle2 className={styles.label}>Email</Subtitle2>\n <Body1 className={styles.value}>{orderer?.email || '-'}</Body1>\n </div>\n </div>\n </Card>\n );\n};\n","import React from 'react';\nimport {\n Button,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n Input,\n makeStyles,\n Subtitle1,\n Subtitle2,\n Switch,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\n\nimport type { ModalListPassengerProps } from './ModalListPassenger.types';\n\nconst useStyles = makeStyles({\n dialogSurface: {\n maxWidth: '600px',\n width: '100%',\n borderRadius: tokens.borderRadiusXLarge,\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n gap: '1.5rem',\n padding: '1.5rem',\n },\n searchInput: {\n width: '100%',\n },\n passengerList: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5rem',\n },\n passengerItem: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '1rem',\n borderRadius: tokens.borderRadiusMedium,\n border: `1px solid ${tokens.colorNeutralStroke2}`,\n cursor: 'pointer',\n transition: 'all 0.2s ease',\n ':hover': {\n backgroundColor: tokens.colorNeutralBackground1Hover,\n },\n },\n actions: {\n display: 'flex',\n gap: '1rem',\n justifyContent: 'flex-end',\n marginTop: '1rem',\n },\n});\n\n/**\n * ModalListPassenger - A reusable modal component for selecting passengers from a list\n * \n * This component provides a modal interface for selecting passengers with features like:\n * - Search functionality\n * - \"Sama Dengan Pemesan\" toggle\n * - Edit passenger option\n * - Add new passenger option\n * \n * @example\n * ```tsx\n * <ModalListPassenger\n * open={isOpen}\n * onClose={() => setIsOpen(false)}\n * passengers={passengerList}\n * searchQuery={search}\n * onSearchChange={setSearch}\n * onSelectPassenger={handleSelect}\n * onEditPassenger={handleEdit}\n * onAddPassenger={handleAdd}\n * sameAsOrderer={sameAsOrderer}\n * onSameAsOrdererChange={setSameAsOrderer}\n * />\n * ```\n */\nexport const ModalListPassenger: React.FC<ModalListPassengerProps> = ({\n open,\n onClose,\n title = 'Detail Penumpang',\n passengers,\n searchQuery,\n onSearchChange,\n onSelectPassenger,\n onEditPassenger,\n onAddPassenger,\n sameAsOrderer,\n onSameAsOrdererChange,\n}) => {\n const styles = useStyles();\n\n const handleClose = () => {\n onClose();\n onSearchChange('');\n };\n\n const handleSelectPassenger = (passenger: any) => {\n onSelectPassenger(passenger);\n handleClose();\n };\n\n // Filter passengers by search query\n const filteredPassengers = passengers.filter((passenger) => {\n if (!searchQuery) return true;\n const query = searchQuery.toLowerCase();\n return (\n passenger.name?.toLowerCase().includes(query) ||\n passenger.category?.toLowerCase().includes(query)\n );\n });\n\n return (\n <Dialog\n open={open}\n onOpenChange={(_, data) => {\n if (!data.open) {\n handleClose();\n }\n }}\n >\n <DialogSurface className={styles.dialogSurface}>\n <DialogBody>\n <DialogTitle\n action={\n <Switch\n label=\"Sama Dengan Pemesan\"\n checked={sameAsOrderer}\n onChange={(_, data) => onSameAsOrdererChange(data.checked)}\n />\n }\n >\n <Subtitle1>{title}</Subtitle1>\n </DialogTitle>\n <DialogContent className={styles.content}>\n <Input\n className={styles.searchInput}\n contentBefore={<Icon icon=\"fluent:search-24-regular\" />}\n placeholder=\"Cari Penumpang\"\n value={searchQuery}\n onChange={(_, data) => onSearchChange(data.value)}\n size=\"large\"\n />\n\n <div className={styles.passengerList}>\n {filteredPassengers.map((passenger, index) => (\n <div\n key={passenger.id || `passenger-${index}`}\n className={styles.passengerItem}\n onClick={() => handleSelectPassenger(passenger)}\n role=\"button\"\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n handleSelectPassenger(passenger);\n }\n }}\n >\n <div>\n <Subtitle2>\n {passenger.name} ({passenger.category})\n </Subtitle2>\n </div>\n <Icon\n icon=\"fluent:chevron-right-24-regular\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n onEditPassenger(passenger);\n }}\n width={20}\n height={20}\n />\n </div>\n ))}\n </div>\n\n <div className={styles.actions}>\n <Button\n appearance=\"primary\"\n size=\"large\"\n shape=\"circular\"\n onClick={onAddPassenger}\n >\n Tambah Penumpang\n </Button>\n <Button\n appearance=\"secondary\"\n size=\"large\"\n shape=\"circular\"\n onClick={handleClose}\n >\n Batal\n </Button>\n </div>\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n\nexport default ModalListPassenger;\n","import React, { useEffect } from 'react';\nimport {\n Button,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n Divider,\n makeStyles,\n Subtitle1,\n tokens,\n} from '@fluentui/react-components';\nimport { useForm } from 'react-hook-form';\n\nimport { InputDynamic } from '../InputDynamic';\nimport type { ModalPassengerFormProps, PassengerFormData } from './ModalPassengerForm.types';\n\nconst useStyles = makeStyles({\n dialogSurface: {\n maxWidth: '600px',\n width: '100%',\n borderRadius: tokens.borderRadiusXLarge,\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n gap: '1.5rem',\n },\n actions: {\n display: 'flex',\n gap: '1rem',\n justifyContent: 'flex-end',\n marginTop: '1rem',\n },\n});\n\n/**\n * ModalPassengerForm - A reusable modal component for adding/editing passenger details\n * \n * This component provides a form interface for passenger information with features like:\n * - Different fields for adult vs child/infant passengers\n * - Form validation\n * - Support for add and edit modes\n * \n * @example\n * ```tsx\n * <ModalPassengerForm\n * open={isOpen}\n * onClose={() => setIsOpen(false)}\n * onSubmit={handleSubmit}\n * defaultValues={passengerData}\n * isAdultForm={true}\n * titleOptions={titleOpts}\n * idTypeOptions={idTypeOpts}\n * cityOptions={cityOpts}\n * ticketClassOptions={ticketClassOpts}\n * />\n * ```\n */\nexport const ModalPassengerForm: React.FC<ModalPassengerFormProps> = ({\n open,\n onClose,\n title = 'Detail Penumpang',\n onSubmit,\n defaultValues,\n isAdultForm = true,\n titleOptions,\n idTypeOptions,\n cityOptions,\n ticketClassOptions,\n}) => {\n const styles = useStyles();\n\n const { control, handleSubmit, reset } = useForm<PassengerFormData>({\n defaultValues,\n });\n\n // Reset form when defaultValues change\n useEffect(() => {\n reset(defaultValues);\n }, [defaultValues, reset]);\n\n const handleFormSubmit = (data: PassengerFormData) => {\n onSubmit(data);\n reset();\n };\n\n const handleClose = () => {\n onClose();\n reset();\n };\n\n return (\n <Dialog\n open={open}\n onOpenChange={(_, data) => {\n if (!data.open) {\n handleClose();\n }\n }}\n >\n <DialogSurface className={styles.dialogSurface}>\n <DialogBody>\n <DialogTitle>\n <Subtitle1>{title}</Subtitle1>\n </DialogTitle>\n <DialogContent className={styles.content}>\n <form onSubmit={handleSubmit(handleFormSubmit)}>\n {/* Title Field */}\n <InputDynamic\n name=\"title\"\n control={control}\n type=\"select\"\n label=\"Title\"\n placeholder=\"Pilih\"\n options={titleOptions}\n size=\"large\"\n required\n validationRules={{\n required: 'Title harus dipilih',\n }}\n />\n\n {/* Nama Lengkap Field */}\n <InputDynamic\n name=\"name\"\n control={control}\n type=\"text\"\n label=\"Nama Lengkap\"\n placeholder=\"Masukkan Nama\"\n size=\"large\"\n required\n validationRules={{\n required: 'Nama lengkap harus diisi',\n minLength: {\n value: 3,\n message: 'Nama minimal 3 karakter',\n },\n }}\n />\n\n {/* Conditional Fields Based on Passenger Type */}\n {isAdultForm ? (\n <>\n {/* Jenis ID Field */}\n <InputDynamic\n name=\"idType\"\n control={control}\n type=\"select\"\n label=\"Jenis ID\"\n placeholder=\"Pilih\"\n options={idTypeOptions}\n size=\"large\"\n required\n validationRules={{\n required: 'Jenis ID harus dipilih',\n }}\n />\n\n {/* Nomor Identitas Field */}\n <InputDynamic\n name=\"idNumber\"\n control={control}\n type=\"text\"\n label=\"Nomor Identitas\"\n placeholder=\"Masukkan Nomor Identitas\"\n size=\"large\"\n required\n validationRules={{\n required: 'Nomor identitas harus diisi',\n minLength: {\n value: 6,\n message: 'Nomor identitas minimal 6 karakter',\n },\n }}\n />\n\n {/* Usia Field */}\n <InputDynamic\n name=\"age\"\n control={control}\n type=\"number\"\n label=\"Usia\"\n placeholder=\"Masukkan Usia\"\n size=\"large\"\n required\n validationRules={{\n required: 'Usia harus diisi',\n min: {\n value: 1,\n message: 'Usia minimal 1 tahun',\n },\n max: {\n value: 150,\n message: 'Usia maksimal 150 tahun',\n },\n }}\n />\n </>\n ) : (\n <>\n {/* Tanggal Lahir Field */}\n <InputDynamic\n name=\"date\"\n control={control}\n type=\"date\"\n label=\"Tanggal Lahir\"\n placeholder=\"Masukkan Tanggal Lahir\"\n size=\"large\"\n required\n validationRules={{\n required: 'Tanggal lahir harus diisi',\n }}\n />\n </>\n )}\n\n {/* Kota Kabupaten Field */}\n <InputDynamic\n name=\"cityId\"\n control={control}\n type=\"select\"\n label=\"Kota Kabupaten\"\n options={cityOptions}\n placeholder=\"Masukkan Nama Kota/Kabupaten\"\n size=\"large\"\n required\n validationRules={{\n required: 'Kota/Kabupaten harus diisi',\n }}\n />\n <br />\n <Divider />\n <br />\n\n {/* Kelas Penumpang Field */}\n <InputDynamic\n name=\"ticketClass\"\n control={control}\n type=\"radiobutton\"\n label=\"Kelas penumpang\"\n options={ticketClassOptions}\n required\n disabled\n />\n\n <div className={styles.actions}>\n <Button appearance=\"primary\" size=\"large\" shape=\"circular\" type=\"submit\">\n Simpan\n </Button>\n <Button\n appearance=\"secondary\"\n size=\"large\"\n shape=\"circular\"\n type=\"button\"\n onClick={handleClose}\n >\n Batal\n </Button>\n </div>\n </form>\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n\nexport default ModalPassengerForm;\n","import { tokens } from '@fluentui/react-components';\n\nexport interface BadgeConfig {\n color: string;\n icon: string;\n}\n\n/**\n * Get badge configuration based on ticket class\n * @param ticketClass - The ticket class (ECONOMY, BUSINESS, EXECUTIVE)\n * @returns Badge configuration with color and icon path\n */\nexport const getBadgeConfig = (ticketClass?: string): BadgeConfig => {\n const normalizedClass = ticketClass?.toUpperCase();\n switch (normalizedClass) {\n case 'EKONOMI':\n case 'ECONOMY':\n return {\n color: '#A74109',\n icon: '/assets/images/class/shield_badge_ekonomi.svg',\n };\n case 'BISNIS':\n case 'BUSINESS':\n return {\n color: '#859599',\n icon: '/assets/images/class/ribbon_badge_bisnis.svg',\n };\n case 'EKSEKUTIF':\n case 'EXECUTIVE':\n return {\n color: '#C19C00',\n icon: '/assets/images/class/crown_badge_eksekutif.svg',\n };\n default:\n return {\n color: tokens.colorNeutralBackground3,\n icon: '',\n };\n }\n};\n","import React from 'react';\nimport {\n Card,\n Title3,\n Subtitle2,\n makeStyles,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\n\nimport type { CardPassengerListProps } from './CardPassengerList.types';\nimport { getBadgeConfig } from '../../utils/badge';\n\nconst useStyles = makeStyles({\n card: {\n padding: '1.5rem',\n borderRadius: tokens.borderRadiusXLarge,\n boxShadow: tokens.shadow4,\n zIndex: 3,\n },\n headerContainer: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: '1rem',\n gap: '1rem',\n },\n headerTitle: {\n whiteSpace: 'nowrap',\n },\n headerLine: {\n height: '1px',\n flexGrow: 1,\n backgroundColor: tokens.colorNeutralStroke2,\n },\n passengerList: {\n display: 'flex',\n flexDirection: 'column',\n },\n passengerItem: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '1rem 0',\n cursor: 'pointer',\n borderBottom: `1px solid ${tokens.colorNeutralStroke2}`,\n ':last-child': {\n borderBottom: 'none',\n },\n ':hover': {\n backgroundColor: tokens.colorNeutralBackground1Hover,\n paddingLeft: '0.5rem',\n paddingRight: '0.5rem',\n margin: '0 -0.5rem',\n },\n transition: 'all 0.2s ease',\n },\n passengerInfo: {\n display: 'flex',\n alignItems: 'center',\n gap: '0.75rem',\n },\n passengerText: {\n color: '#00B8D4',\n },\n badgeContainer: {\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n },\n badgeContent: {\n display: 'flex',\n alignItems: 'center',\n padding: '0.25rem 0.75rem 0.25rem 1.5rem',\n borderTopRightRadius: '9999px',\n borderBottomRightRadius: '9999px',\n color: 'white',\n fontSize: tokens.fontSizeBase200,\n fontWeight: tokens.fontWeightMedium,\n marginLeft: '-14px',\n minHeight: '24px',\n },\n badgeIcon: {\n width: '28px',\n height: '32px',\n zIndex: 1,\n filter: 'drop-shadow(0px 2px 2px rgba(0, 0, 0, 0.1))',\n },\n});\n\n/**\n * CardPassengerList - A reusable card component for displaying passenger list\n * \n * This component provides a card interface for showing passengers with features like:\n * - Header with title and divider line\n * - List of passengers with service class badges\n * - Clickable passenger items\n * - Badge with overlapping icon design\n * \n * @example\n * ```tsx\n * <CardPassengerList\n * title=\"Data Penumpang\"\n * passengers={passengerList}\n * onPassengerClick={handleClick}\n * />\n * ```\n */\nexport const CardPassengerList: React.FC<CardPassengerListProps> = ({\n title = 'Data Penumpang',\n passengers,\n onPassengerClick,\n className,\n}) => {\n const styles = useStyles();\n\n return (\n <Card className={className || styles.card}>\n <div className={styles.headerContainer}>\n <Title3 className={styles.headerTitle}>{title}</Title3>\n <div className={styles.headerLine} />\n </div>\n\n <div className={styles.passengerList}>\n {passengers.map((passenger, index) => {\n const badgeConfig = getBadgeConfig(passenger.serviceName);\n \n return (\n <div\n key={passenger.id || `passenger-${index}`}\n className={styles.passengerItem}\n onClick={() => onPassengerClick(passenger)}\n role=\"button\"\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onPassengerClick(passenger);\n }\n }}\n >\n <div className={styles.passengerInfo}>\n <Subtitle2 className={styles.passengerText}>\n {passenger.name || `Penumpang ${index + 1}`} ({passenger.passengerType})\n </Subtitle2>\n </div>\n\n <div style={{ display: 'flex', alignItems: 'center', gap: '1rem' }}>\n <div className={styles.badgeContainer}>\n {badgeConfig.icon && (\n <img\n src={badgeConfig.icon}\n alt={passenger.serviceName}\n className={styles.badgeIcon}\n />\n )}\n <div\n className={styles.badgeContent}\n style={{ backgroundColor: badgeConfig.color }}\n >\n {passenger.serviceName}\n </div>\n </div>\n <Icon icon=\"fluent:chevron-right-24-regular\" width={20} height={20} />\n </div>\n </div>\n );\n })}\n </div>\n </Card>\n );\n};\n\nexport default CardPassengerList;\n","import React from 'react';\nimport {\n Body1,\n Body1Strong,\n Card,\n Divider,\n makeStyles,\n Radio,\n RadioGroup,\n Subtitle1,\n tokens,\n} from '@fluentui/react-components';\nimport { CardVehicleDetailProps } from './CardVehicleDetail.types';\nimport { InputDynamic } from '../InputDynamic';\n\nconst useStyles = makeStyles({\n card: {\n padding: '1.5rem',\n borderRadius: tokens.borderRadiusXLarge,\n boxShadow: tokens.shadow4,\n zIndex: 3,\n width: '100%',\n },\n vehicleType: {\n display: 'flex',\n alignItems: 'center',\n gap: '0.75rem',\n marginTop: '1rem',\n marginBottom: '1.5rem',\n },\n radioGroup: {\n marginTop: '1rem',\n },\n question: {\n color: tokens.colorNeutralForeground1,\n marginBottom: '0.5rem',\n },\n headerTitle: {\n color: tokens.colorNeutralForeground3,\n fontWeight: '500',\n width: '250px',\n }\n});\n\nexport const CardVehicleDetail: React.FC<CardVehicleDetailProps> = ({\n serviceTitle,\n serviceImage,\n control,\n vehicleNumberName = 'vehicleNumber',\n showLoadOption = false,\n hasLoad,\n onHasLoadChange,\n}) => {\n const styles = useStyles();\n\n return (\n <Card className={styles.card}>\n <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>\n <Subtitle1 className={styles.headerTitle}>\n Detail Kendaraan\n </Subtitle1>\n <div style={{ flex: 1, marginLeft: '1rem' }}>\n <Divider />\n </div>\n </div>\n <div className={styles.vehicleType}>\n <img\n alt={serviceTitle}\n src={serviceImage}\n height={75}\n width={75}\n style={{ objectFit: 'contain' }}\n />\n <Body1Strong>{serviceTitle}</Body1Strong>\n </div>\n\n <div style={{ display: 'flex', flexDirection: 'column', gap: '0.25rem' }}>\n <Body1 style={{ color: tokens.colorNeutralForeground1 }}>\n Nomor Kendaraan\n </Body1>\n <InputDynamic\n control={control}\n name={vehicleNumberName}\n placeholder=\"Contoh: B1234CD\"\n type=\"text\"\n />\n </div>\n\n {showLoadOption && (\n <div className={styles.radioGroup}>\n <Body1 className={styles.question}>Apakah kendaraan membawa muatan?</Body1>\n <RadioGroup\n value={hasLoad}\n onChange={(_, data) => onHasLoadChange?.(data.value as 'true' | 'false')}\n layout=\"horizontal\"\n >\n <Radio value=\"true\" label=\"Ya\" />\n <Radio value=\"false\" label=\"Tidak\" />\n </RadioGroup>\n </div>\n )}\n </Card>\n );\n};\n","import React from 'react';\nimport {\n Accordion,\n AccordionHeader,\n AccordionItem,\n AccordionPanel,\n Body1,\n Body1Strong,\n Button,\n Caption1,\n Card,\n Divider,\n makeStyles,\n Radio,\n RadioGroup,\n shorthands,\n Title3,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport { Col, Row } from 'react-grid-system';\nimport { Controller } from 'react-hook-form';\nimport { InputDynamic } from '../InputDynamic';\nimport { CardVehicleOwnerFormProps } from './CardVehicleOwnerForm.types';\n\nconst useStyles = makeStyles({\n card: {\n padding: '1.5rem',\n borderRadius: tokens.borderRadiusXLarge,\n boxShadow: tokens.shadow4,\n zIndex: 3,\n marginTop: '1.5rem',\n },\n header: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: '1rem',\n },\n accordion: {\n ...shorthands.border('1px', 'solid', tokens.colorNeutralStroke1),\n borderRadius: tokens.borderRadiusLarge,\n marginTop: '1rem',\n },\n accordionHeader: {\n backgroundColor: tokens.colorNeutralBackground2,\n },\n form: {\n display: 'flex',\n flexDirection: 'column',\n gap: '1rem',\n padding: '1rem',\n },\n label: {\n color: tokens.colorNeutralForeground2,\n marginBottom: '0.25rem',\n display: 'block',\n },\n link: {\n color: tokens.colorBrandForeground1,\n textDecorationLine: 'none',\n ':hover': {\n textDecorationLine: 'underline',\n },\n },\n});\n\nexport const CardVehicleOwnerForm: React.FC<CardVehicleOwnerFormProps> = ({\n owners,\n hasLoad,\n control,\n watch,\n setValue,\n getValues,\n onAddOwner,\n onDeleteOwner,\n onUpdateOwner,\n onAddCargo,\n onDeleteCargo,\n onUpdateCargoQuantity,\n companyOptions = [],\n cityOptions = [],\n}) => {\n const styles = useStyles();\n\n return (\n <Card className={styles.card}>\n <div className={styles.header}>\n <div style={{ display: 'flex', alignItems: 'center', flex: 1 }}>\n <Title3 style={{ marginRight: '1rem' }}>Informasi Pemilik & Muatan</Title3>\n <Divider style={{ flex: 1 }} />\n </div>\n <Button\n appearance=\"transparent\"\n icon={<Icon icon=\"fluent:add-24-regular\" />}\n style={{ color: tokens.colorNeutralForeground2 }}\n onClick={onAddOwner}\n >\n Tambah Pemilik\n </Button>\n </div>\n\n <Accordion collapsible defaultOpenItems={owners.map(o => String(o.id))} multiple>\n {owners.map((owner, index) => (\n <AccordionItem\n value={String(owner.id)}\n key={owner.id}\n className={styles.accordion}\n >\n <AccordionHeader className={styles.accordionHeader} expandIconPosition=\"end\">\n <div\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n }}\n >\n <Body1Strong>Informasi Pemilik {index + 1}</Body1Strong>\n {owners.length > 1 && (\n <Button\n appearance=\"transparent\"\n icon={<Icon icon=\"fluent:delete-24-regular\" />}\n onClick={e => {\n e.stopPropagation();\n onDeleteOwner(owner.id);\n }}\n style={{ color: tokens.colorPaletteRedForeground1 }}\n />\n )}\n </div>\n </AccordionHeader>\n <AccordionPanel>\n <div className={styles.form}>\n <Row>\n <Col lg={12}>\n <Body1 className={styles.label}>Nama Pengirim</Body1>\n </Col>\n <Col lg={6}>\n <div style={{ display: 'flex', gap: '2rem', marginBottom: '0.5rem' }}>\n <RadioGroup\n layout=\"horizontal\"\n value={owner.senderType}\n onChange={(_, data) =>\n onUpdateOwner(owner.id, {\n senderType: data.value as 'Perusahaan' | 'Perseorangan',\n })\n }\n >\n <Radio value=\"Perusahaan\" label=\"Perusahaan\" />\n <Radio value=\"Perseorangan\" label=\"Perseorangan\" />\n </RadioGroup>\n </div>\n <InputDynamic\n control={control}\n name={`owners.${index}.senderName`}\n placeholder={\n owner.senderType === 'Perusahaan'\n ? 'Pilih Nama Perusahaan'\n : 'Masukkan Nama Pengirim'\n }\n size=\"large\"\n type={owner.senderType === 'Perusahaan' ? 'select' : 'text'}\n options={owner.senderType === 'Perusahaan' ? companyOptions : []}\n />\n </Col>\n <Col lg={6}>\n <div style={{ height: '1rem' }} />\n <Body1 className={styles.label}>\n Data Estimasi Berat Muatan dan Kendaraan (Ton){' '}\n <span style={{ color: 'red' }}>*</span>\n </Body1>\n <InputDynamic\n control={control}\n name={`owners.${index}.estimatedWeight`}\n placeholder=\"Masukkan Angka\"\n size=\"large\"\n type=\"number\"\n />\n </Col>\n </Row>\n <Row>\n <Col>\n <Body1 className={styles.label}>Kota Asal</Body1>\n <InputDynamic\n control={control}\n name={`looseCargoOwners.${index}.originCity`}\n placeholder=\"Pilih\"\n type=\"select\"\n options={cityOptions}\n />\n </Col>\n <Col>\n <Body1 className={styles.label}>Kota Tujuan</Body1>\n <InputDynamic\n control={control}\n name={`looseCargoOwners.${index}.destinationCity`}\n placeholder=\"Pilih\"\n type=\"select\"\n options={cityOptions}\n />\n </Col>\n </Row>\n\n {hasLoad && (\n <>\n <Row>\n <Col>\n <Body1 className={styles.label}>\n Nama Perusahaan Pemilik Barang <span style={{ color: 'red' }}>*</span>\n </Body1>\n <div style={{ display: 'flex', gap: '2rem', marginBottom: '0.5rem' }}>\n <RadioGroup\n layout=\"horizontal\"\n value={owner.cargoOwnerType || 'Perusahaan'}\n onChange={(_, data) =>\n onUpdateOwner(owner.id, {\n cargoOwnerType: data.value as 'Perusahaan' | 'Perseorangan',\n })\n }\n >\n <Radio value=\"Perusahaan\" label=\"Perusahaan\" />\n <Radio value=\"Perseorangan\" label=\"Perseorangan\" />\n </RadioGroup>\n </div>\n <InputDynamic\n control={control}\n name={`looseCargoOwners.${index}.cargoOwnerName`}\n placeholder={\n owner.cargoOwnerType === 'Perusahaan'\n ? 'Pilih Nama Perusahaan Pemilik Barang'\n : 'Masukkan Nama Pemilik Barang'\n }\n size=\"large\"\n type={owner.cargoOwnerType === 'Perusahaan' ? 'select' : 'text'}\n options={owner.cargoOwnerType === 'Perusahaan' ? companyOptions : []}\n />\n <Caption1\n style={{\n color: tokens.colorNeutralForeground3,\n marginTop: '0.25rem',\n }}\n >\n Apabila nama perusahaan belum tersedia dapat memilih\n "Lainnya" dan silakan isi nama perusahaan\n </Caption1>\n </Col>\n\n <Col>\n <Body1 className={styles.label}>\n Nama Perusahaan Logistik <span style={{ color: 'red' }}>*</span>\n </Body1>\n <div style={{ display: 'flex', gap: '2rem', marginBottom: '0.5rem' }}>\n <RadioGroup\n layout=\"horizontal\"\n value={owner.logisticsCompanyType || 'Perseorangan'}\n onChange={(_, data) =>\n onUpdateOwner(owner.id, {\n logisticsCompanyType: data.value as\n | 'Perusahaan'\n | 'Perseorangan',\n })\n }\n >\n <Radio value=\"Perusahaan\" label=\"Perusahaan\" />\n <Radio value=\"Perseorangan\" label=\"Perseorangan\" />\n </RadioGroup>\n </div>\n <InputDynamic\n control={control}\n name={`looseCargoOwners.${index}.logisticsCompanyName`}\n placeholder={\n owner.logisticsCompanyType === 'Perusahaan'\n ? 'Pilih Nama Perusahaan Logistik'\n : 'Masukkan Nama Logistik'\n }\n size=\"large\"\n type={owner.logisticsCompanyType === 'Perusahaan' ? 'select' : 'text'}\n options={\n owner.logisticsCompanyType === 'Perusahaan' ? companyOptions : []\n }\n />\n <Caption1\n style={{\n color: tokens.colorNeutralForeground3,\n marginTop: '0.25rem',\n }}\n >\n Apabila nama perusahaan belum tersedia dapat memilih\n "Lainnya" dan silakan isi nama perusahaan\n </Caption1>\n </Col>\n </Row>\n\n <Row>\n <Col xs={12} md={12} lg={12}>\n <Body1 className={styles.label}>\n Nama Perusahaan Penerima Barang\n </Body1>\n </Col>\n <Col>\n <RadioGroup\n layout=\"horizontal\"\n value={owner.cargoReceiverType || 'Perusahaan'}\n onChange={(_, data) =>\n onUpdateOwner(owner.id, {\n cargoReceiverType: data.value as\n | 'Perusahaan'\n | 'Perseorangan',\n })\n }\n >\n <Radio value=\"Perusahaan\" label=\"Perusahaan\" />\n <Radio value=\"Perseorangan\" label=\"Perseorangan\" />\n </RadioGroup>\n <InputDynamic\n control={control}\n name={`looseCargoOwners.${index}.cargoReceiverName`}\n placeholder={\n owner.cargoReceiverType === 'Perusahaan'\n ? 'Pilih Nama Perusahaan Penerima Barang'\n : 'Masukkan Nama Penerima Barang'\n }\n size=\"large\"\n type={owner.cargoReceiverType === 'Perusahaan' ? 'select' : 'text'}\n options={owner.cargoReceiverType === 'Perusahaan' ? companyOptions : []}\n />\n <Caption1\n style={{\n color: tokens.colorNeutralForeground3,\n marginTop: '0.25rem',\n }}\n >\n Apabila nama perusahaan belum tersedia dapat memilih\n "Lainnya" dan silakan isi nama perusahaan\n </Caption1>\n </Col>\n <Col>\n <div style={{ height: '.5rem' }} />\n <Body1 className={styles.label}>\n Berat Muatan dan Kendaraan (Ton){' '}\n <span style={{ color: 'red' }}>*</span>\n </Body1>\n <InputDynamic\n control={control}\n name={`looseCargoOwners.${index}.cargoWeight`}\n placeholder=\"Masukkan Angka\"\n type=\"number\"\n size=\"large\"\n />\n </Col>\n </Row>\n <Row>\n <Col xs={12}>\n <Body1 className={styles.label}>Daftar Muatan</Body1>\n </Col>\n </Row>\n <Row>\n <Col xs={12}>\n <Accordion\n collapsible\n defaultOpenItems={\n owner.cargoItems?.map(cargo => `cargo-${cargo.id}`) || []\n }\n multiple\n >\n {owner.cargoItems?.map((cargo, cargoIndex) => (\n <AccordionItem\n value={`cargo-${cargo.id}`}\n key={cargo.id}\n className={styles.accordion}\n >\n <AccordionHeader\n className={styles.accordionHeader}\n expandIconPosition=\"end\"\n >\n <div\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n }}\n >\n <Body1Strong>Muatan {cargoIndex + 1}</Body1Strong>\n </div>\n </AccordionHeader>\n <AccordionPanel>\n <div className={styles.form}>\n <Row>\n <Col md={3}>\n <Body1 className={styles.label}>\n Data Komoditas <span style={{ color: 'red' }}>*</span>\n </Body1>\n <InputDynamic\n control={control}\n name={`looseCargoOwners.${index}.cargo.${cargoIndex}.commodity`}\n placeholder=\"Pilih\"\n type=\"select\"\n options={[]}\n />\n <Caption1\n style={{\n color: tokens.colorNeutralForeground3,\n marginTop: '0.25rem',\n }}\n >\n Pahami definisi, jenis dan contoh komoditas{' '}\n <a href=\"#\" className={styles.link}>\n disini\n </a>\n </Caption1>\n </Col>\n\n <Col md={3}>\n <Body1 className={styles.label}>\n Data Jenis Muatan{' '}\n <span style={{ color: 'red' }}>*</span>\n </Body1>\n <InputDynamic\n control={control}\n name={`looseCargoOwners.${index}.cargo.${cargoIndex}.cargoType`}\n placeholder=\"Pilih\"\n type=\"select\"\n options={[\n { value: 'karung', label: 'Karung' },\n { value: 'kg', label: 'Kg' },\n { value: 'ton', label: 'Ton' },\n { value: 'unit', label: 'Unit' },\n ]}\n />\n <Caption1\n style={{\n color: tokens.colorNeutralForeground3,\n marginTop: '0.25rem',\n }}\n >\n Apabila jenis muatan belum tersedia dapat memilih\n "Lainnya" dan silakan isi jenis muatannya.\n </Caption1>\n </Col>\n\n <Col md={3}>\n <Body1 className={styles.label}>Jumlah Muatan</Body1>\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n borderRadius: tokens.borderRadiusMedium,\n height: '40px',\n padding: '0 12px',\n backgroundColor: tokens.colorNeutralBackground1,\n }}\n >\n <div style={{ flex: 0.5 }} />\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '12px',\n }}\n >\n <Button\n appearance=\"transparent\"\n icon={\n <Icon\n icon=\"fluent:subtract-circle-24-regular\"\n style={{\n fontSize: '24px',\n color: tokens.colorNeutralForeground4,\n }}\n />\n }\n size=\"small\"\n onClick={() => {\n const currentVal =\n getValues(\n `looseCargoOwners.${index}.cargo.${cargoIndex}.quantity`,\n ) || 0;\n const currentQty = Number(currentVal);\n if (currentQty > 0) {\n const newVal = currentQty - 1;\n setValue(\n `looseCargoOwners.${index}.cargo.${cargoIndex}.quantity`,\n newVal,\n );\n onUpdateCargoQuantity(owner.id, cargo.id, newVal);\n }\n }}\n style={{ minWidth: '32px', padding: '0' }}\n />\n <div style={{ width: '40px' }}>\n <Controller\n name={`looseCargoOwners.${index}.cargo.${cargoIndex}.quantity`}\n control={control}\n render={({ field }) => (\n <input\n {...field}\n type=\"number\"\n style={{\n border: 'none',\n width: '100%',\n textAlign: 'center',\n outline: 'none',\n backgroundColor: 'transparent',\n color: tokens.colorNeutralForeground1,\n fontSize: tokens.fontSizeBase400,\n fontFamily: tokens.fontFamilyBase,\n }}\n onWheel={e =>\n (e.target as HTMLInputElement).blur()\n }\n />\n )}\n />\n </div>\n <Button\n appearance=\"transparent\"\n icon={\n <Icon\n icon=\"fluent:add-circle-24-regular\"\n style={{\n fontSize: '24px',\n color: tokens.colorBrandStroke1,\n }}\n />\n }\n size=\"small\"\n onClick={() => {\n const currentVal =\n getValues(\n `looseCargoOwners.${index}.cargo.${cargoIndex}.quantity`,\n ) || 0;\n const currentQty = Number(currentVal);\n const newVal = currentQty + 1;\n setValue(\n `looseCargoOwners.${index}.cargo.${cargoIndex}.quantity`,\n newVal,\n );\n onUpdateCargoQuantity(owner.id, cargo.id, newVal);\n }}\n style={{ minWidth: '32px', padding: '0' }}\n />\n </div>\n <div\n style={{\n flex: 1,\n textAlign: 'left',\n color: tokens.colorNeutralForeground1,\n fontSize: tokens.fontSizeBase300,\n paddingRight: '8px',\n }}\n >\n {(() => {\n const type = watch(\n `looseCargoOwners.${index}.cargo.${cargoIndex}.cargoType`,\n );\n if (type === 'karung') return 'Karung';\n if (type === 'kg') return 'Kg';\n if (type === 'ton') return 'Ton';\n if (type === 'unit') return 'Unit';\n return '';\n })()}\n </div>\n </div>\n </Col>\n\n <Col md={3}>\n <Body1 className={styles.label}>Harga</Body1>\n <InputDynamic\n control={control}\n name={`owners.${index}.price`}\n placeholder=\"Rp. 0\"\n disabled\n size=\"large\"\n type=\"text\"\n />\n </Col>\n </Row>\n\n <Row>\n <Col md={6}>\n <Body1 className={styles.label}>\n Data Jenis Industri{' '}\n <span style={{ color: 'red' }}>*</span>\n </Body1>\n <InputDynamic\n control={control}\n name={`looseCargoOwners.${index}.cargo.${cargoIndex}.industryType`}\n placeholder=\"Pilih\"\n type=\"select\"\n options={[]}\n />\n <Caption1\n style={{\n color: tokens.colorNeutralForeground3,\n marginTop: '0.25rem',\n }}\n >\n Apabila jenis industri belum tersedia dapat memilih\n "Lainnya" dan silakan isi jenis muatannya.\n </Caption1>\n </Col>\n\n <Col md={6}>\n <Body1 className={styles.label}>\n Kategori Muatan <span style={{ color: 'red' }}>*</span>\n </Body1>\n <InputDynamic\n control={control}\n name={`looseCargoOwners.${index}.cargo.${cargoIndex}.cargoCategory`}\n placeholder=\"Pilih\"\n type=\"select\"\n options={[]}\n />\n <Caption1\n style={{\n color: tokens.colorNeutralForeground3,\n marginTop: '0.25rem',\n }}\n >\n Pahami definisi, jenis dan contoh kategori muatan{' '}\n <a href=\"#\" className={styles.link}>\n disini\n </a>\n </Caption1>\n </Col>\n </Row>\n <Row>\n <Col>\n {(owner.cargoItems?.length || 0) > 1 && (\n <Button\n icon={<Icon icon=\"fluent:delete-24-regular\" />}\n onClick={e => {\n e.stopPropagation();\n onDeleteCargo(owner.id, cargo.id);\n }}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.stopPropagation();\n onDeleteCargo(owner.id, cargo.id);\n }\n }}\n size=\"medium\"\n shape=\"circular\"\n style={{\n border: `1px solid ${tokens.colorPaletteRedForeground1}`,\n color: tokens.colorPaletteRedForeground1,\n width: '100%',\n }}\n >\n Hapus Muatan\n </Button>\n )}\n </Col>\n </Row>\n </div>\n </AccordionPanel>\n </AccordionItem>\n ))}\n </Accordion>\n\n <Button\n appearance=\"secondary\"\n icon={<Icon icon=\"fluent:add-24-regular\" />}\n shape=\"circular\"\n style={{\n borderColor: tokens.colorBrandStroke1,\n color: tokens.colorBrandBackground,\n marginTop: '1rem',\n width: '100%',\n }}\n onClick={() => onAddCargo(owner.id)}\n >\n Tambah Muatan\n </Button>\n </Col>\n </Row>\n </>\n )}\n </div>\n </AccordionPanel>\n </AccordionItem>\n ))}\n </Accordion>\n </Card>\n );\n};\n","import React from 'react';\nimport {\n Badge,\n Body1,\n Body1Strong,\n Body1Stronger,\n Button,\n Caption2,\n Card,\n makeStyles,\n Subtitle1,\n Title3,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport { CardBookingTicketProps } from './CardBookingTicket.types';\n\nconst useStyles = makeStyles({\n container: {\n display: 'flex',\n flexDirection: 'column',\n gap: '2rem',\n },\n bookingDetail: {\n overflow: 'visible',\n borderRadius: tokens.borderRadiusXLarge,\n boxShadow: tokens.shadow4,\n },\n bookingDetailTop: {\n padding: '2rem',\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n boxShadow: 'none',\n borderTopLeftRadius: tokens.borderRadiusXLarge,\n borderTopRightRadius: tokens.borderRadiusXLarge,\n borderBottom: '0.7em dashed ' + tokens.colorNeutralBackground1Hover,\n overflow: 'visible',\n paddingBottom: '4rem',\n position: 'relative',\n },\n bookingDetailBottom: {\n padding: '2rem',\n paddingTop: '4rem',\n borderTopLeftRadius: 0,\n borderTopRightRadius: 0,\n boxShadow: 'none',\n borderBottomLeftRadius: tokens.borderRadiusXLarge,\n borderBottomRightRadius: tokens.borderRadiusXLarge,\n overflow: 'visible',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '1.5rem',\n },\n circularLeft: {\n position: 'absolute',\n width: '100px',\n height: '50px',\n borderRadius: '50%',\n backgroundColor: tokens.colorNeutralBackground1Hover,\n left: '-50px',\n bottom: '-30px',\n zIndex: 2,\n boxShadow: 'inset -3px 0px 1px rgba(0, 0, 0, 0.1)',\n },\n circularRight: {\n position: 'absolute',\n width: '100px',\n height: '50px',\n borderRadius: '50%',\n backgroundColor: tokens.colorNeutralBackground1Hover,\n right: '-50px',\n bottom: '-30px',\n zIndex: 2,\n boxShadow: 'inset 3px 0px 1px rgba(0, 0, 0, 0.1)',\n },\n headerBookingDetail: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n shipInfo: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: '1rem',\n },\n ticketInfo: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n gap: '0.5em',\n },\n ticketTime: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'start',\n gap: '0.5em',\n },\n ticketDuration: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '0.5rem',\n },\n totalPrice: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '1rem',\n width: '100%',\n },\n gapButton: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n gap: tokens.spacingHorizontalM,\n },\n priceText: {\n color: tokens.colorPaletteRedForeground1,\n },\n secondaryButton: {\n border: '1px solid ' + tokens.colorBrandStroke1,\n color: tokens.colorBrandBackground,\n width: '100%',\n }\n});\n\nexport const CardBookingTicket: React.FC<CardBookingTicketProps> = ({\n shipName = 'KMP PORTLINK',\n shipType = 'Water Taxi',\n shipTypeColor = 'success',\n departureDay = 'Kamis, 25 Sep',\n departureTime = '18:15',\n departureLocation = 'Merak, Banten',\n arrivalDay = 'Jumat, 26 Sep',\n arrivalTime = '19:25',\n arrivalLocation = 'Bakauheni, Lampung',\n duration = '1 jam 10 menit',\n totalPrice,\n reservationStep,\n paymentStep,\n onPriceDetailClick,\n onNext,\n onPrevious,\n className,\n}) => {\n const styles = useStyles();\n\n return (\n <div className={`${styles.container} ${className || ''}`}>\n <div className={styles.bookingDetail}>\n <Card className={styles.bookingDetailTop}>\n <Subtitle1>Booking Details</Subtitle1>\n <div className={styles.headerBookingDetail}>\n <div className={styles.shipInfo}>\n <img src=\"/assets/logo/asdp-default.svg\" width={81} height={54} alt=\"asdp\" />\n <Body1>{shipName}</Body1>\n </div>\n <Badge\n size=\"extra-large\"\n appearance=\"filled\"\n color={shipTypeColor}\n iconPosition=\"before\"\n shape=\"rounded\"\n icon={<Icon icon=\"fluent:info-24-regular\" />}\n >\n {shipType}\n </Badge>\n </div>\n <Body1Strong>Rute Perjalanan</Body1Strong>\n <div>\n <div className={styles.ticketInfo}>\n <div className={styles.ticketTime}>\n <Caption2>{departureDay}</Caption2>\n <Body1Stronger>{departureTime} WIB</Body1Stronger>\n <Caption2>{departureLocation}</Caption2>\n </div>\n <div className={styles.ticketDuration}>\n <Icon icon=\"fluent:vehicle-ship-24-regular\" />\n <Caption2>Estimasi {duration}</Caption2>\n </div>\n <div className={styles.ticketTime}>\n <Caption2>{arrivalDay}</Caption2>\n <Body1Stronger>{arrivalTime} WIB</Body1Stronger>\n <Caption2>{arrivalLocation}</Caption2>\n </div>\n </div>\n </div>\n <div className={styles.circularLeft} />\n <div className={styles.circularRight} />\n </Card>\n <Card className={styles.bookingDetailBottom}>\n <div className={styles.totalPrice}>\n <Subtitle1>Total Harga</Subtitle1>\n <Title3 className={styles.priceText}>\n IDR {totalPrice}\n </Title3>\n <Icon\n icon=\"fluent:chevron-down-24-filled\"\n onClick={onPriceDetailClick}\n style={{ cursor: 'pointer' }}\n />\n </div>\n <div className={styles.gapButton}>\n {!(paymentStep === 'pay') && (\n <Button\n appearance=\"primary\"\n onClick={onNext}\n shape=\"circular\"\n size=\"large\"\n style={{ width: '100%' }}\n icon={<Icon icon=\"fluent:chevron-right-20-regular\" />}\n iconPosition=\"after\"\n >\n Lanjutkan\n </Button>\n )}\n {['addon', 'meals', 'review', 'payment', 'eticket'].includes(reservationStep) &&\n !['pay'].includes(paymentStep) && (\n <Button\n appearance=\"secondary\"\n onClick={onPrevious}\n shape=\"circular\"\n size=\"large\"\n className={styles.secondaryButton}\n icon={<Icon icon=\"fluent:chevron-left-20-regular\" />}\n iconPosition=\"before\"\n >\n Sebelumnya\n </Button>\n )}\n </div>\n\n {paymentStep === 'pay' && (\n <div className={styles.gapButton}>\n <Button\n appearance=\"primary\"\n shape=\"circular\"\n size=\"large\"\n style={{ width: '100%' }}\n onClick={onNext}\n >\n Lihat Pemesanan\n </Button>\n <Button\n appearance=\"secondary\"\n shape=\"circular\"\n size=\"large\"\n className={styles.secondaryButton}\n onClick={onPrevious}\n >\n Ubah Metode Pembayaran\n </Button>\n </div>\n )}\n </Card>\n </div>\n </div>\n );\n};\n","import React from 'react';\nimport {\n Accordion,\n AccordionHeader,\n AccordionItem,\n AccordionPanel,\n Card,\n makeStyles,\n Subtitle1,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport { CardFAQProps } from './CardFAQ.types';\n\nconst useStyles = makeStyles({\n faqSection: {\n // marginTop: '2rem', // Let parent control spacing if needed, or keep consistent\n },\n faqCard: {\n padding: '2rem',\n borderRadius: tokens.borderRadiusXLarge,\n boxShadow: tokens.shadow4,\n },\n accordionItem: {\n borderBottom: `1px solid ${tokens.colorNeutralStroke2}`,\n padding: tokens.spacingVerticalS,\n },\n accordionHeader: {\n fontSize: tokens.fontSizeBase300,\n fontWeight: tokens.fontWeightBold,\n },\n});\n\nconst FAQ_ITEMS = [\n {\n value: '1',\n question: 'FAQ 1',\n answer:\n 'Lorem ipsum dolor, sit amet consectetur adipisicing elit. Minus saepe repudiandae dolore pariatur veniam! Aliquam nesciunt saepe, optio inventore fuga quam dignissimos possimus, dolorem alias, blanditiis veniam voluptatibus eaque ex?',\n },\n {\n value: '2',\n question: 'FAQ 2',\n answer:\n 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Quae dolor consequatur, sit facere ex, ullam quos natus sapiente nihil cum libero velit, labore necessitatibus rem? Tenetur omnis tempora alias totam.',\n },\n {\n value: '3',\n question: 'FAQ 3',\n answer:\n 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Recusandae officiis modi quaerat eum illo, consectetur aperiam atque? Corrupti cupiditate sequi iusto reiciendis dignissimos, eius, nihil temporibus eaque delectus, saepe ullam!',\n },\n {\n value: '4',\n question: 'FAQ 4',\n answer:\n 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sint maiores debitis, earum animi dolorum unde asperiores accusantium nemo consectetur nulla reiciendis eveniet pariatur autem rerum adipisci sequi officia vero ipsam!',\n },\n];\n\nexport const CardFAQ: React.FC<CardFAQProps> = ({ className }) => {\n const styles = useStyles();\n\n return (\n <Card className={styles.faqCard}>\n <Subtitle1>FAQ</Subtitle1>\n <Accordion collapsible>\n {FAQ_ITEMS.map((item) => (\n <AccordionItem key={item.value} value={item.value} className={styles.accordionItem}>\n <AccordionHeader className={styles.accordionHeader} expandIconPosition=\"end\">\n <Icon\n icon=\"fluent:question-circle-28-regular\"\n style={{ marginRight: '5px' }}\n />{' '}\n {item.question}\n </AccordionHeader>\n <AccordionPanel>{item.answer}</AccordionPanel>\n </AccordionItem>\n ))}\n </Accordion>\n </Card>\n );\n};\n","import React from 'react';\nimport {\n Body1,\n Body1Strong,\n Button,\n Caption1,\n Caption1Stronger,\n Card,\n Divider,\n makeStyles,\n Subtitle1,\n Subtitle2,\n Title3,\n Badge,\n shorthands,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport { AddRegular, DeleteRegular, SubtractRegular } from '@fluentui/react-icons';\nimport { CardAddonProps } from './CardAddon.types';\n\n// Use a subset of tokens or hardcoded values if tokens aren't available for everything\n// But try to stick to tokens.\n\nconst useStyles = makeStyles({\n card: {\n backgroundColor: tokens.colorNeutralBackground1,\n boxShadow: tokens.shadow4,\n ...shorthands.padding(tokens.spacingVerticalL, tokens.spacingHorizontalXXL),\n borderRadius: tokens.borderRadiusXLarge,\n zIndex: 3,\n },\n gapRow: {\n display: 'flex',\n flexDirection: 'column',\n rowGap: tokens.spacingVerticalXXL,\n },\n titleDivider: {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n },\n textTitle: {\n fontWeight: tokens.fontWeightRegular,\n whiteSpace: 'nowrap',\n marginRight: tokens.spacingHorizontalM,\n },\n sizeDivider: {\n flexGrow: 1,\n },\n card1: {\n display: 'flex',\n flexDirection: 'column',\n ...shorthands.padding(tokens.spacingHorizontalL, tokens.spacingVerticalL),\n rowGap: tokens.spacingHorizontalM,\n },\n horizontalContainer: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n itemFlexCard1: {\n display: 'flex',\n columnGap: tokens.spacingHorizontalM,\n alignItems: 'center',\n },\n textContainerCard1: {\n display: 'flex',\n flexDirection: 'column',\n },\n img: {\n objectFit: 'contain',\n },\n // Footer\n footerContainer: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n },\n footerColRight: {\n display: 'flex',\n alignItems: 'center',\n },\n detailToogle: {\n color: tokens.colorBrandForeground1,\n },\n // Assurance Styles\n badge: {\n ...shorthands.padding(tokens.spacingVerticalNone, tokens.spacingHorizontalL),\n backgroundColor: tokens.colorPaletteBlueBackground2, // Approximate for Shared_Dark_blue_Primary if not avail\n color: tokens.colorNeutralForegroundOnBrand, \n width: 'fit-content',\n },\n breakdownContainer: {\n display: 'flex',\n flexDirection: 'column',\n gap: tokens.spacingVerticalM,\n },\n breakdownRow: {\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n },\n // Meal Styles\n mealListContainer: {\n display: 'flex',\n flexDirection: 'column',\n rowGap: tokens.spacingVerticalXL,\n marginTop: tokens.spacingVerticalM,\n },\n mealItem: {\n display: 'flex',\n alignItems: 'flex-start',\n columnGap: tokens.spacingHorizontalL,\n gap: '12px',\n ...shorthands.padding(tokens.spacingVerticalS, 0),\n },\n mealImage: {\n borderRadius: tokens.borderRadiusMedium,\n objectFit: 'cover',\n flexShrink: 0,\n },\n mealContent: {\n display: 'flex',\n flexDirection: 'column',\n flexGrow: 1,\n rowGap: tokens.spacingVerticalXS,\n },\n mealDescription: {\n color: tokens.colorNeutralForeground3,\n display: '-webkit-box',\n WebkitLineClamp: '2',\n WebkitBoxOrient: 'vertical',\n overflow: 'hidden',\n },\n mealPriceInfo: {\n color: tokens.colorBrandBackground,\n },\n mealActions: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-end',\n rowGap: tokens.spacingVerticalM,\n flexShrink: 0,\n },\n qtySelector: {\n display: 'flex',\n alignItems: 'center',\n columnGap: tokens.spacingHorizontalM,\n },\n qtyButton: {\n minWidth: '32px',\n height: '32px',\n ...shorthands.padding(0),\n },\n deleteMealButton: {\n display: 'flex',\n alignItems: 'center',\n columnGap: tokens.spacingHorizontalS,\n color: tokens.colorPaletteRedForeground1,\n ...shorthands.border('1px', 'solid', tokens.colorPaletteRedForeground1),\n ...shorthands.padding(tokens.spacingVerticalXS, tokens.spacingHorizontalS),\n backgroundColor: 'transparent',\n cursor: 'pointer',\n fontSize: tokens.fontSizeBase300,\n ':hover': {\n backgroundColor: tokens.colorPaletteRedBackground1,\n },\n },\n totalContainer: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginTop: tokens.spacingVerticalL,\n paddingTop: tokens.spacingVerticalM,\n },\n});\n\nexport const CardAddon: React.FC<CardAddonProps> = ({\n title,\n itemTitle,\n itemSubtitle,\n iconUrl,\n description,\n rightAction,\n footerData,\n assuranceData,\n mealData,\n children,\n className,\n}) => {\n const styles = useStyles();\n\n return (\n <Card className={`${styles.card} ${className || ''}`}>\n <div className={styles.gapRow}>\n {/* Header */}\n <div className={styles.titleDivider}>\n <Title3 className={styles.textTitle}>{title}</Title3>\n <Divider className={styles.sizeDivider} />\n </div>\n\n {/* Content */}\n <div className={styles.card1}>\n {/* Top Row: Icon + Texts + RightAction */}\n <div className={styles.horizontalContainer}>\n <div className={styles.itemFlexCard1}>\n {iconUrl && (\n <img\n src={iconUrl}\n alt=\"icon\"\n width={81}\n height={56}\n className={styles.img}\n />\n )}\n <div className={styles.textContainerCard1}>\n <Subtitle2>{itemTitle}</Subtitle2>\n <Caption1>{itemSubtitle}</Caption1>\n </div>\n </div>\n {rightAction}\n </div>\n\n {/* Description */}\n {description && (\n <div style={{ paddingRight: '20%' }}>\n <Body1>{description}</Body1>\n </div>\n )}\n\n {/* Footer (Price + Button) */}\n {footerData && (\n <>\n {footerData.actionType === 'detail-link' && (\n <div className={styles.footerContainer}>\n <div>\n <Caption1>\n {footerData.priceLabel} <Caption1Stronger>Rp{footerData.price.toLocaleString('id-ID')}{footerData.priceUnit}</Caption1Stronger>\n </Caption1>\n </div>\n <div className={styles.footerColRight}>\n <Button\n appearance=\"transparent\"\n size=\"small\"\n style={{\n color: tokens.colorBrandForeground1,\n }}\n onClick={footerData.onActionClick}\n icon={<Icon icon=\"fluent:chevron-down-12-regular\" />}\n iconPosition=\"after\"\n >\n <Caption1 className={styles.detailToogle}>{footerData.actionLabel || 'Lihat detail'}</Caption1>\n </Button>\n </div>\n </div>\n )}\n </>\n )}\n\n {/* Assurance Breakdown */}\n {assuranceData && (\n <>\n <div style={{ width: '100%' }}>\n <Badge\n size=\"large\"\n appearance=\"filled\"\n icon={<Icon icon=\"fluent:ticket-diagonal-16-regular\" />}\n iconPosition=\"after\"\n className={styles.badge}\n style={{ backgroundColor: 'rgb(30, 57, 141)' }} // Hardcoded ASDP Blue for now to match tokens\n >\n {assuranceData.totalPassenger} Asuransi Penumpang\n </Badge>\n </div>\n <div className={styles.breakdownContainer}>\n {assuranceData.items.map((item, idx) => (\n <div key={idx} className={styles.breakdownRow}>\n <Body1>{item.label} ({item.priceDetails})</Body1>\n <Body1>Rp{item.totalPrice.toLocaleString('id-ID')}</Body1>\n </div>\n ))}\n {/* Assurance Total */}\n <div className={styles.breakdownRow}>\n <Subtitle2>Total Harga</Subtitle2>\n <Subtitle2>Rp{assuranceData.totalPrice.toLocaleString('id-ID')}</Subtitle2>\n </div>\n </div>\n </>\n )}\n\n {/* Meal List */}\n {mealData && (\n <>\n <div className={styles.mealListContainer}>\n {mealData.items.map((item) => (\n <div key={item.id} className={styles.mealItem}>\n <img\n src={item.image}\n alt={item.name}\n width={119}\n height={119}\n className={styles.mealImage}\n />\n <div className={styles.mealContent}>\n <Body1Strong>{item.name}</Body1Strong>\n <Caption1 className={styles.mealDescription}>{item.description}</Caption1>\n <Body1Strong className={styles.mealPriceInfo}>\n Rp{item.price.toLocaleString('id-ID')} x {item.quantity} = Rp{(item.price * item.quantity).toLocaleString('id-ID')}\n </Body1Strong>\n </div>\n <div className={styles.mealActions}>\n <div className={styles.qtySelector}>\n <Button\n appearance=\"subtle\"\n shape=\"circular\"\n className={styles.qtyButton}\n disabled={item.quantity <= 1}\n icon={<SubtractRegular />}\n onClick={() => mealData.onUpdateQuantity(item.id, -1)}\n style={{\n border: `1px solid ${item.quantity <= 1 ? tokens.colorNeutralForegroundDisabled : tokens.colorBrandBackground}`, \n color: item.quantity <= 1 ? tokens.colorNeutralForegroundDisabled : tokens.colorBrandBackground\n }}\n />\n <Body1>{item.quantity}</Body1>\n <Button\n appearance=\"subtle\"\n className={styles.qtyButton}\n shape=\"circular\"\n icon={<AddRegular />}\n onClick={() => mealData.onUpdateQuantity(item.id, 1)}\n style={{\n border: `1px solid ${tokens.colorBrandBackground}`, \n color: tokens.colorBrandBackground\n }}\n />\n </div>\n <Button\n appearance=\"subtle\"\n className={styles.deleteMealButton}\n shape=\"rounded\"\n onClick={() => mealData.onDelete(item.id)}\n >\n <DeleteRegular fontSize={18} />\n Hapus Pesanan\n </Button>\n </div>\n </div>\n ))}\n </div>\n </>\n )}\n\n {/* Meal Footer (Special case because it's at the bottom of the list) */}\n {footerData && footerData.actionType === 'primary-button' && (\n <>\n <div className={styles.totalContainer}>\n <Subtitle2>{footerData.priceLabel}</Subtitle2>\n <Subtitle1 style={{ fontSize: tokens.fontSizeBase600 }}>\n Rp. {footerData.price.toLocaleString('id-ID')}\n </Subtitle1>\n </div>\n <div style={{ width: '100%' }}>\n <Button\n // color=\"soft\" // Fluent UI v9 doesn't have 'soft' color in default props, emulating\n appearance=\"secondary\"\n shape=\"circular\"\n onClick={footerData.onActionClick}\n style={{\n width: '100%',\n borderColor: tokens.colorBrandStroke1,\n color: tokens.colorBrandBackground,\n }}\n >\n {footerData.actionLabel}\n </Button>\n </div>\n </>\n )}\n\n {/* Fallback Children */}\n {children}\n </div>\n </div>\n </Card>\n );\n};\n","import React from 'react';\nimport {\n Body1,\n Button,\n Caption1,\n Card,\n Display,\n Image,\n makeStyles,\n shorthands,\n Subtitle2,\n Title2,\n Title3,\n tokens,\n} from '@fluentui/react-components';\nimport { AddRegular, InfoRegular, SubtractRegular } from '@fluentui/react-icons';\nimport { CardMealCatalogProps } from './CardMealCatalog.types';\n\nconst useStyles = makeStyles({\n container: {\n display: 'flex',\n flexDirection: 'column',\n gap: tokens.spacingVerticalXXL,\n },\n banner: {\n position: 'relative',\n height: '240px',\n width: '100%',\n borderRadius: tokens.borderRadiusXLarge,\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n color: 'white',\n textAlign: 'center',\n ...shorthands.padding(tokens.spacingVerticalXXL),\n },\n bannerOverlay: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.4)',\n zIndex: 1,\n },\n bannerBg: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n objectFit: 'cover',\n zIndex: 0,\n width: '100%',\n height: '100%',\n },\n bannerContent: {\n position: 'relative',\n zIndex: 2,\n },\n bannerTitle: {\n fontSize: '48px',\n fontWeight: tokens.fontWeightBold,\n marginBottom: tokens.spacingVerticalS,\n color: 'white', // Ensure text is white on banner\n },\n bannerSubtitle: {\n color: 'white',\n },\n disclaimer: {\n display: 'flex',\n alignItems: 'center',\n gap: tokens.spacingHorizontalS,\n backgroundColor: tokens.colorNeutralBackground2,\n ...shorthands.padding(tokens.spacingVerticalS, tokens.spacingHorizontalM),\n ...shorthands.border('1px', 'solid', tokens.colorNeutralStroke2),\n borderRadius: tokens.borderRadiusMedium,\n },\n sectionTitle: {\n marginBottom: tokens.spacingVerticalL,\n },\n grid: {\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fill, minmax(280px, 1fr))',\n columnGap: tokens.spacingHorizontalL,\n rowGap: tokens.spacingVerticalL,\n },\n productCard: {\n display: 'flex',\n flexDirection: 'row',\n ...shorthands.padding(tokens.spacingVerticalM),\n gap: tokens.spacingHorizontalM,\n height: '100%',\n },\n productImage: {\n width: '100px',\n height: '100px',\n borderRadius: tokens.borderRadiusMedium,\n objectFit: 'cover',\n flexShrink: 0,\n },\n productInfo: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n flexGrow: 1,\n },\n productDescription: {\n color: tokens.colorNeutralForeground3,\n display: '-webkit-box',\n WebkitLineClamp: '2',\n WebkitBoxOrient: 'vertical',\n overflow: 'hidden',\n marginBottom: tokens.spacingVerticalS,\n },\n productFooter: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginTop: 'auto',\n },\n price: {\n color: '#D13438', // Or use a token if available/consistent\n fontWeight: tokens.fontWeightSemibold,\n },\n quantitySelector: {\n display: 'flex',\n alignItems: 'center',\n gap: tokens.spacingHorizontalS,\n },\n addButton: {\n // We'll use color=\"brand\" or similar from Fluent v9 if possible, or fallback to custom styles\n // ...shorthands.border('1px', 'solid', tokens.colorBrandStroke1),\n // color: tokens.colorBrandForeground1,\n },\n // Replicating the custom add button style from original\n customAddButton: {\n border: '1px solid rgb(30, 57, 141)', // tokensV2.lightModeColors.Brand_Stroke_1_Rest\n color: 'rgb(30, 57, 141)', // tokensV2.lightModeColors.Brand_Foreground_1_Rest\n }\n});\n\nexport const CardMealCatalog: React.FC<CardMealCatalogProps> = ({\n banner,\n disclaimerText,\n categories,\n onAdd,\n onUpdateQuantity,\n className,\n}) => {\n const styles = useStyles();\n\n return (\n <div className={`${styles.container} ${className || ''}`}>\n {/* Banner */}\n <div className={styles.banner}>\n <div className={styles.bannerOverlay} />\n {/* Using standard img or fluent image for library component */}\n <img\n src={banner.imageUrl}\n alt={banner.title}\n className={styles.bannerBg}\n />\n <div className={styles.bannerContent}>\n <Display className={styles.bannerTitle}>{banner.title}</Display>\n <br />\n <Title2 className={styles.bannerSubtitle}>{banner.subtitle}</Title2>\n </div>\n </div>\n\n {/* Disclaimer */}\n <div className={styles.disclaimer}>\n <InfoRegular />\n <Caption1>{disclaimerText}</Caption1>\n </div>\n\n {/* Categories */}\n {categories.map((cat, index) => (\n <section key={index}>\n <Title3 className={styles.sectionTitle} style={{ textTransform: 'capitalize' }}>\n {cat.category}\n </Title3>\n <br />\n <br />\n <div className={styles.grid}>\n {cat.list.map((item) => (\n <Card key={item.id} className={styles.productCard}>\n <Image src={item.image} alt={item.name} className={styles.productImage} />\n <div className={styles.productInfo}>\n <div>\n <Subtitle2>{item.name}</Subtitle2>\n <Caption1 className={styles.productDescription}>{item.description}</Caption1>\n </div>\n <div className={styles.productFooter}>\n <Body1 className={styles.price}>Rp{item.price.toLocaleString('id-ID')}</Body1>\n {item.quantity > 0 ? (\n <div className={styles.quantitySelector}>\n <Button\n size=\"small\"\n shape=\"circular\"\n icon={<SubtractRegular />}\n onClick={() => onUpdateQuantity(item.id, -1)}\n />\n <Body1>{item.quantity}</Body1>\n <Button\n size=\"small\"\n shape=\"circular\"\n icon={<AddRegular />}\n onClick={() => onUpdateQuantity(item.id, 1)}\n />\n </div>\n ) : (\n <Button\n size=\"small\"\n shape=\"rounded\"\n className={styles.customAddButton}\n onClick={() => onAdd(item)}\n >\n Tambah\n </Button>\n )}\n </div>\n </div>\n </Card>\n ))}\n </div>\n </section>\n ))}\n </div>\n );\n};\n","import React from 'react';\nimport {\n Body1,\n Caption1,\n Card,\n makeStyles,\n Subtitle1,\n tokens,\n} from '@fluentui/react-components';\nimport { CardReviewProps } from './CardReview.types';\n\nconst useStyles = makeStyles({\n card: {\n padding: '1.5rem',\n borderRadius: tokens.borderRadiusXLarge,\n boxShadow: tokens.shadow4,\n zIndex: 3,\n },\n headerContainer: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: '1rem',\n gap: '1rem',\n },\n headerTitle: {\n whiteSpace: 'nowrap',\n fontWeight: tokens.fontWeightSemibold,\n },\n headerLine: {\n height: '1px',\n flexGrow: 1,\n backgroundColor: tokens.colorNeutralStroke2,\n },\n contentContainer: {\n display: 'flex',\n flexDirection: 'column',\n gap: tokens.spacingVerticalM,\n },\n row: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n defaultLabel: {\n color: tokens.colorNeutralForeground2,\n },\n defaultValue: {\n // color: tokens.colorNeutralForegroundDisabled, // In ferizy: tokensV2.lightModeColors.Neutral_Foreground_Disabled_Rest\n color: '#bdbdbd', // Approximate fallback or use token if available in ferryui context\n textAlign: 'right',\n },\n});\n\nexport const CardReview: React.FC<CardReviewProps> = ({\n title,\n items,\n children,\n className,\n headerAction,\n}) => {\n const styles = useStyles();\n\n return (\n <Card className={`${styles.card} ${className || ''}`}>\n <div className={styles.headerContainer}>\n <Subtitle1 className={styles.headerTitle}>{title}</Subtitle1>\n <div className={styles.headerLine} />\n {headerAction && <div>{headerAction}</div>}\n </div>\n\n <div className={styles.contentContainer}>\n {items?.map((item, index) => (\n <div key={index} className={`${styles.row} ${item.className || ''}`}>\n {/* Render Label */}\n {typeof item.label === 'string' ? (\n <Caption1 className={`${styles.defaultLabel} ${item.labelClassName || ''}`}>\n {item.label}\n </Caption1>\n ) : (\n // Clone element to append className if it's a valid React element\n React.isValidElement(item.label) ? \n React.cloneElement(item.label as React.ReactElement, {\n className: `${styles.defaultLabel} ${item.labelClassName || ''}${(item.label as React.ReactElement).props.className ? ' ' + (item.label as React.ReactElement).props.className : ''}`\n }) : \n <div className={`${styles.defaultLabel} ${item.labelClassName || ''}`}>{item.label}</div>\n )}\n\n {/* Render Value */}\n {typeof item.value === 'string' || typeof item.value === 'number' ? (\n <Body1 className={`${styles.defaultValue} ${item.valueClassName || ''}`}>\n {item.value}\n </Body1>\n ) : (\n <div className={`${styles.defaultValue} ${item.valueClassName || ''}`}>{item.value}</div>\n )}\n </div>\n ))}\n\n {children}\n </div>\n </Card>\n );\n};\n","import React from 'react';\nimport {\n Body1,\n Card,\n Field,\n makeStyles,\n Subtitle1,\n Subtitle2,\n tokens,\n Image,\n} from '@fluentui/react-components';\nimport { CardReviewPassengerProps } from './CardReviewPassenger.types';\nimport { getBadgeConfig } from '../../utils/badge';\n\nconst useStyles = makeStyles({\n card: {\n padding: '1.5rem',\n borderRadius: tokens.borderRadiusXLarge,\n boxShadow: tokens.shadow4,\n zIndex: 3,\n },\n headerContainer: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: '1rem',\n gap: '1rem',\n },\n headerTitle: {\n whiteSpace: 'nowrap',\n fontWeight: tokens.fontWeightSemibold,\n },\n headerLine: {\n height: '1px',\n flexGrow: 1,\n backgroundColor: tokens.colorNeutralStroke2,\n },\n contentContainer: {\n display: 'flex',\n flexDirection: 'column',\n },\n passengerItem: {\n display: 'flex',\n flexDirection: 'column',\n gap: tokens.spacingVerticalS,\n paddingBottom: tokens.spacingVerticalL,\n paddingTop: tokens.spacingVerticalM,\n borderBottom: `1px solid ${tokens.colorNeutralStroke2}`,\n ':last-child': {\n borderBottom: 'none',\n paddingBottom: 0,\n },\n // Matches styles.passengerItem in Review.tsx\n },\n itemHeader: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: tokens.spacingVerticalS,\n },\n name: {\n color: '#00B8D4', // Cyan color from design\n fontSize: tokens.fontSizeBase400,\n },\n // Badge Styles\n badgeContainer: {\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n },\n badgeContent: {\n display: 'flex',\n alignItems: 'center',\n padding: '0.25rem 0.75rem 0.25rem 1.5rem', // Extra left padding for the icon overlap\n borderRadius: '0 4px 4px 0',\n borderTopRightRadius: '9999px',\n borderBottomRightRadius: '9999px',\n color: 'white',\n fontSize: tokens.fontSizeBase200,\n fontWeight: tokens.fontWeightMedium,\n marginLeft: '-14px', // Pull the text container under the icon\n minHeight: '24px',\n },\n badgeIcon: {\n width: '28px',\n height: '32px',\n zIndex: 1,\n filter: 'drop-shadow(0px 2px 2px rgba(0, 0, 0, 0.1))',\n },\n fields: {\n display: 'grid',\n gridTemplateColumns: '1fr 1fr',\n gap: tokens.spacingHorizontalL,\n },\n inputBox: {\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n borderRadius: tokens.borderRadiusMedium,\n padding: `${tokens.spacingVerticalS} ${tokens.spacingHorizontalM}`,\n display: 'flex',\n alignItems: 'center',\n height: '32px', \n },\n});\n\nexport const CardReviewPassenger: React.FC<CardReviewPassengerProps> = ({\n title = 'Penumpang',\n passengers,\n className,\n}) => {\n const styles = useStyles();\n\n return (\n <Card className={`${styles.card} ${className || ''}`}>\n <div className={styles.headerContainer}>\n <Subtitle1 className={styles.headerTitle}>{title}</Subtitle1>\n <div className={styles.headerLine} />\n </div>\n\n <div className={styles.contentContainer}>\n {passengers.map((passenger, index) => {\n const badgeConfig = getBadgeConfig(passenger.serviceClass);\n return (\n <div key={passenger.id || index} className={styles.passengerItem}>\n <div className={styles.itemHeader}>\n <Subtitle2 className={styles.name}>{passenger.name}</Subtitle2>\n <div className={styles.badgeContainer}>\n {badgeConfig.icon && (\n <Image\n src={badgeConfig.icon}\n alt={passenger.ticketClass}\n className={styles.badgeIcon}\n height={28}\n width={24}\n />\n )}\n <div\n className={styles.badgeContent}\n style={{ backgroundColor: badgeConfig.color }}\n >\n {passenger.ticketClass}\n </div>\n </div>\n </div>\n \n <div className={styles.fields}>\n <Field label=\"Nomor ID\" size=\"small\">\n <div className={styles.inputBox}>\n <Body1>{passenger.identityNumber}</Body1>\n </div>\n </Field>\n <Field\n label={passenger.ageLabel}\n size=\"small\"\n >\n <div className={styles.inputBox}>\n <Body1>{passenger.ageValue}</Body1>\n </div>\n </Field>\n </div>\n </div>\n );\n })}\n </div>\n </Card>\n );\n};\n","import React from 'react';\nimport { Body1, Divider, Link, tokens, makeStyles } from '@fluentui/react-components';\n\nconst useStyles = makeStyles({\n list: {\n margin: 0,\n padding: 0,\n listStyle: 'none',\n counterReset: 'list-counter',\n },\n listItem: {\n counterIncrement: 'list-counter',\n display: 'flex',\n marginBottom: tokens.spacingVerticalS,\n '&::before': {\n content: 'counter(list-counter) \".\"',\n marginRight: tokens.spacingHorizontalS,\n fontWeight: tokens.fontWeightRegular,\n },\n },\n});\n\nexport const PriceDetailsTerms: React.FC = () => {\n const styles = useStyles();\n const linkColor = tokens.colorBrandBackground;\n\n const bookingTerms = [\n \"Transaksi booking akan dibatalkan secara otomatis apabila Anda tidak menyelesaikan pembayaran pada periode waktu yang telah ditentukan.\",\n \"Setelah pembyaran berhasil, dikumen E-Tiket dapat di unduh melailui E-Mail atau menu “Pesanan Saya” di Web Reservation atau Mobile Application Ferizy.\",\n \"Dokumen E-Tiket wajib ditunjukan saat melakukan proses Masuk Pelabuhan (Check-In)\",\n \"Anda sudah dapat Masuk Pelabuhan (Check-In) mulai dari 2 (dua) jam sebelum jadwal masukpelabuhan yang Anda pilih.\",\n \"Tiket akan hangus (expired) apabila Anda belum Masuk Pelabuhan (Check-In) hingga melewati batas waktu jadwal Masuk Pelabuhan yang Anda pilih.\"\n ];\n\n const agreementTerms = [\n (\n <>\n <Link href=\"/terms-and-conditions\" style={{ color: linkColor }}>Syarat & Ketentuan</Link> Ferizy.\n </>\n ),\n (\n <>\n Ketentuan persyaratan menyeberang sesuai dengan <Link href=\"/surat-edaran-satgas-covid-19\" style={{ color: linkColor }}>Surat Edaran Satgas Covid-19 Nomor 23 Tahun 2002.</Link>\n </>\n ),\n \"Bahwa apabila saya didapati tidak memenuhi ketentuan persyaratan menyeberang pada butir 2 (dua) diatas yang mengakibatkan saya terlambat atau tidaj dapat melakukan Check-In di pelabuhan tepat waktu, maka saya menerima dan menyetujui untuk diproses sesuai dengan Syarat & Ketentuan Ferizy sebagaimana tersebut pada butir 1 (satu) di atas.\"\n ];\n\n return (\n <>\n <Body1>\n <ul className={styles.list}>\n {bookingTerms.map((term, index) => (\n <li key={index} className={styles.listItem}>\n {term}\n </li>\n ))}\n </ul>\n </Body1>\n\n <Divider />\n\n <Body1>\n Dengan menekan tombol “Lanjutkan Pembayaran”, maka saya telah membaca dan menyetujuii :\n <ul className={styles.list}>\n {agreementTerms.map((term, index) => (\n <li key={index} className={styles.listItem}>\n {term}\n </li>\n ))}\n </ul>\n </Body1>\n </>\n );\n};\n","import React from \"react\";\nimport {\n Body1,\n Body1Strong,\n Caption1,\n Card,\n Divider,\n makeStyles,\n mergeClasses,\n Subtitle1,\n tokens,\n} from \"@fluentui/react-components\";\nimport { CardPriceDetailsProps } from \"./CardPriceDetails.types\";\nimport { PriceDetailsTerms } from \"./PriceDetailsTerms\";\n\nconst useStyles = makeStyles({\n card: {\n padding: \"1.5rem\",\n borderRadius: tokens.borderRadiusXLarge,\n boxShadow: tokens.shadow4,\n zIndex: 3,\n },\n headerContainer: {\n display: \"flex\",\n alignItems: \"center\",\n marginBottom: \"1rem\",\n gap: \"1rem\",\n },\n headerTitle: {\n whiteSpace: \"nowrap\",\n fontWeight: tokens.fontWeightSemibold,\n },\n headerLine: {\n height: \"1px\",\n flexGrow: 1,\n backgroundColor: tokens.colorNeutralStroke2,\n },\n container: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: tokens.spacingVerticalM,\n },\n row: {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n },\n label: {\n color: tokens.colorNeutralForeground2,\n },\n value: {\n // Standard value color - using token or fallback\n color: \"#bdbdbd\",\n textAlign: \"right\",\n },\n textCritical: {\n color: tokens.colorPaletteRedBackground3,\n },\n textMuted: {\n color: tokens.colorNeutralForegroundDisabled,\n },\n subSection: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: tokens.spacingVerticalS,\n marginTop: tokens.spacingVerticalS,\n },\n totalRow: {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n marginTop: tokens.spacingVerticalM,\n color: tokens.colorPaletteRedBackground3\n },\n totalLabel: {\n // Standard color for total label if needed\n },\n totalValue: {\n // Standard color for total value if needed\n },\n description: {\n color: tokens.colorNeutralForeground4,\n marginTop: \"-8px\",\n },\n});\n\nexport const CardPriceDetails: React.FC<CardPriceDetailsProps> = ({\n title = \"Rincian Harga\",\n sections,\n total,\n}) => {\n const styles = useStyles();\n\n const getVariantClass = (variant?: \"default\" | \"danger\" | \"muted\") => {\n switch (variant) {\n case \"danger\":\n return styles.textCritical;\n case \"muted\":\n return styles.textMuted;\n default:\n return \"\";\n }\n };\n\n const renderItem = (item: any, key: number | string) => {\n // Check if item should be bold (like Tax usually is in the mockup, or we can use variant to decide style)\n // Based on previous code: tax used Body1Strong. Regular items passed as variants?\n // For now, we stick to body1/caption1 structure unless variant differs significantly.\n\n // If variant is 'danger' (e.g. tax), previous code used Body1Strong for label and value.\n // Let's assume standard items are Caption1 label / Body1 value.\n // If 'danger', maybe bump weight? The user said \"sama stylingnya cuman beda warna\".\n // So we just apply color classes.\n\n const variantClass = getVariantClass(item.variant);\n const isTaxLike = item.variant === \"danger\"; // Heuristic if we want to bold tax\n\n return (\n <React.Fragment key={key}>\n <div className={styles.row}>\n {isTaxLike ? (\n <Body1Strong className={variantClass}>{item.name}</Body1Strong>\n ) : (\n <Caption1 className={mergeClasses(styles.label, variantClass)}>\n {item.name}\n </Caption1>\n )}\n\n {isTaxLike ? (\n <Body1Strong className={mergeClasses(styles.value, variantClass)}>\n Rp. {item.price.toLocaleString(\"id-ID\")}\n </Body1Strong>\n ) : (\n <Body1 className={mergeClasses(styles.value, variantClass)}>\n {item.isRedeem ? \"-\" : \"Rp. \"}\n {item.price.toLocaleString(\"id-ID\")}\n </Body1>\n )}\n </div>\n {item.description && (\n <Caption1 className={styles.description}>{item.description}</Caption1>\n )}\n </React.Fragment>\n );\n };\n\n return (\n <Card className={styles.card}>\n <div className={styles.headerContainer}>\n <Subtitle1 className={styles.headerTitle}>{title}</Subtitle1>\n <div className={styles.headerLine} />\n </div>\n\n <div className={styles.container}>\n {sections.map((section, index) => {\n if (section.title) {\n return (\n <div key={index} className={styles.subSection}>\n <Body1Strong>{section.title}</Body1Strong>\n {section.detail.map((item, i) => renderItem(item, i))}\n </div>\n );\n }\n\n return (\n <React.Fragment key={index}>\n {section.detail.map((item, i) => renderItem(item, i))}\n </React.Fragment>\n );\n })}\n\n <Divider />\n\n {/* Total */}\n <div className={styles.totalRow}>\n <Subtitle1 className={styles.totalLabel}>Total Pembayaran</Subtitle1>\n <Subtitle1 className={styles.totalValue}>\n Rp. {total.toLocaleString(\"id-ID\")}\n </Subtitle1>\n </div>\n\n <Divider />\n <PriceDetailsTerms />\n </div>\n </Card>\n );\n};\n","import React from \"react\";\nimport {\n Accordion,\n AccordionHeader,\n AccordionItem,\n AccordionPanel,\n Body1,\n Divider,\n makeStyles,\n Radio,\n shorthands,\n Subtitle2,\n tokens,\n Image,\n} from \"@fluentui/react-components\";\nimport { CardPaymentMethodListProps } from \"./CardPaymentMethodList.types\";\n\nconst useStyles = makeStyles({\n container: {\n display: \"flex\",\n flexDirection: \"column\",\n width: \"100%\",\n rowGap: tokens.spacingHorizontalXXL,\n },\n dividerContainer: {\n marginBottom: tokens.spacingHorizontalXXL,\n },\n title: {\n paddingLeft: tokens.spacingHorizontalSNudge,\n paddingRight: tokens.spacingHorizontalSNudge,\n },\n itemContainer: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: tokens.spacingHorizontalXXL,\n width: \"100%\",\n },\n optionContainer: {\n display: \"flex\",\n justifyContent: \"space-between\",\n width: \"100%\",\n cursor: \"pointer\",\n alignItems: \"center\",\n },\n codeImage: {\n display: \"flex\",\n gap: tokens.spacingHorizontalL,\n alignItems: \"center\",\n justifyContent: \"center\",\n textAlign: \"center\",\n },\n optionLabel: {\n color: tokens.colorNeutralForeground2,\n },\n image: {\n width: \"40px\",\n height: \"40px\",\n objectFit: \"contain\",\n },\n card:{\n position: 'relative',\n borderRadius: tokens.borderRadiusXLarge,\n ...shorthands.padding(tokens.spacingHorizontalXL, tokens.spacingVerticalXXL),\n backgroundColor: tokens.colorNeutralBackground1,\n zIndex: 3,\n }\n});\n\nexport const CardPaymentMethodList: React.FC<CardPaymentMethodListProps> = ({\n methods,\n selectedValue,\n onSelect,\n}) => {\n const styles = useStyles();\n\n return (\n <div className={styles.card}>\n <div className={`${styles.container}`}>\n {methods.map((category, index) => (\n <div key={category.value || index}>\n {index > 0 && (\n <div className={styles.dividerContainer}>\n <Divider />\n </div>\n )}\n <Accordion multiple collapsible>\n <AccordionItem value={category.value}>\n <AccordionHeader\n expandIconPosition=\"end\"\n className={styles.title}\n >\n <Body1>{category.title || category.value}</Body1>\n </AccordionHeader>\n <AccordionPanel>\n <div className={styles.itemContainer}>\n {category.options.map((option) => (\n <div\n key={option.value}\n className={styles.optionContainer}\n onClick={() => onSelect(option.value)}\n >\n <div className={styles.codeImage}>\n {/* Using standard img tag for simplicity and portability. \n The passed image string is usually a public path. */}\n <img\n src={option.image}\n alt={option.label}\n className={styles.image}\n />\n <Subtitle2 className={styles.optionLabel}>\n {option.label}\n </Subtitle2>\n </div>\n <Radio\n checked={selectedValue === option.value}\n onChange={() => onSelect(option.value)}\n value={option.value}\n name=\"payment-method\"\n />\n </div>\n ))}\n </div>\n </AccordionPanel>\n </AccordionItem>\n </Accordion>\n </div>\n ))}\n </div>\n </div>\n );\n};\n","import React from 'react';\nimport {\n Accordion,\n AccordionHeader,\n AccordionItem,\n AccordionPanel,\n Body1,\n makeStyles,\n tokens,\n Subtitle1\n} from '@fluentui/react-components';\nimport { CardPaymentGuideProps } from './CardPaymentGuide.types';\n\nconst useStyles = makeStyles({\n container: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n },\n titleContainer: {\n marginBottom: tokens.spacingVerticalM,\n },\n title: {\n color: tokens.colorNeutralForeground2, // Neutral_Stroke_Accessible_Rest based on Review.tsx usually\n },\n list: {\n margin: 0,\n padding: 0,\n listStyle: 'none',\n counterReset: 'guide-counter',\n },\n listItem: {\n counterIncrement: 'guide-counter',\n display: 'flex',\n marginBottom: tokens.spacingVerticalS,\n '&::before': {\n content: 'counter(guide-counter) \".\"',\n marginRight: tokens.spacingHorizontalS,\n fontWeight: tokens.fontWeightRegular,\n },\n },\n});\n\nexport const CardPaymentGuide: React.FC<CardPaymentGuideProps> = ({\n title = 'Cara Pembayaran',\n guides,\n className,\n}) => {\n const styles = useStyles();\n\n return (\n <div className={`${styles.container} ${className || ''}`}>\n {title && (\n <div className={styles.titleContainer}>\n <Subtitle1 className={styles.title}>{title}</Subtitle1>\n </div>\n )}\n <Accordion collapsible multiple>\n {guides.map((guide, index) => (\n <AccordionItem value={guide.value || String(index)} key={guide.value || index}>\n <AccordionHeader expandIconPosition=\"end\">\n <Body1>{guide.title}</Body1>\n </AccordionHeader>\n <AccordionPanel>\n <ul className={styles.list}>\n {guide.steps.map((step, stepIndex) => (\n <li key={stepIndex} className={styles.listItem}>\n <Body1>{step}</Body1>\n </li>\n ))}\n </ul>\n </AccordionPanel>\n </AccordionItem>\n ))}\n </Accordion>\n </div>\n );\n};\n","import React from \"react\";\nimport {\n Button,\n Field,\n Input,\n makeStyles,\n Subtitle1,\n Subtitle2,\n Title1,\n Title2,\n tokens,\n shorthands,\n} from \"@fluentui/react-components\";\nimport { CardPaymentGuide } from \"../CardPaymentGuide\";\nimport { CardPaymentInfoProps } from \"./CardPaymentInfo.types\";\n\nconst useStyles = makeStyles({\n container: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: tokens.spacingHorizontalXXL,\n width: \"100%\",\n },\n headerRow: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: tokens.spacingHorizontalXXL,\n textAlign: \"center\",\n },\n expiryTitle: {\n fontSize: tokens.fontSizeBase500, // 19px approx/mapping\n color: tokens.colorPaletteRedBackground3, // Foundation_Danger_error\n },\n infoCard: {\n border: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralStroke1}`,\n borderRadius: tokens.borderRadiusXLarge, // 12px -> XLarge/Large depending on token map\n padding: tokens.spacingHorizontalXXL,\n display: \"flex\",\n flexDirection: \"column\",\n gap: tokens.spacingVerticalXXL,\n },\n codeCard: {\n borderRadius: tokens.borderRadiusMedium,\n padding: tokens.spacingHorizontalL,\n backgroundColor: tokens.colorNeutralBackground3, // Neutral_Background_2_Rest\n display: \"flex\",\n flexDirection: \"column\",\n gap: tokens.spacingHorizontalL,\n alignItems: \"center\",\n },\n bankRow: {\n display: \"flex\",\n gap: tokens.spacingHorizontalM,\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n vaRow: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: tokens.spacingHorizontalXXXL,\n alignItems: \"center\",\n },\n input: {\n backgroundColor: tokens.colorNeutralBackground3,\n },\n checkStatusButton: {\n width: \"100%\",\n border: `1px solid ${tokens.colorBrandBackground}`,\n color: tokens.colorBrandBackground,\n },\n card: {\n position: \"relative\",\n ...shorthands.padding(\n tokens.spacingHorizontalXL,\n tokens.spacingHorizontalXXL,\n ),\n backgroundColor: tokens.colorNeutralBackground1,\n boxShadow: tokens.shadow4,\n zIndex: 3,\n },\n});\n\nexport const CardPaymentInfo: React.FC<CardPaymentInfoProps> = ({\n expiryDate,\n bank,\n virtualAccount,\n totalAmount,\n guides,\n onCopyVA,\n onCheckStatus,\n}) => {\n const styles = useStyles();\n\n return (\n <div className={styles.card}>\n <div className={styles.container}>\n {/* Header Expiry */}\n <div className={styles.headerRow}>\n <Subtitle1>Kode virtual akun berlaku sampai</Subtitle1>\n <Title2 className={styles.expiryTitle}>{expiryDate}</Title2>\n </div>\n\n {/* Info Card */}\n <div className={styles.infoCard}>\n <div className={styles.codeCard}>\n {/* Bank Info */}\n <div className={styles.bankRow}>\n <img src={bank.icon} alt={bank.name} width={40} height={40} />\n <Subtitle2>{bank.name}</Subtitle2>\n </div>\n\n {/* VA Number & Copy */}\n <div className={styles.vaRow}>\n <Title1>{virtualAccount}</Title1>\n <Button\n appearance=\"primary\"\n size=\"large\"\n shape=\"circular\"\n onClick={onCopyVA}\n >\n Salin Kode\n </Button>\n </div>\n </div>\n\n {/* Total Payment */}\n <Field\n size=\"large\"\n label={\n <Subtitle2 style={{ color: tokens.colorNeutralForeground1 }}>\n Total Pembayaran\n </Subtitle2>\n }\n >\n <Input\n disabled\n value={`Rp. ${totalAmount.toLocaleString(\"id-ID\")}`}\n className={styles.input}\n />\n </Field>\n </div>\n\n {/* Check Status Button */}\n <div>\n <div style={{ marginBottom: tokens.spacingVerticalM }}>\n <Subtitle2 style={{ color: tokens.colorNeutralForeground2 }}>\n Klik tombol dibawah ini jika sudah melakukan pembayaran\n </Subtitle2>\n </div>\n <Button\n appearance=\"secondary\"\n size=\"large\"\n shape=\"circular\"\n className={styles.checkStatusButton}\n // Note: Styling for secondary button borders/colors usually handled by tokens or theme wrappers.\n // Keeping simple for library component, parent can override or theme handles it.\n onClick={onCheckStatus}\n >\n Cek Status Pembayaran\n </Button>\n </div>\n\n {/* Payment Guide */}\n <CardPaymentGuide guides={guides} />\n </div>\n </div>\n );\n};\n","import React from 'react';\nimport {\n Badge,\n Body1,\n Button,\n Caption1,\n Caption1Stronger,\n Caption2,\n Divider,\n makeStyles,\n shorthands,\n Subtitle1,\n Subtitle2,\n tokens,\n Image,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport { Col, Row } from 'react-grid-system';\nimport { CardStatusOrderProps } from './CardStatusOrder.types';\n\nconst useStyles = makeStyles({\n activeCard: {\n width: '100%',\n // padding: tokens.spacingHorizontalNone, // default\n color: tokens.colorNeutralStrokeAccessible,\n },\n colGap: {\n gap: '58px', // approx spacing['580']\n },\n cardInfo: {\n border: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralStroke1}`,\n backgroundColor: tokens.colorNeutralBackground1,\n borderRadius: tokens.borderRadiusXLarge, // borderRadius[120] -> XLarge approx\n padding: tokens.spacingHorizontalXXL,\n },\n rowGap: {\n rowGap: '22px', // spacing[220]\n },\n gapdetail: {\n rowGap: tokens.spacingVerticalL,\n },\n itemDetail: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n divider: {\n '::before': {\n ...shorthands.borderColor(tokens.colorBrandBackground), // brandColors[80]\n },\n },\n titleDivider: {\n display: 'flex',\n gap: '18px', // spacing[180]\n },\n centerContent: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n flexDirection: 'column'\n }\n});\n\nexport const CardStatusOrder: React.FC<CardStatusOrderProps> = ({\n bookingCode,\n departureDate,\n departureTime,\n arrivalDate,\n arrivalTime,\n origin,\n destination,\n duration = '-',\n vehicleClass,\n serviceType,\n vehicleNumber,\n shipType,\n statusLabel = 'Sudah Dibayar',\n statusIcon, \n statusColor = 'success',\n illustrationUrl = '/assets/images/illustrations/ticket.svg',\n title = 'Pembayaran berhasil',\n description = 'Tiket Anda aktif dan siap digunakan.',\n onClickViewTicket,\n className,\n}) => {\n const styles = useStyles();\n\n return (\n <div className={`${styles.activeCard} ${className || ''}`}>\n <Row nogutter className={styles.colGap}>\n <Col xs=\"content\">\n <Row direction=\"column\" nogutter>\n <Col xs=\"content\">\n {/* Using standard img for library portability, assuming path is handled by consumer */}\n <img\n src={illustrationUrl}\n alt=\"E-Ticket\"\n width={406}\n height={266}\n />\n </Col>\n <Col xs=\"content\">\n <Row direction=\"column\" justify=\"center\" align=\"center\" nogutter>\n <Col xs=\"content\">\n <Subtitle2>{title}</Subtitle2>\n </Col>\n <Col xs=\"content\">\n <Body1>{description}</Body1>\n </Col>\n </Row>\n </Col>\n </Row>\n </Col>\n <Col>\n <div className={styles.cardInfo}>\n <Row\n direction=\"column\"\n justify=\"center\"\n align=\"center\"\n nogutter\n className={styles.rowGap}\n >\n <Col xs={12}>\n <div className={styles.titleDivider}>\n <Subtitle1>Detail Pemesanan</Subtitle1>\n <Divider style={{ width: 0 }} />\n </div>\n </Col>\n <Col xs={12}>\n <Row justify=\"center\" align=\"center\" nogutter>\n <Col>\n <Body1>Status</Body1>\n </Col>\n <Col xs=\"content\">\n <Badge\n color={statusColor}\n size=\"extra-large\"\n appearance=\"filled\"\n shape=\"rounded\"\n icon={statusIcon || <Icon icon=\"fluent:checkmark-circle-20-regular\" />}\n >\n {statusLabel}\n </Badge>\n </Col>\n </Row>\n </Col>\n <Col xs={12}>\n <Row direction=\"column\" nogutter className={styles.gapdetail}>\n <Col xs={12}>\n <div className={styles.itemDetail}>\n <Caption1Stronger>Kode Booking</Caption1Stronger>\n <Caption1>{bookingCode}</Caption1>\n </div>\n </Col>\n <Col xs={12}>\n <div className={styles.itemDetail}>\n <Caption1Stronger>Jadwal Masuk Pelabuhan</Caption1Stronger>\n <Caption1>\n {departureDate}, {departureTime}\n </Caption1>\n </div>\n </Col>\n <Col xs={12}>\n <div className={styles.itemDetail}>\n <Caption1Stronger>Rute</Caption1Stronger>\n <Caption1>\n {origin} <Icon icon=\"fluent:arrow-right-20-regular\" /> {destination}\n </Caption1>\n </div>\n </Col>\n <Col xs={12}>\n <div className={styles.itemDetail}>\n <Caption1Stronger>Jenis Pengguna Jasa</Caption1Stronger>\n <Caption1>{vehicleClass}</Caption1>\n </div>\n </Col>\n <Col xs={12}>\n <div className={styles.itemDetail}>\n <Caption1Stronger>Layanan</Caption1Stronger>\n <Caption1>{shipType || serviceType}</Caption1>\n </div>\n </Col>\n </Row>\n </Col>\n <Col xs={12}>\n <Button\n appearance=\"primary\"\n size=\"large\"\n style={{ width: '100%' }}\n shape=\"circular\"\n onClick={onClickViewTicket}\n >\n Lihat E-Tiket\n </Button>\n </Col>\n </Row>\n </div>\n </Col>\n </Row>\n </div>\n );\n};\n","import {\n Badge,\n Button,\n Card,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n DialogTrigger,\n Divider,\n makeStyles,\n shorthands,\n tokens,\n} from '@fluentui/react-components';\nimport React from 'react';\n\nimport { ModalPriceDetailProps } from './ModalPriceDetail.types';\n\nconst useStyles = makeStyles({\n surface: {\n width: '680px',\n maxWidth: '90vw',\n ...shorthands.padding(tokens.spacingVerticalL, tokens.spacingHorizontalL),\n borderRadius: tokens.borderRadiusXLarge,\n },\n dialogTitle: {\n '& h2': {\n fontSize: tokens.fontSizeBase600,\n fontWeight: tokens.fontWeightSemibold,\n },\n },\n card: {\n backgroundColor: tokens.colorNeutralBackground1,\n ...shorthands.border('1px', 'solid', tokens.colorNeutralStroke2),\n ...shorthands.padding(tokens.spacingVerticalXXL, tokens.spacingHorizontalXXL),\n boxShadow: 'none',\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n gap: tokens.spacingVerticalL,\n },\n section: {\n display: 'flex',\n flexDirection: 'column',\n gap: tokens.spacingVerticalS,\n },\n row: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n vehicleTitle: {\n fontSize: tokens.fontSizeBase500,\n fontWeight: tokens.fontWeightSemibold,\n color: tokens.colorNeutralForeground4,\n },\n passengerDetail: {\n color: tokens.colorNeutralForeground4,\n fontSize: tokens.fontSizeBase200,\n marginTop: tokens.spacingVerticalXS,\n },\n addonHeader: {\n fontSize: tokens.fontSizeBase500,\n fontWeight: tokens.fontWeightSemibold,\n color: tokens.colorNeutralForeground1,\n marginTop: tokens.spacingVerticalM,\n },\n priceValue: {\n color: tokens.colorNeutralForeground4,\n fontSize: tokens.fontSizeBase300,\n },\n itemLabel: {\n color: tokens.colorNeutralForeground4,\n fontSize: tokens.fontSizeBase300,\n },\n totalLabel: {\n color: tokens.colorNeutralForeground4,\n fontSize: tokens.fontSizeBase400,\n },\n totalValue: {\n color: tokens.colorNeutralForeground4,\n fontSize: tokens.fontSizeBase400,\n },\n totalTagihanLabel: {\n color: tokens.colorNeutralForeground1,\n fontWeight: tokens.fontWeightSemibold,\n fontSize: tokens.fontSizeBase400,\n },\n totalTagihanValue: {\n color: tokens.colorNeutralForeground1,\n fontWeight: tokens.fontWeightSemibold,\n fontSize: tokens.fontSizeBase400,\n },\n ppnLabel: {\n color: tokens.colorNeutralForeground4,\n fontSize: tokens.fontSizeBase400,\n },\n ppnValue: {\n color: tokens.colorNeutralForeground4,\n fontSize: tokens.fontSizeBase400,\n },\n ppnNote: {\n color: tokens.colorNeutralForeground4,\n fontSize: tokens.fontSizeBase100,\n fontStyle: 'italic',\n marginTop: tokens.spacingVerticalXS,\n },\n grandTotalLabel: {\n color: '#D13438',\n fontSize: tokens.fontSizeHero700,\n fontWeight: tokens.fontWeightSemibold,\n },\n grandTotalValue: {\n color: '#D13438',\n fontSize: tokens.fontSizeHero800,\n fontWeight: tokens.fontWeightSemibold,\n },\n badge: {\n marginLeft: tokens.spacingHorizontalS,\n backgroundColor: '#107C10',\n color: 'white',\n },\n divider: {\n margin: `${tokens.spacingVerticalL} 0`,\n },\n closeButton: {\n color: tokens.colorNeutralForeground1,\n },\n});\n\nexport const ModalPriceDetail: React.FC<ModalPriceDetailProps> = ({\n isOpen,\n onOpenChange,\n detailItems,\n addonItems,\n subTotal,\n taxAmount,\n grandTotal,\n ...props\n}) => {\n const styles = useStyles();\n\n return (\n <Dialog open={isOpen} onOpenChange={(_, data) => onOpenChange(data.open)} {...props}>\n <DialogSurface className={styles.surface}>\n <DialogBody>\n <DialogTitle\n className={styles.dialogTitle}\n action={\n <DialogTrigger action=\"close\">\n <Button\n appearance=\"subtle\"\n aria-label=\"close\"\n icon={\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path\n d=\"M18 6L6 18M6 6L18 18\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n }\n />\n </DialogTrigger>\n }\n >\n Rincian Harga\n </DialogTitle>\n <DialogContent className={styles.content}>\n <Card className={styles.card}>\n <div className={styles.section}>\n {/* Vehicle & Passengers from Data Structure */}\n {detailItems.map(item => (\n <div key={item.key}>\n <div className={styles.row}>\n <div style={{ display: 'flex', alignItems: 'center' }}>\n <span className={styles.vehicleTitle}>{item.label}</span>\n {item.badge && (\n <Badge size=\"medium\" shape=\"rounded\" className={styles.badge}>\n {item.badge}\n </Badge>\n )}\n </div>\n <span className={styles.priceValue}>\n Rp. {item.price.toLocaleString('id-ID')}\n </span>\n </div>\n {item.list &&\n item.list.map(subItem => (\n <div key={subItem.key} className={styles.passengerDetail}>\n <span>{subItem.label}</span>\n <span style={{ float: 'right' }}>\n IDR. {item.price.toLocaleString('id-ID')}\n </span>\n </div>\n ))}\n </div>\n ))}\n\n {addonItems.length > 0 && (\n <>\n <div className={styles.addonHeader}>Add On</div>\n {addonItems.map(item => (\n <div key={item.key} className={styles.row}>\n <span className={styles.itemLabel}>{item.label}</span>\n <span className={styles.priceValue}>\n IDR. {item.price.toLocaleString('id-ID')}\n </span>\n </div>\n ))}\n </>\n )}\n\n <Divider className={styles.divider} />\n\n {/* Totals Section */}\n <div className={styles.row}>\n <span className={styles.totalLabel}>Sub Tagihan</span>\n <span className={styles.totalValue}>IDR.{subTotal.toLocaleString('id-ID')}</span>\n </div>\n <div className={styles.row}>\n <span className={styles.totalTagihanLabel}>Total Tagihan</span>\n <span className={styles.totalTagihanValue}>\n IDR.{subTotal.toLocaleString('id-ID')}\n </span>\n </div>\n\n {/* PPN Section */}\n <div style={{ marginTop: tokens.spacingVerticalL }}>\n <div className={styles.row}>\n <span className={styles.ppnLabel}>PPN (Pajak Pertambahan Nilai) 11%</span>\n <span className={styles.ppnValue}>IDR.{taxAmount.toLocaleString('id-ID')}</span>\n </div>\n <div className={styles.ppnNote}>\n *PPN 11% dikenakan untuk biaya layanan dan biaya admin\n </div>\n </div>\n\n {/* Grand Total */}\n <div className={styles.row} style={{ marginTop: tokens.spacingVerticalXXL }}>\n <span className={styles.grandTotalLabel}>Total Pembayaran</span>\n <span className={styles.grandTotalValue}>\n Rp.{grandTotal.toLocaleString('id-ID')}\n </span>\n </div>\n </div>\n </Card>\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n","import {\n Body2,\n makeStyles,\n shorthands,\n Subtitle1,\n Tab,\n TabList,\n TabListProps,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport React from 'react';\n\nimport { CardProfileMenuProps } from './CardProfileMenu.types';\n\nconst useStyles = makeStyles({\n container: {\n display: 'flex',\n flexDirection: 'column',\n backgroundColor: tokens.colorNeutralBackground1,\n ...shorthands.padding(tokens.spacingVerticalL),\n ...shorthands.border(tokens.strokeWidthThin, 'solid', tokens.colorNeutralStroke1),\n borderRadius: tokens.borderRadiusXLarge,\n rowGap: tokens.spacingHorizontalXXL,\n width: '100%',\n },\n sectionList: {\n display: 'flex',\n flexDirection: 'column',\n rowGap: tokens.spacingHorizontalXXL,\n },\n sectionGap: {\n display: 'flex',\n flexDirection: 'column',\n rowGap: tokens.spacingVerticalM,\n },\n labelTab: {\n fontWeight: tokens.fontWeightMedium,\n paddingLeft: tokens.spacingHorizontalMNudge,\n },\n tabItem: {\n '&[aria-selected=\"false\"]': {\n backgroundColor: 'transparent',\n },\n '&[aria-selected=\"true\"]': {\n // brandColors[140] approx #EBF3FC (light blue)\n // brandColors[80] approx #0F6CBD (primary blue)\n // Using generic tokens or hardcoded fallback if brand tokens not available here\n backgroundColor: tokens.colorBrandBackground2, \n color: tokens.colorBrandForeground1,\n },\n justifyContent: 'flex-start',\n },\n tabItemLogout: {\n color: tokens.colorPaletteRedForeground1,\n backgroundColor: 'transparent',\n justifyContent: 'flex-start',\n '&:hover': {\n color: tokens.colorPaletteRedForeground1,\n }\n },\n});\n\nexport const CardProfileMenu: React.FC<CardProfileMenuProps> = ({\n sections,\n selectedValue,\n onTabSelect,\n}) => {\n const styles = useStyles();\n\n const handleTabSelect: TabListProps['onTabSelect'] = (_, data) => {\n onTabSelect(data.value as string);\n };\n\n return (\n <div className={styles.container}>\n <TabList\n vertical\n appearance=\"filled-circular\"\n selectedValue={selectedValue}\n onTabSelect={handleTabSelect}\n >\n <div className={styles.sectionList}>\n {sections.map((section, sectionIndex) => (\n <div key={sectionIndex} className={styles.sectionGap}>\n <div>\n <Subtitle1 className={styles.labelTab}>{section.sectionLabel}</Subtitle1>\n </div>\n {section.tabs.map((tab) => (\n <Tab\n key={tab.value}\n id={tab.value}\n value={tab.value}\n icon={<Icon icon={tab.icon} width={20} height={20} />}\n className={\n tab.value === '/logout' ? styles.tabItemLogout : styles.tabItem\n }\n >\n <Body2>{tab.label}</Body2>\n </Tab>\n ))}\n </div>\n ))}\n </div>\n </TabList>\n </div>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/ModalIllustration/ModalIllustration.tsx","../src/components/ModalIllustration/presets.ts","../src/components/CarouselWithCustomNav/CarouselWithCustomNav.tsx","../src/components/CardPromo/CardPromo.tsx","../src/components/CardBanner/CardBanner.tsx","../src/hooks/useWindowSize.ts","../src/constants/generated/tokens.ts","../src/constants/generated/tokensV2.ts","../src/constants/brandColors.ts","../src/constants/designTokens.ts","../src/constants/themes.ts","../src/components/CardTicket/CardTicket.tsx","../src/components/BackgroundTicketCard/BackgroundTicketCard.tsx","../src/components/BackgroundTicketCard/BackgroundTicketCardVertical.tsx","../src/components/CardServiceMenu/CardServiceMenu.tsx","../src/components/InputDynamic/DatePickerInput.tsx","../src/components/InputDynamic/InputDynamic.tsx","../src/components/InputDynamic/constants.ts","../src/components/CardTicketSearch/CardTicketSearch.constants.ts","../src/components/CardTicketSearch/CardTicketSearch.tsx","../src/components/CardTicketSearchSummary/CardTicketSearchSummary.constants.ts","../src/components/CardTicketSearchSummary/CardTicketSearchSummary.tsx","../src/components/ModalSearchHarbor/ModalSearchHarbor.tsx","../src/components/ModalSelectDate/ModalSelectDate.tsx","../src/components/ModalService/ModalService.tsx","../src/components/ModalTotalPassengers/constants.ts","../src/components/ModalTotalPassengers/ModalTotalPassengers.tsx","../src/components/ModalTypeOfService/ModalTypeOfService.tsx","../src/components/ModalTypeOfService/constants.ts","../src/components/SortMenu/SortMenu.constants.ts","../src/components/SortMenu/SortMenu.tsx","../src/components/ModalFilterTicket/ModalFilterTicket.constants.ts","../src/components/ModalFilterTicket/ModalFilterTicket.tsx","../src/components/DateFilter/DateFilter.constants.ts","../src/components/DateFilter/DateFilter.tsx","../src/components/ModalSearchTicket/ModalSearchTicket.constants.ts","../src/components/ModalSearchTicket/ModalSearchTicket.tsx","../src/components/Stepper/Stepper.tsx","../src/components/CardOrdererInfo/CardOrdererInfo.tsx","../src/components/ModalListPassenger/ModalListPassenger.tsx","../src/components/ModalPassengerForm/ModalPassengerForm.tsx","../src/utils/badge.ts","../src/components/CardPassengerList/CardPassengerList.tsx","../src/components/CardVehicleDetail/CardVehicleDetail.tsx","../src/components/CardVehicleOwnerForm/CardVehicleOwnerForm.tsx","../src/components/CardBookingTicket/CardBookingTicket.tsx","../src/components/CardFAQ/CardFAQ.tsx","../src/components/CardAddon/CardAddon.tsx","../src/components/CardMealCatalog/CardMealCatalog.tsx","../src/components/CardReview/CardReview.tsx","../src/components/CardReviewPassenger/CardReviewPassenger.tsx","../src/components/CardPriceDetails/PriceDetailsTerms.tsx","../src/components/CardPriceDetails/CardPriceDetails.tsx","../src/components/CardPaymentMethodList/CardPaymentMethodList.tsx","../src/components/CardPaymentGuide/CardPaymentGuide.tsx","../src/components/CardPaymentInfo/CardPaymentInfo.tsx","../src/components/CardStatusOrder/CardStatusOrder.tsx","../src/components/ModalPriceDetail/ModalPriceDetail.tsx","../src/components/CardProfileMenu/CardProfileMenu.tsx"],"names":["makeStyles","tokens","jsx","Dialog","DialogSurface","DialogBody","DialogTitle","DialogContent","jsxs","Body1","Button","useStyles","shorthands","useState","useCallback","Carousel","mergeClasses","CarouselViewport","CarouselSlider","CarouselNav","CarouselNavButton","CarouselCard","Skeleton","SkeletonItem","Row","Col","Subtitle2","useEffect","brandColors","lightModeColors","createLightTheme","createDarkTheme","Card","Tooltip","Badge","Icon","Visible","Caption1","Title2","Caption2","Divider","Title3","Caption1Strong","React","Fragment","forwardRef","Popover","PopoverTrigger","Input","PopoverSurface","Calendar","PhoneInputComponent","useRef","hasError","otpIndex","phoneValue","Textarea","Select","Switch","RadioGroup","Radio","Checkbox","typographyStyles","Controller","Field","Label","Text","useForm","useWatch","DEFAULT_LABELS","Body1Strong","useMemo","moment","MessageBar","MessageBarBody","Accordion","AccordionItem","AccordionHeader","AccordionPanel","Menu","MenuTrigger","MenuPopover","MenuList","Range","DialogActions","Caption2Strong","Subtitle1","Body1Stronger","Caption1Stronger","SubtractRegular","AddRegular","DeleteRegular","Display","InfoRegular","Image","Link","Title1","DialogTrigger","TabList","Tab","Body2"],"mappings":"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","file":"index.js","sourcesContent":["import React, { ReactNode } from 'react';\nimport {\n Body1,\n Button,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n makeStyles,\n tokens,\n} from '@fluentui/react-components';\n\nconst useStyles = makeStyles({\n dialogSurface: {\n maxWidth: '600px',\n width: '100%',\n },\n iconContainer: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: tokens.spacingVerticalL,\n textAlign: 'center',\n paddingTop: tokens.spacingVerticalL,\n paddingBottom: tokens.spacingVerticalL,\n },\n image: {\n maxWidth: '100%',\n height: 'auto',\n },\n buttonContainer: {\n display: 'flex',\n width: '100%',\n gap: tokens.spacingHorizontalM,\n },\n});\n\nexport interface ModalIllustrationButton {\n /**\n * Button text\n */\n text: string;\n \n /**\n * Button click handler\n */\n onClick: () => void;\n \n /**\n * Button appearance\n * @default \"primary\"\n */\n appearance?: 'primary' | 'outline' | 'secondary' | 'subtle' | 'transparent';\n}\n\nexport interface ModalIllustrationProps {\n /**\n * Whether the modal is open\n */\n open: boolean;\n \n /**\n * Callback when modal should close\n */\n onClose: () => void;\n \n /**\n * Modal title\n */\n title: string;\n \n /**\n * Modal message content\n * Can be a string or React node for more complex content\n */\n message: string | ReactNode;\n \n /**\n * Image source URL\n * @default \"/assets/images/illustrations/radius.svg\"\n * @remarks\n * When using this component in your application, ensure the asset is available at this path\n * in your public directory, or provide a custom imageSrc prop pointing to your own image.\n * The asset is included in the published package at `node_modules/@asdp/ferryui/dist/assets/images/illustrations/`\n */\n imageSrc?: string;\n \n /**\n * Image alt text\n * @default \"Illustration\"\n */\n imageAlt?: string;\n \n /**\n * Image width\n * @default 361\n */\n imageWidth?: number;\n \n /**\n * Image height\n * @default 203\n */\n imageHeight?: number;\n \n /**\n * Primary button configuration\n */\n primaryButton: ModalIllustrationButton;\n \n /**\n * Optional secondary button configuration\n * If provided, buttons will be displayed side by side\n */\n secondaryButton?: ModalIllustrationButton;\n}\n\nexport const ModalIllustration: React.FC<ModalIllustrationProps> = ({\n open,\n onClose,\n title,\n message,\n imageSrc = '/assets/images/illustrations/radius.svg',\n imageAlt = 'Illustration',\n imageWidth = 361,\n imageHeight = 203,\n primaryButton,\n secondaryButton,\n}) => {\n const styles = useStyles();\n\n return (\n <Dialog open={open} onOpenChange={(_, data) => !data.open && onClose()} modalType=\"modal\">\n <DialogSurface className={styles.dialogSurface}>\n <DialogBody>\n <DialogTitle>{title}</DialogTitle>\n <DialogContent>\n <div className={styles.iconContainer}>\n <img\n src={imageSrc}\n alt={imageAlt}\n width={imageWidth}\n height={imageHeight}\n className={styles.image}\n />\n {typeof message === 'string' ? (\n <Body1 style={{ textAlign: 'center' }}>{message}</Body1>\n ) : (\n message\n )}\n </div>\n <div className={styles.buttonContainer}>\n <Button\n style={{ width: '100%' }}\n type=\"button\"\n appearance={primaryButton.appearance || 'primary'}\n onClick={primaryButton.onClick}\n >\n {primaryButton.text}\n </Button>\n {secondaryButton && (\n <Button\n style={{ width: '100%' }}\n type=\"button\"\n appearance={secondaryButton.appearance || 'outline'}\n onClick={secondaryButton.onClick}\n >\n {secondaryButton.text}\n </Button>\n )}\n </div>\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n\nexport default ModalIllustration;\n","import { ModalIllustrationProps } from './ModalIllustration';\n\n/**\n * Preset configurations for common modal use cases\n */\nexport const MODAL_PRESETS = {\n /**\n * Modal for radius/location restriction\n */\n RADIUS: {\n title: 'Anda berada di luar area pemesanan',\n message: 'Pemesanan tiket tidak dapat dilakukan dari lokasi Anda saat ini. Fitur pembatasan wilayah sedang aktif untuk mencegah pemesanan tidak sah.',\n imageSrc: '/assets/images/illustrations/radius.svg',\n imageAlt: 'Radius Limitation Illustration',\n },\n \n /**\n * Modal for expired session\n */\n SESSION_EXPIRED: {\n title: 'Sesi anda telah berakhir',\n message: 'Waktu sesi Anda telah habis untuk alasan keamanan. Silakan klik tombol dibawah untuk masuk kembali.',\n imageSrc: '/assets/images/illustrations/sessionexp.svg',\n imageAlt: 'Session Expired Illustration',\n },\n \n /**\n * Modal for purchase period expired\n */\n PURCHASE_PERIOD_EXPIRED: {\n title: 'Waktu pembelian telah berakhir',\n message: 'Pemesanan tiket ditutup 1 jam sebelum jadwal keberangkatan. Silakan pilih jadwal keberangkatan lain yang masih tersedia.',\n imageSrc: '/assets/images/illustrations/pay.svg',\n imageAlt: 'Purchase Period Expired Illustration',\n },\n \n /**\n * Modal for transaction limit reached\n */\n TRANSACTION_LIMIT: {\n title: 'Anda mencapai batas transaksi tertunda',\n message: 'Anda telah mencapai batas transaksi tertunda. Pemesanan dapat dilakukan kembali setelah transaksi sebelumnya diselesaikan.',\n imageSrc: '/assets/images/illustrations/mobile-pay.svg',\n imageAlt: 'Transaction Limit Illustration',\n },\n} as const;\n\n/**\n * Type for preset keys\n */\nexport type ModalPresetKey = keyof typeof MODAL_PRESETS;\n\n/**\n * Helper function to get preset configuration\n */\nexport const getModalPreset = (presetKey: ModalPresetKey): Partial<ModalIllustrationProps> => {\n return MODAL_PRESETS[presetKey];\n};\n","import React, { ReactNode, useCallback, useEffect, useRef, useState } from 'react';\nimport {\n Carousel,\n CarouselAnnouncerFunction,\n CarouselNav,\n CarouselNavButton,\n CarouselSlider,\n CarouselViewport,\n makeStyles,\n mergeClasses,\n shorthands,\n tokens,\n} from '@fluentui/react-components';\n\nconst useStyles = makeStyles({\n carousel: {},\n customCarouselNav: {\n display: 'flex',\n gap: tokens.spacingHorizontalXS,\n justifyContent: 'center',\n alignItems: 'center',\n ...shorthands.padding(tokens.spacingVerticalS, tokens.spacingVerticalM),\n borderRadius: tokens.borderRadiusCircular,\n },\n carouselNavButton: {\n '& button': {\n padding: 0,\n marginInline: '0px',\n width: '45px',\n height: '16px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: 'transform 0.4s cubic-bezier(0.4, 0, 0.2, 1)',\n '@media (max-width: 425px)': {\n width: '35px',\n height: '10px',\n },\n },\n '& button::after': {\n content: '\"\"',\n transition:\n 'all 0.4s cubic-bezier(0.4, 0, 0.2, 1), transform 0.4s cubic-bezier(0.4, 0, 0.2, 1)',\n },\n \"& button[aria-selected='true']::after\": {\n backgroundImage: 'linear-gradient(to right,#00B3BD, #8DC63F)',\n width: '55px',\n height: '16px',\n borderRadius: tokens.borderRadiusCircular,\n transform: 'translateX(0)',\n '@media (max-width: 425px)': {\n width: '25px',\n height: '10px',\n },\n '@media (max-width: 768px)': {\n width: '35px',\n height: '13px',\n },\n },\n \"& button[aria-selected='false']::after\": {\n backgroundColor: '#D1D1D1',\n width: '15px',\n height: '15px',\n opacity: '90%',\n transform: 'scale(0.9)',\n '@media (max-width: 425px)': {\n width: '10px',\n height: '10px',\n },\n },\n },\n});\n\nconst defaultAnnouncement: CarouselAnnouncerFunction = (index: number, totalSlides: number) => {\n return `Carousel slide ${index + 1} of ${totalSlides}`;\n};\n\nexport interface CarouselWithCustomNavProps {\n /**\n * Carousel items/children\n */\n children: ReactNode;\n \n /**\n * Whether carousel should loop (circular)\n * @default true\n */\n circular?: boolean;\n \n /**\n * Whether carousel is draggable\n * @default true\n */\n draggable?: boolean;\n \n /**\n * Alignment of carousel items\n * @default \"start\"\n */\n align?: 'start' | 'center' | 'end';\n \n /**\n * Whether to remove whitespace between items\n * @default false\n */\n whitespace?: boolean;\n \n /**\n * Announcement function for accessibility\n */\n announcement?: CarouselAnnouncerFunction;\n \n /**\n * Active index (controlled)\n */\n activeIndex?: number;\n \n /**\n * Callback when active index changes\n */\n onActiveIndexChange?: (index: number) => void;\n \n /**\n * ARIA label for the carousel slider\n * @default \"Carousel\"\n */\n ariaLabel?: string;\n \n /**\n * Whether to use dark background for navigation\n * @default true\n */\n darkNavBackground?: boolean;\n \n /**\n * Additional className for carousel container\n */\n className?: string;\n \n /**\n * Whether to enable card focus mode\n * @default false\n */\n cardFocus?: boolean;\n}\n\nexport const CarouselWithCustomNav: React.FC<CarouselWithCustomNavProps> = ({\n children,\n circular = true,\n draggable = true,\n align = 'start',\n whitespace = false,\n announcement = defaultAnnouncement,\n activeIndex: controlledIndex,\n onActiveIndexChange,\n ariaLabel = 'Carousel',\n darkNavBackground = true,\n className,\n cardFocus = false,\n}) => {\n const styles = useStyles();\n const [internalIndex, setInternalIndex] = useState(0);\n \n // Use controlled index if provided, otherwise use internal state\n const activeIndex = controlledIndex !== undefined ? controlledIndex : internalIndex;\n \n const handleIndexChange = useCallback((index: number) => {\n if (controlledIndex === undefined) {\n setInternalIndex(index);\n }\n onActiveIndexChange?.(index);\n }, [controlledIndex, onActiveIndexChange]);\n\n return (\n <Carousel\n circular={circular}\n draggable={draggable}\n align={align}\n className={mergeClasses(styles.carousel, className)}\n whitespace={whitespace}\n announcement={announcement}\n activeIndex={activeIndex}\n onActiveIndexChange={(_, data) => handleIndexChange(data.index)}\n >\n <CarouselViewport>\n <CarouselSlider\n cardFocus={cardFocus}\n aria-label={ariaLabel}\n >\n {children}\n </CarouselSlider>\n </CarouselViewport>\n <CarouselNav\n style={{\n backgroundColor: darkNavBackground\n ? tokens.colorSubtleBackgroundInverted\n : tokens.colorSubtleBackground,\n marginTop: tokens.spacingVerticalXL,\n }}\n appearance=\"brand\"\n className={styles.carouselNavButton}\n >\n {index => <CarouselNavButton aria-label={`Slide ${index + 1}`} />}\n </CarouselNav>\n </Carousel>\n );\n};\n\nexport default CarouselWithCustomNav;\n","import React from 'react';\nimport {\n Body1,\n Button,\n CarouselCard,\n makeStyles,\n mergeClasses,\n Skeleton,\n SkeletonItem,\n Subtitle2,\n tokens,\n} from '@fluentui/react-components';\nimport { Col, Row } from 'react-grid-system';\n\nconst useStyles = makeStyles({\n actionCard: {\n borderRadius: tokens.borderRadiusXLarge,\n overflow: 'hidden',\n textAlign: 'center',\n width: '360px',\n maxWidth: '360px',\n margin: '0px 6px',\n boxShadow: tokens.shadow4,\n backgroundColor: tokens.colorNeutralForegroundInverted,\n '@media (max-width: 1024px)': {\n width: '200px',\n maxWidth: '200px',\n },\n '@media (max-width: 768px)': {\n width: '190px',\n maxWidth: '190px',\n },\n '@media (max-width: 480px)': {\n width: '180px',\n maxWidth: '180px',\n margin: '0px 4px',\n },\n },\n imageContainer: {\n position: 'relative',\n width: '100%',\n height: '202px',\n overflow: 'hidden',\n '@media (max-width: 1024px)': {\n height: '120px',\n },\n '@media (max-width: 768px)': {\n height: '110px',\n },\n '@media (max-width: 480px)': {\n height: '100px',\n },\n },\n image: {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n objectPosition: 'center',\n },\n info: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n alignContent: 'center',\n justifyContent: 'space-between',\n gap: tokens.spacingVerticalSNudge,\n '@media (max-width: 1024px)': {\n padding: tokens.spacingHorizontalSNudge,\n gap: tokens.spacingVerticalSNudge,\n },\n '@media (max-width: 768px)': {\n padding: tokens.spacingVerticalS,\n gap: tokens.spacingVerticalXS,\n },\n '@media (max-width: 480px)': {\n padding: tokens.spacingVerticalSNudge,\n gap: tokens.spacingVerticalXS,\n },\n },\n infoWrapper: {\n padding: tokens.spacingHorizontalM,\n },\n buttonWrapper:{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n title:{\n lineClamp: 2,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n display: '-webkit-box',\n WebkitLineClamp: 2,\n WebkitBoxOrient: 'vertical',\n }\n});\n\nexport interface CardPromoProps {\n /**\n * Image URL for the promo\n */\n imageUrl: string;\n \n /**\n * Promo title/heading\n */\n title: string;\n \n /**\n * Promo description/subtitle\n */\n description: string;\n \n /**\n * Image alt text\n * @default \"Promo image\"\n */\n imageAlt?: string;\n \n /**\n * Index of the card (for accessibility)\n */\n index?: number;\n \n /**\n * Total number of cards (for accessibility)\n */\n totalCards?: number;\n \n /**\n * Click handler for the card\n */\n onClick?: () => void;\n\n /**\n * Show Button\n */\n showButton?: boolean;\n\n /**\n * Button Text\n */\n buttonText?: string;\n\n /**\n * custom className\n */\n className?: string;\n\n /**\n * custom image className\n */\n imageClassName?: string;\n\n /**\n * custom description className\n */\n descriptionClassName?: string;\n\n /**\n * Loading state\n */\n isLoading?: boolean;\n\n /**\n * Image Only\n */\n imageOnly?: boolean;\n}\n\nexport const CardPromo: React.FC<CardPromoProps> = ({\n imageUrl,\n title,\n description,\n imageAlt = 'Promo image',\n index = 0,\n totalCards,\n onClick,\n showButton = false,\n buttonText = 'Lihat Detail',\n className,\n imageClassName,\n descriptionClassName,\n isLoading = false,\n imageOnly = false,\n}) => {\n const classes = useStyles();\n\n const ariaLabel = totalCards\n ? `Card ${index + 1} of ${totalCards}`\n : `Promo card ${index + 1}`;\n\n if (isLoading) {\n return (\n <CarouselCard\n autoSize\n className={mergeClasses(classes.actionCard, className)}\n style={{ cursor: 'default' }}\n >\n <Skeleton aria-label=\"Loading content\">\n <div className={mergeClasses(classes.imageContainer, imageClassName)}>\n <SkeletonItem shape=\"rectangle\" style={{ width: '100%', height: '100%' }} />\n </div>\n {!imageOnly && (\n <Row className={classes.infoWrapper}>\n <Col className={classes.info} xs={12}>\n <SkeletonItem style={{ width: '70%', height: '20px' }} />\n <SkeletonItem style={{ width: '90%', height: '16px' }} />\n <SkeletonItem style={{ width: '80%', height: '16px' }} />\n </Col>\n </Row>\n )}\n </Skeleton>\n </CarouselCard>\n );\n }\n\n return (\n <CarouselCard\n autoSize\n className={mergeClasses(classes.actionCard, className)}\n aria-label={ariaLabel}\n onClick={onClick}\n style={{ cursor: onClick ? 'pointer' : 'default' }}\n >\n <div className={mergeClasses(classes.imageContainer, imageClassName)}>\n <img\n className={classes.image}\n src={imageUrl}\n role=\"presentation\"\n alt={imageAlt}\n />\n </div>\n {!imageOnly && (\n <Row className={classes.infoWrapper}>\n <Col className={classes.info} xs={12} sm={12} md={12} lg={showButton ? 8 : 12} xl={showButton ? 8 : 12} xxl={showButton ? 8 : 12} xxxl={showButton ? 8 : 12}>\n <Subtitle2 className={classes.title}>{title}</Subtitle2>\n <Body1 className={mergeClasses(classes.title, descriptionClassName)}>{description}</Body1>\n </Col>\n {showButton && (\n <Col className={classes.buttonWrapper} xs={12} sm={12} md={12} lg={showButton ? 4 : 0} xl={showButton ? 4 : 0} xxl={showButton ? 4 : 0} xxxl={showButton ? 4 : 0}>\n <Button\n appearance=\"primary\"\n size=\"small\"\n onClick={onClick}\n style={{ cursor: onClick ? 'pointer' : 'default' }}\n shape='circular'\n >\n {buttonText}\n </Button>\n </Col>\n )}\n </Row>\n )}\n </CarouselCard>\n );\n};\n\nexport default CardPromo;\n","import React from 'react';\nimport {\n CarouselCard,\n makeStyles,\n Skeleton,\n SkeletonItem,\n tokens,\n} from '@fluentui/react-components';\n\nconst useStyles = makeStyles({\n bannerCard: {\n overflow: 'hidden',\n width: '100%',\n maxWidth: '100%',\n margin: 0,\n padding: 0,\n backgroundColor: 'transparent',\n border: 'none',\n height: '450px',\n borderRadius: tokens.borderRadiusXLarge,\n },\n bannerImage: {\n width: '100%',\n height: 'auto',\n objectFit: 'cover',\n display: 'block',\n cursor: 'pointer',\n borderRadius: tokens.borderRadiusXLarge,\n },\n});\n\nexport interface CardBannerProps {\n /**\n * Banner image URL\n */\n imageUrl: string;\n \n /**\n * Banner alt text\n */\n alt: string;\n \n /**\n * Index of the banner (for accessibility)\n */\n index?: number;\n \n /**\n * Total number of banners (for accessibility)\n */\n totalBanners?: number;\n \n /**\n * Click handler for the banner\n */\n onClick?: () => void;\n\n /**\n * Loading state\n */\n isLoading?: boolean;\n}\n\nexport const CardBanner: React.FC<CardBannerProps> = ({\n imageUrl,\n alt,\n index = 0,\n totalBanners,\n onClick,\n isLoading = false,\n}) => {\n const classes = useStyles();\n\n const ariaLabel = totalBanners\n ? `Banner ${index + 1} of ${totalBanners}`\n : `Banner ${index + 1}`;\n\n if (isLoading) {\n return (\n <CarouselCard className={classes.bannerCard}>\n <Skeleton aria-label=\"Loading banner\" style={{ width: '100%', height: '100%' }}>\n <SkeletonItem \n shape=\"rectangle\" \n style={{ \n width: '100%', \n height: '100%', \n borderRadius: tokens.borderRadiusXLarge \n }} \n />\n </Skeleton>\n </CarouselCard>\n );\n }\n\n return (\n <CarouselCard\n className={classes.bannerCard}\n aria-label={ariaLabel}\n >\n <img\n className={classes.bannerImage}\n src={imageUrl}\n alt={alt}\n role=\"presentation\"\n onClick={onClick}\n style={{ cursor: onClick ? 'pointer' : 'default' }}\n />\n </CarouselCard>\n );\n};\n\nexport default CardBanner;\n","import { useEffect, useState } from 'react';\n\n// Hook to get window size\nexport function useWindowSize() {\n const [windowSize, setWindowSize] = useState<{ width: number; height: number }>({\n width: 0,\n height: 0,\n });\n\n useEffect(() => {\n // Handler to call on window resize\n function handleResize() {\n // Set window width/height to state\n setWindowSize({\n width: window.innerWidth,\n height: window.innerHeight,\n });\n }\n\n // Add event listener\n window.addEventListener('resize', handleResize);\n\n // Call handler right away so state gets updated with initial window size\n handleResize();\n\n // Remove event listener on cleanup\n return () => window.removeEventListener('resize', handleResize);\n }, []); // Empty array ensures that effect is only run on mount\n\n return windowSize;\n}\n","/**\n * Auto-generated Figma Tokens\n * Generated by custom build script\n * Source: tokens.json\n * DO NOT EDIT MANUALLY - Run 'npm run tokens:build' to regenerate\n */\n\n// Brand Colors (Brand-10 to Brand-160)\nexport const brandColors = {\n '10': '#000000',\n '20': '#03060e',\n '30': '#060b1c',\n '40': '#09112a',\n '50': '#0c1738',\n '60': '#122255',\n '70': '#182e71',\n '80': '#1e398d',\n '90': '#4b60a4',\n '100': '#7787bb',\n '110': '#a4afd1',\n '120': '#bac2dd',\n '130': '#d0d6e8',\n '140': '#e7e9f4',\n '150': '#fdfdff',\n '160': '#ffffff',\n};\n\n// Design System Tokens\nexport const spacing = {\n '20': 2,\n '30': 3,\n '40': 4,\n '60': 6,\n '80': 8,\n '100': 10,\n '120': 12,\n '130': 13,\n '150': 15,\n '160': 16,\n '180': 18,\n '200': 20,\n '220': 22,\n '240': 24,\n '280': 28,\n '300': 30,\n '320': 32,\n '340': 34,\n '360': 36,\n '400': 40,\n '440': 44,\n '450': 45,\n '470': 47,\n '480': 48,\n '500': 50,\n '510': 51,\n '520': 52,\n '560': 56,\n '600': 60,\n '790': 79,\n '900': 90,\n '960': 96,\n '1000': 100,\n '1050': 105,\n '1120': 112,\n '1200': 120,\n '1222': 122,\n '1360': 136,\n '1520': 152,\n '2000': 200,\n};\n\nexport const borderRadius = {\n '20': 2,\n '40': 4,\n '60': 6,\n '80': 8,\n '120': 12,\n '160': 16,\n '240': 24,\n '320': 32,\n '400': 40,\n 'Circular': 9999,\n};\n\nexport const fontSize = {\n '220': 22,\n};\n\nexport const fontWeight = {\n 'medium': 500,\n 'semibold': 600,\n 'bold': 700,\n};\n\nexport const lineHeight = {};\n\nexport const strokeWidth = {\n '10': 1,\n '15': 1.5,\n '20': 2,\n '30': 3,\n '40': 4,\n '60': 6,\n '05': 0.5,\n};\n\n// Shared Global Colors (Palettes: Secondary, Green, Blue, etc.)\nexport const sharedColors = {\n 'Shared_Dark_red_Shade_50': '#130204',\n 'Shared_Dark_red_Shade_40': '#230308',\n 'Shared_Dark_red_Shade_30': '#420610',\n 'Shared_Dark_red_Shade_20': '#590815',\n 'Shared_Dark_red_Shade_10': '#690a19',\n 'Shared_Dark_red_Primary': '#750b1c',\n 'Shared_Dark_red_Tint_10': '#861b2c',\n 'Shared_Dark_red_Tint_20': '#962f3f',\n 'Shared_Dark_red_Tint_30': '#ac4f5e',\n 'Shared_Dark_red_Tint_40': '#d69ca5',\n 'Shared_Dark_red_Tint_50': '#e9c7cd',\n 'Shared_Dark_red_Tint_60': '#f9f0f2',\n 'Shared_Burgundy_Shade_50': '#1a0607',\n 'Shared_Burgundy_Shade_40': '#310b0d',\n 'Shared_Burgundy_Shade_30': '#5c1519',\n 'Shared_Burgundy_Shade_20': '#7d1d21',\n 'Shared_Burgundy_Shade_10': '#942228',\n 'Shared_Burgundy_Primary': '#a4262c',\n 'Shared_Burgundy_Tint_10': '#af393e',\n 'Shared_Burgundy_Tint_20': '#ba4d52',\n 'Shared_Burgundy_Tint_30': '#c86c70',\n 'Shared_Burgundy_Tint_40': '#e4afb2',\n 'Shared_Burgundy_Tint_50': '#f0d3d4',\n 'Shared_Burgundy_Tint_60': '#fbf4f4',\n 'Shared_Cranberry_Shade_50': '#200205',\n 'Shared_Cranberry_Shade_40': '#3b0509',\n 'Shared_Cranberry_Shade_30': '#6e0811',\n 'Shared_Cranberry_Shade_20': '#960b18',\n 'Shared_Cranberry_Shade_10': '#b10e1c',\n 'Shared_Cranberry_Primary': '#c50f1f',\n 'Shared_Cranberry_Tint_10': '#cc2635',\n 'Shared_Cranberry_Tint_20': '#d33f4c',\n 'Shared_Cranberry_Tint_30': '#dc626d',\n 'Shared_Cranberry_Tint_40': '#eeacb2',\n 'Shared_Cranberry_Tint_50': '#f6d1d5',\n 'Shared_Cranberry_Tint_60': '#fdf3f4',\n 'Shared_Red_Shade_50': '#210809',\n 'Shared_Red_Shade_40': '#3f1011',\n 'Shared_Red_Shade_30': '#751d1f',\n 'Shared_Red_Shade_20': '#9f282b',\n 'Shared_Red_Shade_10': '#bc2f32',\n 'Shared_Red_Primary': '#d13438',\n 'Shared_Red_Tint_10': '#d7494c',\n 'Shared_Red_Tint_20': '#dc5e62',\n 'Shared_Red_Tint_30': '#e37d80',\n 'Shared_Red_Tint_40': '#f1bbbc',\n 'Shared_Red_Tint_50': '#f8dadb',\n 'Shared_Red_Tint_60': '#fdf6f6',\n 'Shared_Dark_orange_Shade_50': '#230900',\n 'Shared_Dark_orange_Shade_40': '#411200',\n 'Shared_Dark_orange_Shade_30': '#7a2101',\n 'Shared_Dark_orange_Shade_20': '#a62d01',\n 'Shared_Dark_orange_Shade_10': '#c43501',\n 'Shared_Dark_orange_Primary': '#da3b01',\n 'Shared_Dark_orange_Tint_10': '#de501c',\n 'Shared_Dark_orange_Tint_20': '#e36537',\n 'Shared_Dark_orange_Tint_30': '#e9835e',\n 'Shared_Dark_orange_Tint_40': '#f4bfab',\n 'Shared_Dark_orange_Tint_50': '#f9dcd1',\n 'Shared_Dark_orange_Tint_60': '#fdf6f3',\n 'Shared_Bronze_Shade_50': '#1b0a01',\n 'Shared_Bronze_Shade_40': '#321303',\n 'Shared_Bronze_Shade_30': '#5e2405',\n 'Shared_Bronze_Shade_20': '#7f3107',\n 'Shared_Bronze_Shade_10': '#963a08',\n 'Shared_Bronze_Primary': '#a74109',\n 'Shared_Bronze_Tint_10': '#b2521e',\n 'Shared_Bronze_Tint_20': '#bc6535',\n 'Shared_Bronze_Tint_30': '#ca8057',\n 'Shared_Bronze_Tint_40': '#e5bba4',\n 'Shared_Bronze_Tint_50': '#f1d9cc',\n 'Shared_Bronze_Tint_60': '#fbf5f2',\n 'Shared_Pumpkin_Shade_50': '#200d03',\n 'Shared_Pumpkin_Shade_40': '#3d1805',\n 'Shared_Pumpkin_Shade_30': '#712d09',\n 'Shared_Pumpkin_Shade_20': '#9a3d0c',\n 'Shared_Pumpkin_Shade_10': '#b6480e',\n 'Shared_Pumpkin_Primary': '#ca5010',\n 'Shared_Pumpkin_Tint_10': '#d06228',\n 'Shared_Pumpkin_Tint_20': '#d77440',\n 'Shared_Pumpkin_Tint_30': '#df8e64',\n 'Shared_Pumpkin_Tint_40': '#efc4ad',\n 'Shared_Pumpkin_Tint_50': '#f7dfd2',\n 'Shared_Pumpkin_Tint_60': '#fdf7f4',\n 'Shared_Orange_Shade_50': '#271002',\n 'Shared_Orange_Shade_40': '#4a1e04',\n 'Shared_Orange_Shade_30': '#8a3707',\n 'Shared_Orange_Shade_20': '#bc4b09',\n 'Shared_Orange_Shade_10': '#de590b',\n 'Shared_Orange_Primary': '#f7630c',\n 'Shared_Orange_Tint_10': '#f87528',\n 'Shared_Orange_Tint_20': '#f98845',\n 'Shared_Orange_Tint_30': '#faa06b',\n 'Shared_Orange_Tint_40': '#fdcfb4',\n 'Shared_Orange_Tint_50': '#fee5d7',\n 'Shared_Orange_Tint_60': '#fff9f5',\n 'Shared_Peach_Shade_50': '#291600',\n 'Shared_Peach_Shade_40': '#4d2a00',\n 'Shared_Peach_Shade_30': '#8f4e00',\n 'Shared_Peach_Shade_20': '#c26a00',\n 'Shared_Peach_Shade_10': '#e67e00',\n 'Shared_Peach_Primary': '#ff8c00',\n 'Shared_Peach_Tint_10': '#ff9a1f',\n 'Shared_Peach_Tint_20': '#ffa83d',\n 'Shared_Peach_Tint_30': '#ffba66',\n 'Shared_Peach_Tint_40': '#ffddb3',\n 'Shared_Peach_Tint_50': '#ffedd6',\n 'Shared_Peach_Tint_60': '#fffaf5',\n 'Shared_Marigold_Shade_50': '#251a00',\n 'Shared_Marigold_Shade_40': '#463100',\n 'Shared_Marigold_Shade_30': '#835b00',\n 'Shared_Marigold_Shade_20': '#b27c00',\n 'Shared_Marigold_Shade_10': '#d39300',\n 'Shared_Marigold_Primary': '#eaa300',\n 'Shared_Marigold_Tint_10': '#edad1c',\n 'Shared_Marigold_Tint_20': '#efb839',\n 'Shared_Marigold_Tint_30': '#f2c661',\n 'Shared_Marigold_Tint_40': '#f9e2ae',\n 'Shared_Marigold_Tint_50': '#fcefd3',\n 'Shared_Marigold_Tint_60': '#fefbf4',\n 'Shared_Yellow_Shade_50': '#282400',\n 'Shared_Yellow_Shade_40': '#4c4400',\n 'Shared_Yellow_Shade_30': '#817400',\n 'Shared_Yellow_Shade_20': '#c0ad00',\n 'Shared_Yellow_Shade_10': '#e4cc00',\n 'Shared_Yellow_Primary': '#fde300',\n 'Shared_Yellow_Tint_10': '#fde61e',\n 'Shared_Yellow_Tint_20': '#fdea3d',\n 'Shared_Yellow_Tint_30': '#feee66',\n 'Shared_Yellow_Tint_40': '#fef7b2',\n 'Shared_Yellow_Tint_50': '#fffad6',\n 'Shared_Yellow_Tint_60': '#fffef5',\n 'Shared_Gold_Shade_50': '#1f1900',\n 'Shared_Gold_Shade_40': '#3a2f00',\n 'Shared_Gold_Shade_30': '#6c5700',\n 'Shared_Gold_Shade_20': '#937700',\n 'Shared_Gold_Shade_10': '#ae8c00',\n 'Shared_Gold_Primary': '#c19c00',\n 'Shared_Gold_Tint_10': '#c8a718',\n 'Shared_Gold_Tint_20': '#d0b232',\n 'Shared_Gold_Tint_30': '#dac157',\n 'Shared_Gold_Tint_40': '#ecdfa5',\n 'Shared_Gold_Tint_50': '#f5eece',\n 'Shared_Gold_Tint_60': '#fdfbf2',\n 'Shared_Brass_Shade_50': '#181202',\n 'Shared_Brass_Shade_40': '#2e2103',\n 'Shared_Brass_Shade_30': '#553e06',\n 'Shared_Brass_Shade_20': '#745408',\n 'Shared_Brass_Shade_10': '#89640a',\n 'Shared_Brass_Primary': '#986f0b',\n 'Shared_Brass_Tint_10': '#a47d1e',\n 'Shared_Brass_Tint_20': '#b18c34',\n 'Shared_Brass_Tint_30': '#c1a256',\n 'Shared_Brass_Tint_40': '#e0cea2',\n 'Shared_Brass_Tint_50': '#efe4cb',\n 'Shared_Brass_Tint_60': '#fbf8f2',\n 'Shared_Brown_Shade_50': '#170e07',\n 'Shared_Brown_Shade_40': '#2b1a0e',\n 'Shared_Brown_Shade_30': '#50301a',\n 'Shared_Brown_Shade_20': '#6c4123',\n 'Shared_Brown_Shade_10': '#804d29',\n 'Shared_Brown_Primary': '#8e562e',\n 'Shared_Brown_Tint_10': '#9c663f',\n 'Shared_Brown_Tint_20': '#a97652',\n 'Shared_Brown_Tint_30': '#bb8f6f',\n 'Shared_Brown_Tint_40': '#ddc3b0',\n 'Shared_Brown_Tint_50': '#edded3',\n 'Shared_Brown_Tint_60': '#faf7f4',\n 'Shared_Dark_brown_Shade_50': '#0c0704',\n 'Shared_Dark_brown_Shade_40': '#170c08',\n 'Shared_Dark_brown_Shade_30': '#2b1710',\n 'Shared_Dark_brown_Shade_20': '#3a1f15',\n 'Shared_Dark_brown_Shade_10': '#452519',\n 'Shared_Dark_brown_Primary': '#4d291c',\n 'Shared_Dark_brown_Tint_10': '#623a2b',\n 'Shared_Dark_brown_Tint_20': '#784d3e',\n 'Shared_Dark_brown_Tint_30': '#946b5c',\n 'Shared_Dark_brown_Tint_40': '#caada3',\n 'Shared_Dark_brown_Tint_50': '#e3d2cb',\n 'Shared_Dark_brown_Tint_60': '#f8f3f2',\n 'Shared_Lime_Shade_50': '#121b06',\n 'Shared_Lime_Shade_40': '#23330b',\n 'Shared_Lime_Shade_30': '#405f14',\n 'Shared_Lime_Shade_20': '#57811b',\n 'Shared_Lime_Shade_10': '#689920',\n 'Shared_Lime_Primary': '#73aa24',\n 'Shared_Lime_Tint_10': '#81b437',\n 'Shared_Lime_Tint_20': '#90be4c',\n 'Shared_Lime_Tint_30': '#a4cc6c',\n 'Shared_Lime_Tint_40': '#cfe5af',\n 'Shared_Lime_Tint_50': '#e5f1d3',\n 'Shared_Lime_Tint_60': '#f8fcf4',\n 'Shared_Forest_Shade_50': '#0c1501',\n 'Shared_Forest_Shade_40': '#162702',\n 'Shared_Forest_Shade_30': '#294903',\n 'Shared_Forest_Shade_20': '#376304',\n 'Shared_Forest_Shade_10': '#427505',\n 'Shared_Forest_Primary': '#498205',\n 'Shared_Forest_Tint_10': '#599116',\n 'Shared_Forest_Tint_20': '#6ba02b',\n 'Shared_Forest_Tint_30': '#85b44c',\n 'Shared_Forest_Tint_40': '#bdd99b',\n 'Shared_Forest_Tint_50': '#dbebc7',\n 'Shared_Forest_Tint_60': '#f6faf0',\n 'Shared_Seafoam_Shade_50': '#002111',\n 'Shared_Seafoam_Shade_40': '#003d20',\n 'Shared_Seafoam_Shade_30': '#00723b',\n 'Shared_Seafoam_Shade_20': '#009b51',\n 'Shared_Seafoam_Shade_10': '#00b85f',\n 'Shared_Seafoam_Primary': '#00cc6a',\n 'Shared_Seafoam_Tint_10': '#19d279',\n 'Shared_Seafoam_Tint_20': '#34d889',\n 'Shared_Seafoam_Tint_30': '#5ae0a0',\n 'Shared_Seafoam_Tint_40': '#a8f0cd',\n 'Shared_Seafoam_Tint_50': '#cff7e4',\n 'Shared_Seafoam_Tint_60': '#f3fdf8',\n 'Shared_Light_green_Shade_50': '#031a02',\n 'Shared_Light_green_Shade_40': '#063004',\n 'Shared_Light_green_Shade_30': '#0b5a08',\n 'Shared_Light_green_Shade_20': '#0e7a0b',\n 'Shared_Light_green_Shade_10': '#11910d',\n 'Shared_Light_green_Primary': '#13a10e',\n 'Shared_Light_green_Tint_10': '#27ac22',\n 'Shared_Light_green_Tint_20': '#3db838',\n 'Shared_Light_green_Tint_30': '#5ec75a',\n 'Shared_Light_green_Tint_40': '#a7e3a5',\n 'Shared_Light_green_Tint_50': '#cef0cd',\n 'Shared_Light_green_Tint_60': '#f2fbf2',\n 'Shared_Green_Shade_50': '#031403',\n 'Shared_Green_Shade_40': '#052505',\n 'Shared_Green_Shade_30': '#094509',\n 'Shared_Green_Shade_20': '#0c5e0c',\n 'Shared_Green_Shade_10': '#0e700e',\n 'Shared_Green_Primary': '#107c10',\n 'Shared_Green_Tint_10': '#218c21',\n 'Shared_Green_Tint_20': '#359b35',\n 'Shared_Green_Tint_30': '#54b054',\n 'Shared_Green_Tint_40': '#9fd89f',\n 'Shared_Green_Tint_50': '#c9eac9',\n 'Shared_Green_Tint_60': '#f1faf1',\n 'Shared_Dark_green_Shade_50': '#021102',\n 'Shared_Dark_green_Shade_40': '#032003',\n 'Shared_Dark_green_Shade_30': '#063b06',\n 'Shared_Dark_green_Shade_20': '#085108',\n 'Shared_Dark_green_Shade_10': '#0a5f0a',\n 'Shared_Dark_green_Primary': '#0b6a0b',\n 'Shared_Dark_green_Tint_10': '#1a7c1a',\n 'Shared_Dark_green_Tint_20': '#2d8e2d',\n 'Shared_Dark_green_Tint_30': '#4da64d',\n 'Shared_Dark_green_Tint_40': '#9ad29a',\n 'Shared_Dark_green_Tint_50': '#c6e7c6',\n 'Shared_Dark_green_Tint_60': '#f0f9f0',\n 'Shared_Light_teal_Shade_50': '#001d1f',\n 'Shared_Light_teal_Shade_40': '#00373a',\n 'Shared_Light_teal_Shade_30': '#00666d',\n 'Shared_Light_teal_Shade_20': '#008b94',\n 'Shared_Light_teal_Shade_10': '#00a5af',\n 'Shared_Light_teal_Primary': '#00b7c3',\n 'Shared_Light_teal_Tint_10': '#18bfca',\n 'Shared_Light_teal_Tint_20': '#32c8d1',\n 'Shared_Light_teal_Tint_30': '#58d3db',\n 'Shared_Light_teal_Tint_40': '#a6e9ed',\n 'Shared_Light_teal_Tint_50': '#cef3f5',\n 'Shared_Light_teal_Tint_60': '#f2fcfd',\n 'Shared_Teal_Shade_50': '#001516',\n 'Shared_Teal_Shade_40': '#012728',\n 'Shared_Teal_Shade_30': '#02494c',\n 'Shared_Teal_Shade_20': '#026467',\n 'Shared_Teal_Shade_10': '#037679',\n 'Shared_Teal_Primary': '#038387',\n 'Shared_Teal_Tint_10': '#159195',\n 'Shared_Teal_Tint_20': '#2aa0a4',\n 'Shared_Teal_Tint_30': '#4cb4b7',\n 'Shared_Teal_Tint_40': '#9bd9db',\n 'Shared_Teal_Tint_50': '#c7ebec',\n 'Shared_Teal_Tint_60': '#f0fafa',\n 'Shared_Dark_teal_Shade_50': '#001010',\n 'Shared_Dark_teal_Shade_40': '#001f1f',\n 'Shared_Dark_teal_Shade_30': '#003939',\n 'Shared_Dark_teal_Shade_20': '#004e4e',\n 'Shared_Dark_teal_Shade_10': '#005c5c',\n 'Shared_Dark_teal_Primary': '#006666',\n 'Shared_Dark_teal_Tint_10': '#0e7878',\n 'Shared_Dark_teal_Tint_20': '#218b8b',\n 'Shared_Dark_teal_Tint_30': '#41a3a3',\n 'Shared_Dark_teal_Tint_40': '#92d1d1',\n 'Shared_Dark_teal_Tint_50': '#c2e7e7',\n 'Shared_Dark_teal_Tint_60': '#eff9f9',\n 'Shared_Cyan_Shade_50': '#00181e',\n 'Shared_Cyan_Shade_40': '#002e38',\n 'Shared_Cyan_Shade_30': '#005669',\n 'Shared_Cyan_Shade_20': '#00748f',\n 'Shared_Cyan_Shade_10': '#008aa9',\n 'Shared_Cyan_Primary': '#0099bc',\n 'Shared_Cyan_Tint_10': '#18a4c4',\n 'Shared_Cyan_Tint_20': '#31afcc',\n 'Shared_Cyan_Tint_30': '#56bfd7',\n 'Shared_Cyan_Tint_40': '#a4deeb',\n 'Shared_Cyan_Tint_50': '#cdedf4',\n 'Shared_Cyan_Tint_60': '#f2fafc',\n 'Shared_Steel_Shade_50': '#000f12',\n 'Shared_Steel_Shade_40': '#001b22',\n 'Shared_Steel_Shade_30': '#00333f',\n 'Shared_Steel_Shade_20': '#004555',\n 'Shared_Steel_Shade_10': '#005265',\n 'Shared_Steel_Primary': '#005b70',\n 'Shared_Steel_Tint_10': '#0f6c81',\n 'Shared_Steel_Tint_20': '#237d92',\n 'Shared_Steel_Tint_30': '#4496a9',\n 'Shared_Steel_Tint_40': '#94c8d4',\n 'Shared_Steel_Tint_50': '#c3e1e8',\n 'Shared_Steel_Tint_60': '#eff7f9',\n 'Shared_Light_blue_Shade_50': '#091823',\n 'Shared_Light_blue_Shade_40': '#112d42',\n 'Shared_Light_blue_Shade_30': '#20547c',\n 'Shared_Light_blue_Shade_20': '#2c72a8',\n 'Shared_Light_blue_Shade_10': '#3487c7',\n 'Shared_Light_blue_Primary': '#3a96dd',\n 'Shared_Light_blue_Tint_10': '#4fa1e1',\n 'Shared_Light_blue_Tint_20': '#65ade5',\n 'Shared_Light_blue_Tint_30': '#83bdeb',\n 'Shared_Light_blue_Tint_40': '#bfddf5',\n 'Shared_Light_blue_Tint_50': '#dcedfa',\n 'Shared_Light_blue_Tint_60': '#f6fafe',\n 'Shared_Blue_Shade_50': '#001322',\n 'Shared_Blue_Shade_40': '#002440',\n 'Shared_Blue_Shade_30': '#004377',\n 'Shared_Blue_Shade_20': '#005ba1',\n 'Shared_Blue_Shade_10': '#006cbf',\n 'Shared_Blue_Primary': '#0078d4',\n 'Shared_Blue_Tint_10': '#1a86d9',\n 'Shared_Blue_Tint_20': '#3595de',\n 'Shared_Blue_Tint_30': '#5caae5',\n 'Shared_Blue_Tint_40': '#a9d3f2',\n 'Shared_Blue_Tint_50': '#d0e7f8',\n 'Shared_Blue_Tint_60': '#f3f9fd',\n 'Shared_Royal_blue_Shade_50': '#000c16',\n 'Shared_Royal_blue_Shade_40': '#00172a',\n 'Shared_Royal_blue_Shade_30': '#002c4e',\n 'Shared_Royal_blue_Shade_20': '#003b6a',\n 'Shared_Royal_blue_Shade_10': '#00467e',\n 'Shared_Royal_blue_Primary': '#004e8c',\n 'Shared_Royal_blue_Tint_10': '#125e9a',\n 'Shared_Royal_blue_Tint_20': '#286fa8',\n 'Shared_Royal_blue_Tint_30': '#4a89ba',\n 'Shared_Royal_blue_Tint_40': '#9abfdc',\n 'Shared_Royal_blue_Tint_50': '#c7dced',\n 'Shared_Royal_blue_Tint_60': '#f0f6fa',\n 'Shared_Dark_blue_Shade_50': '#000910',\n 'Shared_Dark_blue_Shade_40': '#00111f',\n 'Shared_Dark_blue_Shade_30': '#002039',\n 'Shared_Dark_blue_Shade_20': '#002b4e',\n 'Shared_Dark_blue_Shade_10': '#00335c',\n 'Shared_Dark_blue_Primary': '#003966',\n 'Shared_Dark_blue_Tint_10': '#0e4a78',\n 'Shared_Dark_blue_Tint_20': '#215c8b',\n 'Shared_Dark_blue_Tint_30': '#4178a3',\n 'Shared_Dark_blue_Tint_40': '#92b5d1',\n 'Shared_Dark_blue_Tint_50': '#c2d6e7',\n 'Shared_Dark_blue_Tint_60': '#eff4f9',\n 'Shared_Cornflower_Shade_50': '#0d1126',\n 'Shared_Cornflower_Shade_40': '#182047',\n 'Shared_Cornflower_Shade_30': '#2c3c85',\n 'Shared_Cornflower_Shade_20': '#3c51b4',\n 'Shared_Cornflower_Shade_10': '#4760d5',\n 'Shared_Cornflower_Primary': '#4f6bed',\n 'Shared_Cornflower_Tint_10': '#637cef',\n 'Shared_Cornflower_Tint_20': '#778df1',\n 'Shared_Cornflower_Tint_30': '#93a4f4',\n 'Shared_Cornflower_Tint_40': '#c8d1fa',\n 'Shared_Cornflower_Tint_50': '#e1e6fc',\n 'Shared_Cornflower_Tint_60': '#f7f9fe',\n 'Shared_Navy_Shade_50': '#00061d',\n 'Shared_Navy_Shade_40': '#000c36',\n 'Shared_Navy_Shade_30': '#001665',\n 'Shared_Navy_Shade_20': '#001e89',\n 'Shared_Navy_Shade_10': '#0023a2',\n 'Shared_Navy_Primary': '#0027b4',\n 'Shared_Navy_Tint_10': '#173bbd',\n 'Shared_Navy_Tint_20': '#3050c6',\n 'Shared_Navy_Tint_30': '#546fd2',\n 'Shared_Navy_Tint_40': '#a3b2e8',\n 'Shared_Navy_Tint_50': '#ccd5f3',\n 'Shared_Navy_Tint_60': '#f2f4fc',\n 'Shared_Lavender_Shade_50': '#120f25',\n 'Shared_Lavender_Shade_40': '#221d46',\n 'Shared_Lavender_Shade_30': '#3f3682',\n 'Shared_Lavender_Shade_20': '#5649b0',\n 'Shared_Lavender_Shade_10': '#6656d1',\n 'Shared_Lavender_Primary': '#7160e8',\n 'Shared_Lavender_Tint_10': '#8172eb',\n 'Shared_Lavender_Tint_20': '#9184ee',\n 'Shared_Lavender_Tint_30': '#a79cf1',\n 'Shared_Lavender_Tint_40': '#d2ccf8',\n 'Shared_Lavender_Tint_50': '#e7e4fb',\n 'Shared_Lavender_Tint_60': '#f9f8fe',\n 'Shared_Purple_Shade_50': '#0f0717',\n 'Shared_Purple_Shade_40': '#1c0e2b',\n 'Shared_Purple_Shade_30': '#341a51',\n 'Shared_Purple_Shade_20': '#46236e',\n 'Shared_Purple_Shade_10': '#532982',\n 'Shared_Purple_Primary': '#5c2e91',\n 'Shared_Purple_Tint_10': '#6b3f9e',\n 'Shared_Purple_Tint_20': '#7c52ab',\n 'Shared_Purple_Tint_30': '#9470bd',\n 'Shared_Purple_Tint_40': '#c6b1de',\n 'Shared_Purple_Tint_50': '#e0d3ed',\n 'Shared_Purple_Tint_60': '#f7f4fb',\n 'Shared_Dark_purple_Shade_50': '#0a0411',\n 'Shared_Dark_purple_Shade_40': '#130820',\n 'Shared_Dark_purple_Shade_30': '#240f3c',\n 'Shared_Dark_purple_Shade_20': '#311552',\n 'Shared_Dark_purple_Shade_10': '#3a1861',\n 'Shared_Dark_purple_Primary': '#401b6c',\n 'Shared_Dark_purple_Tint_10': '#512b7e',\n 'Shared_Dark_purple_Tint_20': '#633e8f',\n 'Shared_Dark_purple_Tint_30': '#7e5ca7',\n 'Shared_Dark_purple_Tint_40': '#b9a3d3',\n 'Shared_Dark_purple_Tint_50': '#d8cce7',\n 'Shared_Dark_purple_Tint_60': '#f5f2f9',\n 'Shared_Orchid_Shade_50': '#16101d',\n 'Shared_Orchid_Shade_40': '#281e37',\n 'Shared_Orchid_Shade_30': '#4c3867',\n 'Shared_Orchid_Shade_20': '#674c8c',\n 'Shared_Orchid_Shade_10': '#795aa6',\n 'Shared_Orchid_Primary': '#8764b8',\n 'Shared_Orchid_Tint_10': '#9373c0',\n 'Shared_Orchid_Tint_20': '#a083c9',\n 'Shared_Orchid_Tint_30': '#b29ad4',\n 'Shared_Orchid_Tint_40': '#d7caea',\n 'Shared_Orchid_Tint_50': '#e9e2f4',\n 'Shared_Orchid_Tint_60': '#f9f8fc',\n 'Shared_Grape_Shade_50': '#160418',\n 'Shared_Grape_Shade_40': '#29072e',\n 'Shared_Grape_Shade_30': '#4c0d55',\n 'Shared_Grape_Shade_20': '#671174',\n 'Shared_Grape_Shade_10': '#7a1589',\n 'Shared_Grape_Primary': '#881798',\n 'Shared_Grape_Tint_10': '#952aa4',\n 'Shared_Grape_Tint_20': '#a33fb1',\n 'Shared_Grape_Tint_30': '#b55fc1',\n 'Shared_Grape_Tint_40': '#d9a7e0',\n 'Shared_Grape_Tint_50': '#eaceef',\n 'Shared_Grape_Tint_60': '#faf2fb',\n 'Shared_Berry_Shade_50': '#1f091d',\n 'Shared_Berry_Shade_40': '#3a1136',\n 'Shared_Berry_Shade_30': '#6d2064',\n 'Shared_Berry_Shade_20': '#932b88',\n 'Shared_Berry_Shade_10': '#af33a1',\n 'Shared_Berry_Primary': '#c239b3',\n 'Shared_Berry_Tint_10': '#c94cbc',\n 'Shared_Berry_Tint_20': '#d161c4',\n 'Shared_Berry_Tint_30': '#da7ed0',\n 'Shared_Berry_Tint_40': '#edbbe7',\n 'Shared_Berry_Tint_50': '#f5daf2',\n 'Shared_Berry_Tint_60': '#fdf5fc',\n 'Shared_Lilac_Shade_50': '#1c0b1f',\n 'Shared_Lilac_Shade_40': '#35153a',\n 'Shared_Lilac_Shade_30': '#63276d',\n 'Shared_Lilac_Shade_20': '#863593',\n 'Shared_Lilac_Shade_10': '#9f3faf',\n 'Shared_Lilac_Primary': '#b146c2',\n 'Shared_Lilac_Tint_10': '#ba58c9',\n 'Shared_Lilac_Tint_20': '#c36bd1',\n 'Shared_Lilac_Tint_30': '#cf87da',\n 'Shared_Lilac_Tint_40': '#e6bfed',\n 'Shared_Lilac_Tint_50': '#f2dcf5',\n 'Shared_Lilac_Tint_60': '#fcf6fd',\n 'Shared_Pink_Shade_50': '#24091b',\n 'Shared_Pink_Shade_40': '#441232',\n 'Shared_Pink_Shade_30': '#80215d',\n 'Shared_Pink_Shade_20': '#ad2d7e',\n 'Shared_Pink_Shade_10': '#cd3595',\n 'Shared_Pink_Primary': '#e43ba6',\n 'Shared_Pink_Tint_10': '#e750b0',\n 'Shared_Pink_Tint_20': '#ea66ba',\n 'Shared_Pink_Tint_30': '#ef85c8',\n 'Shared_Pink_Tint_40': '#f7c0e3',\n 'Shared_Pink_Tint_50': '#fbddf0',\n 'Shared_Pink_Tint_60': '#fef6fb',\n 'Shared_Hot_pink_Shade_50': '#240016',\n 'Shared_Hot_pink_Shade_40': '#44002a',\n 'Shared_Hot_pink_Shade_30': '#7f004e',\n 'Shared_Hot_pink_Shade_20': '#ad006a',\n 'Shared_Hot_pink_Shade_10': '#cc007e',\n 'Shared_Hot_pink_Primary': '#e3008c',\n 'Shared_Hot_pink_Tint_10': '#e61c99',\n 'Shared_Hot_pink_Tint_20': '#ea38a6',\n 'Shared_Hot_pink_Tint_30': '#ee5fb7',\n 'Shared_Hot_pink_Tint_40': '#f7adda',\n 'Shared_Hot_pink_Tint_50': '#fbd2eb',\n 'Shared_Hot_pink_Tint_60': '#fef4fa',\n 'Shared_Magenta_Shade_50': '#1f0013',\n 'Shared_Magenta_Shade_40': '#390024',\n 'Shared_Magenta_Shade_30': '#6b0043',\n 'Shared_Magenta_Shade_20': '#91005a',\n 'Shared_Magenta_Shade_10': '#ac006b',\n 'Shared_Magenta_Primary': '#bf0077',\n 'Shared_Magenta_Tint_10': '#c71885',\n 'Shared_Magenta_Tint_20': '#ce3293',\n 'Shared_Magenta_Tint_30': '#d957a8',\n 'Shared_Magenta_Tint_40': '#eca5d1',\n 'Shared_Magenta_Tint_50': '#f5cee6',\n 'Shared_Magenta_Tint_60': '#fcf2f9',\n 'Shared_Plum_Shade_50': '#13000c',\n 'Shared_Plum_Shade_40': '#240017',\n 'Shared_Plum_Shade_30': '#43002b',\n 'Shared_Plum_Shade_20': '#5a003b',\n 'Shared_Plum_Shade_10': '#6b0045',\n 'Shared_Plum_Primary': '#77004d',\n 'Shared_Plum_Tint_10': '#87105d',\n 'Shared_Plum_Tint_20': '#98246f',\n 'Shared_Plum_Tint_30': '#ad4589',\n 'Shared_Plum_Tint_40': '#d696c0',\n 'Shared_Plum_Tint_50': '#e9c4dc',\n 'Shared_Plum_Tint_60': '#faf0f6',\n 'Shared_Beige_Shade_50': '#141313',\n 'Shared_Beige_Shade_40': '#252323',\n 'Shared_Beige_Shade_30': '#444241',\n 'Shared_Beige_Shade_20': '#5d5958',\n 'Shared_Beige_Shade_10': '#6e6968',\n 'Shared_Beige_Primary': '#7a7574',\n 'Shared_Beige_Tint_10': '#8a8584',\n 'Shared_Beige_Tint_20': '#9a9594',\n 'Shared_Beige_Tint_30': '#afabaa',\n 'Shared_Beige_Tint_40': '#d7d4d4',\n 'Shared_Beige_Tint_50': '#eae8e8',\n 'Shared_Beige_Tint_60': '#faf9f9',\n 'Shared_Mink_Shade_50': '#0f0e0e',\n 'Shared_Mink_Shade_40': '#1c1b1a',\n 'Shared_Mink_Shade_30': '#343231',\n 'Shared_Mink_Shade_20': '#474443',\n 'Shared_Mink_Shade_10': '#54514f',\n 'Shared_Mink_Primary': '#5d5a58',\n 'Shared_Mink_Tint_10': '#706d6b',\n 'Shared_Mink_Tint_20': '#84817e',\n 'Shared_Mink_Tint_30': '#9e9b99',\n 'Shared_Mink_Tint_40': '#cecccb',\n 'Shared_Mink_Tint_50': '#e5e4e3',\n 'Shared_Mink_Tint_60': '#f8f8f8',\n 'Shared_Silver_Shade_50': '#151818',\n 'Shared_Silver_Shade_40': '#282d2e',\n 'Shared_Silver_Shade_30': '#4a5356',\n 'Shared_Silver_Shade_20': '#657174',\n 'Shared_Silver_Shade_10': '#78868a',\n 'Shared_Silver_Primary': '#859599',\n 'Shared_Silver_Tint_10': '#92a1a5',\n 'Shared_Silver_Tint_20': '#a0aeb1',\n 'Shared_Silver_Tint_30': '#b3bfc2',\n 'Shared_Silver_Tint_40': '#d8dfe0',\n 'Shared_Silver_Tint_50': '#eaeeef',\n 'Shared_Silver_Tint_60': '#fafbfb',\n 'Shared_Platinum_Shade_50': '#111314',\n 'Shared_Platinum_Shade_40': '#1f2426',\n 'Shared_Platinum_Shade_30': '#3b4447',\n 'Shared_Platinum_Shade_20': '#505c60',\n 'Shared_Platinum_Shade_10': '#5f6d71',\n 'Shared_Platinum_Primary': '#69797e',\n 'Shared_Platinum_Tint_10': '#79898d',\n 'Shared_Platinum_Tint_20': '#89989d',\n 'Shared_Platinum_Tint_30': '#a0adb2',\n 'Shared_Platinum_Tint_40': '#cdd6d8',\n 'Shared_Platinum_Tint_50': '#e4e9ea',\n 'Shared_Platinum_Tint_60': '#f8f9fa',\n 'Shared_Anchor_Shade_50': '#090a0b',\n 'Shared_Anchor_Shade_40': '#111315',\n 'Shared_Anchor_Shade_30': '#202427',\n 'Shared_Anchor_Shade_20': '#2b3135',\n 'Shared_Anchor_Shade_10': '#333a3f',\n 'Shared_Anchor_Primary': '#394146',\n 'Shared_Anchor_Tint_10': '#4d565c',\n 'Shared_Anchor_Tint_20': '#626c72',\n 'Shared_Anchor_Tint_30': '#808a90',\n 'Shared_Anchor_Tint_40': '#bcc3c7',\n 'Shared_Anchor_Tint_50': '#dbdfe1',\n 'Shared_Anchor_Tint_60': '#f6f7f8',\n 'Shared_Charcoal_Shade_50': '#090909',\n 'Shared_Charcoal_Shade_40': '#111111',\n 'Shared_Charcoal_Shade_30': '#202020',\n 'Shared_Charcoal_Shade_20': '#2b2b2b',\n 'Shared_Charcoal_Shade_10': '#333333',\n 'Shared_Charcoal_Primary': '#393939',\n 'Shared_Charcoal_Tint_10': '#515151',\n 'Shared_Charcoal_Tint_20': '#686868',\n 'Shared_Charcoal_Tint_30': '#888888',\n 'Shared_Charcoal_Tint_40': '#c4c4c4',\n 'Shared_Charcoal_Tint_50': '#dfdfdf',\n 'Shared_Charcoal_Tint_60': '#f7f7f7',\n 'Shared_Charcoal_Color': '#ffffff',\n 'Shared_Secondary_Shade_50': '#1c280d',\n 'Shared_Secondary_Shade_40': '#334717',\n 'Shared_Secondary_Shade_30': '#496721',\n 'Shared_Secondary_Shade_20': '#60872b',\n 'Shared_Secondary_Shade_10': '#76a635',\n 'Shared_Secondary_Primary': '#8dc63f',\n 'Shared_Secondary_Tint_10': '#9fcf5e',\n 'Shared_Secondary_Tint_20': '#b1d87c',\n 'Shared_Secondary_Tint_30': '#c4e19b',\n 'Shared_Secondary_Tint_40': '#d6eaba',\n 'Shared_Secondary_Tint_50': '#e8f4d9',\n 'Shared_Secondary_Tint_60': '#fafdf7',\n 'Shared_Tertiary_Shade_50': '#002330',\n 'Shared_Tertiary_Shade_40': '#003f56',\n 'Shared_Tertiary_Shade_30': '#005a7c',\n 'Shared_Tertiary_Shade_20': '#0076a3',\n 'Shared_Tertiary_Shade_10': '#0092c9',\n 'Shared_Tertiary_Primary': '#00aeef',\n 'Shared_Tertiary_Tint_10': '#29bbf2',\n 'Shared_Tertiary_Tint_20': '#52c8f4',\n 'Shared_Tertiary_Tint_30': '#7ad5f7',\n 'Shared_Tertiary_Tint_40': '#a3e2f9',\n 'Shared_Tertiary_Tint_50': '#cceffc',\n 'Shared_Tertiary_Tint_60': '#f5fcfe',\n 'Shared_Quarternary_Shade_50': '#002426',\n 'Shared_Quarternary_Shade_40': '#004044',\n 'Shared_Quarternary_Shade_30': '#005d62',\n 'Shared_Quarternary_Shade_20': '#007a81',\n 'Shared_Quarternary_Shade_10': '#00969f',\n 'Shared_Quarternary_Primary': '#00b3bd',\n 'Shared_Quarternary_Tint_10': '#29bfc8',\n 'Shared_Quarternary_Tint_20': '#52cbd2',\n 'Shared_Quarternary_Tint_30': '#7ad7dd',\n 'Shared_Quarternary_Tint_40': '#a3e4e7',\n 'Shared_Quarternary_Tint_50': '#ccf0f2',\n 'Shared_Quarternary_Tint_60': '#f5fcfc',\n};\n\n// Light Mode Colors\nexport const lightModeColors = {\n 'Neutral_Background_1_Rest': '#ffffff',\n 'Neutral_Background_1_Hover': '#f5f5f5',\n 'Neutral_Background_1_Pressed': '#e0e0e0',\n 'Neutral_Background_1_Selected': '#ebebeb',\n 'Neutral_Background_2_Rest': '#fafafa',\n 'Neutral_Background_2_Hover': '#f0f0f0',\n 'Neutral_Background_2_Pressed': '#dbdbdb',\n 'Neutral_Background_2_Selected': '#e6e6e6',\n 'Neutral_Background_3_Rest': '#f5f5f5',\n 'Neutral_Background_3_Hover': '#ebebeb',\n 'Neutral_Background_3_Pressed': '#d6d6d6',\n 'Neutral_Background_3_Selected': '#e0e0e0',\n 'Neutral_Background_4_Rest': '#f0f0f0',\n 'Neutral_Background_4_Hover': '#fafafa',\n 'Neutral_Background_4_Pressed': '#f5f5f5',\n 'Neutral_Background_4_Selected': '#ffffff',\n 'Neutral_Background_5_Rest': '#ebebeb',\n 'Neutral_Background_5_Hover': '#f5f5f5',\n 'Neutral_Background_5_Pressed': '#f0f0f0',\n 'Neutral_Background_5_Selected': '#fafafa',\n 'Neutral_Background_6_Rest': '#e6e6e6',\n 'Neutral_Background_Inverted_Rest': '#292929',\n 'Neutral_Background_Inverted_Disabled_Rest': 1,\n 'Neutral_Background_Alpha_1_Rest': '#1a1a1a80',\n 'Neutral_Background_Alpha_2_Rest': 8,\n 'Neutral_Background_Static_Rest': '#333333',\n 'Neutral_Background_Subtle_Rest': '#00000000',\n 'Neutral_Background_Subtle_Hover': '#f5f5f5',\n 'Neutral_Background_Subtle_Pressed': '#e0e0e0',\n 'Neutral_Background_Subtle_Selected': '#ebebeb',\n 'Neutral_Background_Subtle_Light alpha_Hover': '#1a1a1ab3',\n 'Neutral_Background_Subtle_Light alpha_Pressed': '#1a1a1a80',\n 'Neutral_Background_Subtle_Light alpha_Selected': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Rest': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Hover': 1,\n 'Neutral_Background_Subtle_Inverted_Pressed': 3,\n 'Neutral_Background_Subtle_Inverted_Selected': 2,\n 'Neutral_Background_Transparent_Rest': '#00000000',\n 'Neutral_Background_Transparent_Hover': '#00000000',\n 'Neutral_Background_Transparent_Pressed': '#00000000',\n 'Neutral_Background_Transparent_Selected': '#00000000',\n 'Neutral_Background_Disabled_Rest': '#f0f0f0',\n 'Neutral_Background_Stencil_1_Rest': '#e6e6e6',\n 'Neutral_Background_Stencil_1_Alpha_Rest': 1,\n 'Neutral_Background_Stencil_2_Rest': '#fafafa',\n 'Neutral_Background_Stencil_2_Alpha_Rest': '#1a1a1a0d',\n 'Neutral_Background_Overlay_Rest': 4,\n 'Neutral_Background_Overlay_Scrollbar_Rest': '#1a1a1a80',\n 'Neutral_Foreground_1_Rest': '#242424',\n 'Neutral_Foreground_1_Hover': '#242424',\n 'Neutral_Foreground_1_Pressed': '#242424',\n 'Neutral_Foreground_1_Selected': '#242424',\n 'Neutral_Foreground_2_Rest': '#424242',\n 'Neutral_Foreground_2_Hover': '#242424',\n 'Neutral_Foreground_2_Pressed': '#242424',\n 'Neutral_Foreground_2_Selected': '#242424',\n 'Neutral_Foreground_2_Brand_Hover': '#1e398d',\n 'Neutral_Foreground_2_Brand_Pressed': '#182e71',\n 'Neutral_Foreground_2_Brand_Selected': '#1e398d',\n 'Neutral_Foreground_2_Link_Rest': '#424242',\n 'Neutral_Foreground_2_Link_Hover': '#242424',\n 'Neutral_Foreground_2_Link_Pressed': '#242424',\n 'Neutral_Foreground_2_Link_Selected': '#242424',\n 'Neutral_Foreground_3_Rest': '#616161',\n 'Neutral_Foreground_3_Hover': '#424242',\n 'Neutral_Foreground_3_Pressed': '#424242',\n 'Neutral_Foreground_3_Selected': '#424242',\n 'Neutral_Foreground_3_Brand_Hover': '#1e398d',\n 'Neutral_Foreground_3_Brand_Pressed': '#182e71',\n 'Neutral_Foreground_3_Brand_Selected': '#1e398d',\n 'Neutral_Foreground_4_Rest': '#707070',\n 'Neutral_Foreground_Disabled_Rest': '#bdbdbd',\n 'Neutral_Foreground_Static_Rest': '#242424',\n 'Neutral_Foreground_Static_Inverted_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Hover': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Pressed': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Selected': '#ffffff',\n 'Neutral_Foreground_Inverted_2_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_Disabled_Rest': 4,\n 'Neutral_Foreground_Inverted_Link_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Hover': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Pressed': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Selected': '#ffffff',\n 'Neutral_Foreground_On Brand_Rest': '#ffffff',\n 'Neutral_Stroke_1_Rest': '#d1d1d1',\n 'Neutral_Stroke_1_Hover': '#c7c7c7',\n 'Neutral_Stroke_1_Pressed': '#b3b3b3',\n 'Neutral_Stroke_1_Selected': '#bdbdbd',\n 'Neutral_Stroke_2_Rest': '#e0e0e0',\n 'Neutral_Stroke_3_Rest': '#f0f0f0',\n 'Neutral_Stroke_Alpha_1_Rest': '#1a1a1a0d',\n 'Neutral_Stroke_Alpha_2_Rest': 2,\n 'Neutral_Stroke_Subtle_Rest': '#e0e0e0',\n 'Neutral_Stroke_on Brand_1_Rest': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Rest': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Hover': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Pressed': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Selected': '#ffffff',\n 'Neutral_Stroke_Accessible_Rest': '#616161',\n 'Neutral_Stroke_Accessible_Hover': '#575757',\n 'Neutral_Stroke_Accessible_Pressed': '#4d4d4d',\n 'Neutral_Stroke_Accessible_Selected': '#1e398d',\n 'Neutral_Stroke_Focus_1_Rest': '#ffffff',\n 'Neutral_Stroke_Focus_2_Rest': '#000000',\n 'Neutral_Stroke_Transparent_Interactive_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Disabled_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Rest': '#00000000',\n 'Neutral_Stroke_Disabled_Rest': '#e0e0e0',\n 'Neutral_Stroke_Disabled_Inverted_Rest': 4,\n 'Brand_Background_1_Rest': '#1e398d',\n 'Brand_Background_1_Hover': '#182e71',\n 'Brand_Background_1_Pressed': '#09112a',\n 'Brand_Background_1_Selected': '#122255',\n 'Brand_Background_2_Rest': '#ffffff',\n 'Brand_Background_2_Hover': '#fdfdff',\n 'Brand_Background_2_Pressed': '#d0d6e8',\n 'Brand_Background_Inverted_Rest': '#ffffff',\n 'Brand_Background_Inverted_Hover': '#ffffff',\n 'Brand_Background_Inverted_Pressed': '#e7e9f4',\n 'Brand_Background_Inverted_Selected': '#fdfdff',\n 'Brand_Background_Compound_Rest': '#1e398d',\n 'Brand_Background_Compound_Hover': '#182e71',\n 'Brand_Background_Compound_Pressed': '#122255',\n 'Brand_Background_Static_1_Rest': '#1e398d',\n 'Brand_Background_Static_3_Rest': '#122255',\n 'Brand_Background_Static_4_Rest': '#09112a',\n 'Brand_Foreground_1_Rest': '#1e398d',\n 'Brand_Foreground_2_Rest': '#182e71',\n 'Brand_Foreground_2_Hover': '#122255',\n 'Brand_Foreground_2_Pressed': '#060b1c',\n 'Brand_Foreground_Link_Rest': '#182e71',\n 'Brand_Foreground_Link_Hover': '#122255',\n 'Brand_Foreground_Link_Pressed': '#09112a',\n 'Brand_Foreground_Link_Selected': '#182e71',\n 'Brand_Foreground_Inverted_Rest': '#7787bb',\n 'Brand_Foreground_Inverted_Hover': '#a4afd1',\n 'Brand_Foreground_Inverted_Pressed': '#7787bb',\n 'Brand_Foreground_On Light_Rest': '#1e398d',\n 'Brand_Foreground_On Light_Hover': '#182e71',\n 'Brand_Foreground_On Light_Pressed': '#0c1738',\n 'Brand_Foreground_On Light_Selected': '#122255',\n 'Brand_Foreground_Compound_Rest': '#1e398d',\n 'Brand_Foreground_Compound_Hover': '#182e71',\n 'Brand_Foreground_Compound_Pressed': '#122255',\n 'Brand_Stroke_1_Rest': '#1e398d',\n 'Brand_Stroke_2_Rest': '#e7e9f4',\n 'Brand_Stroke_2_Hover': '#bac2dd',\n 'Brand_Stroke_2_Pressed': '#1e398d',\n 'Brand_Stroke_2_Contrast_Rest': '#e7e9f4',\n 'Brand_Stroke_Compound_Rest': '#1e398d',\n 'Brand_Stroke_Compound_Hover': '#182e71',\n 'Brand_Stroke_Compound_Pressed': '#122255',\n 'Status_Danger_Background_1_Rest': '#f5fcfc',\n 'Status_Danger_Background_2_Rest': '#a3e4e7',\n 'Status_Danger_Background_3_Rest': '#00b3bd',\n 'Status_Danger_Foreground_1_Rest': '#00969f',\n 'Status_Danger_Foreground_2_Rest': '#005d62',\n 'Status_Danger_Foreground_3_Rest': '#00b3bd',\n 'Status_Danger_Foreground_3_Pressed': '#007a81',\n 'Status_Danger_Foreground_3_Hover': '#00969f',\n 'Status_Danger_Foreground_Inverted_Rest': '#7ad7dd',\n 'Status_Danger_Stroke_1_Rest': '#a3e4e7',\n 'Status_Danger_Stroke_2_Rest': '#00b3bd',\n 'Status_Success_Background_1_Rest': '#f5fcfc',\n 'Status_Success_Background_2_Rest': '#a3e4e7',\n 'Status_Success_Background_3_Rest': '#00b3bd',\n 'Status_Success_Foreground_1_Rest': '#00969f',\n 'Status_Success_Foreground_2_Rest': '#005d62',\n 'Status_Success_Foreground_3_Rest': '#00b3bd',\n 'Status_Success_Foreground_Inverted_Rest': '#52cbd2',\n 'Status_Success_Stroke_1_Rest': '#a3e4e7',\n 'Status_Success_Stroke_2_Rest': '#00b3bd',\n 'Status_Warning_Background_1_Rest': '#f5fcfc',\n 'Status_Warning_Background_2_Rest': '#a3e4e7',\n 'Status_Warning_Background_3_Rest': '#00b3bd',\n 'Status_Warning_Foreground_1_Rest': '#007a81',\n 'Status_Warning_Foreground_2_Rest': '#005d62',\n 'Status_Warning_Foreground_3_Rest': '#007a81',\n 'Status_Warning_Foreground_Inverted_Rest': '#7ad7dd',\n 'Status_Warning_Stroke_1_Rest': '#a3e4e7',\n 'Status_Warning_Stroke_2_Rest': '#007a81',\n 'Status_Oof_Foreground_3_Rest': '#00b3bd',\n 'Status_Away_Background_3_Rest': '#00b3bd',\n 'Status_Available_Foreground_3_Rest': '#00b3bd',\n 'Status_Severe_Background_1_Rest': '#f5fcfc',\n 'Status_Severe_Background_2_Rest': '#a3e4e7',\n 'Status_Severe_Background_3_Rest': '#00b3bd',\n 'Status_Severe_Foreground_1_Rest': '#007a81',\n 'Status_Severe_Foreground_2_Rest': '#007a81',\n 'Status_Severe_Foreground_3_Rest': '#007a81',\n 'Status_Severe_Foreground_Inverted_Rest': '#7ad7dd',\n 'Status_Severe_Stroke_1_Rest': '#a3e4e7',\n 'Status_Severe_Stroke_2_Rest': '#007a81',\n 'Palette_Dark red_Background_2_Rest': '#a3e4e7',\n 'Palette_Dark red_Foreground_2_Rest': '#005d62',\n 'Palette_Dark red_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Cranberry_Background_2_Rest': '#a3e4e7',\n 'Palette_Cranberry_Foreground_2_Rest': '#005d62',\n 'Palette_Cranberry_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Red_Background_1_Rest': '#f5fcfc',\n 'Palette_Red_Background_2_Rest': '#a3e4e7',\n 'Palette_Red_Background_3_Rest': '#00b3bd',\n 'Palette_Red_Foreground_1_Rest': '#00969f',\n 'Palette_Red_Foreground_2_Rest': '#005d62',\n 'Palette_Red_Foreground_3_Rest': '#00b3bd',\n 'Palette_Red_Foreground_Inverted_Rest': '#52cbd2',\n 'Palette_Red_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Red_Stroke_2_Rest': '#00b3bd',\n 'Palette_Red_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Pumpkin_Background_2_Rest': '#a3e4e7',\n 'Palette_Pumpkin_Foreground_2_Rest': '#005d62',\n 'Palette_Pumpkin_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Peach_Background_2_Rest': '#a3e4e7',\n 'Palette_Peach_Foreground_2_Rest': '#005d62',\n 'Palette_Peach_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Marigold_Background_1_Rest': '#f5fcfc',\n 'Palette_Marigold_Background_2_Rest': '#a3e4e7',\n 'Palette_Marigold_Background_3_Rest': '#00b3bd',\n 'Palette_Marigold_Foreground_1_Rest': '#00969f',\n 'Palette_Marigold_Foreground_1_Rest 2': '#00b3bd',\n 'Palette_Marigold_Foreground_2_Rest': '#005d62',\n 'Palette_Marigold_Foreground_3_Rest': '#00b3bd',\n 'Palette_Marigold_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Marigold_Stroke_2_Rest': '#00b3bd',\n 'Palette_Marigold_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Gold_Background_2_Rest': '#a3e4e7',\n 'Palette_Gold_Foreground_2_Rest': '#005d62',\n 'Palette_Gold_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Brass_Background_2_Rest': '#a3e4e7',\n 'Palette_Brass_Foreground_2_Rest': '#005d62',\n 'Palette_Brass_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Brown_Background_2_Rest': '#a3e4e7',\n 'Palette_Brown_Foreground_2_Rest': '#005d62',\n 'Palette_Brown_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Forest_Background_2_Rest': '#a3e4e7',\n 'Palette_Forest_Foreground_2_Rest': '#005d62',\n 'Palette_Forest_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Seafoam_Background_2_Rest': '#a3e4e7',\n 'Palette_Seafoam_Foreground_2_Rest': '#005d62',\n 'Palette_Seafoam_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Dark green_Background_2_Rest': '#a3e4e7',\n 'Palette_Dark green_Foreground_2_Rest': '#005d62',\n 'Palette_Dark green_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Light teal_Background_2_Rest': '#a3e4e7',\n 'Palette_Light teal_Foreground_2_Rest': '#005d62',\n 'Palette_Light teal_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Teal_Background_2_Rest': '#a3e4e7',\n 'Palette_Teal_Foreground_2_Rest': '#005d62',\n 'Palette_Teal_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Steel_Background_2_Rest': '#a3e4e7',\n 'Palette_Steel_Foreground_2_Rest': '#005d62',\n 'Palette_Steel_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Blue_Background_2_Rest': '#a3e4e7',\n 'Palette_Blue_Foreground_2_Rest': '#005d62',\n 'Palette_Blue_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Royal blue_Background_2_Rest': '#a3e4e7',\n 'Palette_Royal blue_Foreground_2_Rest': '#005d62',\n 'Palette_Royal blue_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Cornflower_Background_2_Rest': '#a3e4e7',\n 'Palette_Cornflower_Foreground_2_Rest': '#005d62',\n 'Palette_Cornflower_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Navy_Background_2_Rest': '#a3e4e7',\n 'Palette_Navy_Foreground_2_Rest': '#005d62',\n 'Palette_Navy_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Lavender_Background_2_Rest': '#a3e4e7',\n 'Palette_Lavender_Foreground_2_Rest': '#005d62',\n 'Palette_Lavender_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Purple_Background_2_Rest': '#a3e4e7',\n 'Palette_Purple_Foreground_2_Rest': '#005d62',\n 'Palette_Purple_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Grape_Background_2_Rest': '#a3e4e7',\n 'Palette_Grape_Foreground_2_Rest': '#005d62',\n 'Palette_Grape_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Lilac_Background_2_Rest': '#a3e4e7',\n 'Palette_Lilac_Foreground_2_Rest': '#005d62',\n 'Palette_Lilac_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Pink_Background_2_Rest': '#a3e4e7',\n 'Palette_Pink_Foreground_2_Rest': '#005d62',\n 'Palette_Pink_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Magenta_Background_2_Rest': '#a3e4e7',\n 'Palette_Magenta_Foreground_2_Rest': '#005d62',\n 'Palette_Magenta_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Plum_Background_2_Rest': '#a3e4e7',\n 'Palette_Plum_Foreground_2_Rest': '#005d62',\n 'Palette_Plum_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Beige_Background_2_Rest': '#a3e4e7',\n 'Palette_Beige_Foreground_2_Rest': '#005d62',\n 'Palette_Beige_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Mink_Background_2_Rest': '#a3e4e7',\n 'Palette_Mink_Foreground_2_Rest': '#005d62',\n 'Palette_Mink_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Platinum_Background_2_Rest': '#a3e4e7',\n 'Palette_Platinum_Foreground_2_Rest': '#005d62',\n 'Palette_Platinum_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Anchor_Background_2_Rest': '#a3e4e7',\n 'Palette_Anchor_Foreground_2_Rest': '#005d62',\n 'Palette_Anchor_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Green_Background_1_Rest': '#f5fcfc',\n 'Palette_Green_Background_2_Rest': '#a3e4e7',\n 'Palette_Green_Background_3_Rest': '#00b3bd',\n 'Palette_Green_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Green_Stroke_2_Rest': '#00b3bd',\n 'Palette_Green_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Green_Foreground_1_Rest': '#00969f',\n 'Palette_Green_Foreground_2_Rest': '#005d62',\n 'Palette_Green_Foreground_3_Rest': '#00b3bd',\n 'Palette_Green_Foreground_Inverted_Rest': '#52cbd2',\n 'Palette_Dark orange_Foreground_1_Rest': '#00969f',\n 'Palette_Dark orange_Foreground_2_Rest': '#005d62',\n 'Palette_Dark orange_Foreground_3_Rest': '#00b3bd',\n 'Palette_Dark orange_Background_1_Rest': '#f5fcfc',\n 'Palette_Dark orange_Background_2_Rest': '#a3e4e7',\n 'Palette_Dark orange_Background_3_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Dark orange_Stroke_2_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Yellow_Foreground_1_Rest': '#005d62',\n 'Palette_Yellow_Foreground_2_Rest': '#005d62',\n 'Palette_Yellow_Foreground_3_Rest': '#00b3bd',\n 'Palette_Yellow_Foreground_Inverted_Rest': '#a3e4e7',\n 'Palette_Yellow_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Yellow_Stroke_2_Rest': '#00b3bd',\n 'Palette_Yellow_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Yellow_Background_1_Rest': '#f5fcfc',\n 'Palette_Yellow_Background_2_Rest': '#a3e4e7',\n 'Palette_Yellow_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Foreground_1_Rest': '#00969f',\n 'Palette_Berry_Foreground_2_Rest': '#005d62',\n 'Palette_Berry_Foreground_3_Rest': '#00b3bd',\n 'Palette_Berry_Background_1_Rest': '#f5fcfc',\n 'Palette_Berry_Background_2_Rest': '#a3e4e7',\n 'Palette_Berry_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Berry_Stroke_2_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Light Green_Foreground_1_Rest': '#00969f',\n 'Palette_Light Green_Foreground_2_Rest': '#005d62',\n 'Palette_Light Green_Foreground_3_Rest': '#00b3bd',\n 'Palette_Light Green_Background_1_Rest': '#f5fcfc',\n 'Palette_Light Green_Background_2_Rest': '#a3e4e7',\n 'Palette_Light Green_Background_3_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Light Green_Stroke_2_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_Active_Rest': '#00b3bd',\n 'Shadow_Ambient': '#0000001f',\n 'Shadow_Ambient lighter': '#0000000f',\n 'Shadow_Ambient darker': '#00000033',\n 'Shadow_Brand ambient': '#00000040',\n 'Shadow_Key': '#00000024',\n 'Shadow_Key lighter': '#00000012',\n 'Shadow_Key darker': '#0000003d',\n 'Shadow_Brand key': '#0000004d',\n 'Material_Acrylic_Stroke_Stop 2': '#cfe4fa33',\n 'Material_Acrylic_Stroke_Stop 3': 2,\n 'Material_Acrylic_Stroke_Stop 1': 2,\n 'Material_Acrylic_Background_Secondary': '#e7ecf3b3',\n 'Material_Acrylic_Background_Primary': '#1a1a1a80',\n 'Material_Acrylic_Background_Blur': 60,\n};\n\n// Dark Mode Colors\nexport const darkModeColors = {\n 'Neutral_Background_1_Rest': '#292929',\n 'Neutral_Background_1_Hover': '#3d3d3d',\n 'Neutral_Background_1_Pressed': '#1f1f1f',\n 'Neutral_Background_1_Selected': '#383838',\n 'Neutral_Background_2_Rest': '#1f1f1f',\n 'Neutral_Background_2_Hover': '#333333',\n 'Neutral_Background_2_Pressed': '#141414',\n 'Neutral_Background_2_Selected': '#2e2e2e',\n 'Neutral_Background_3_Rest': '#141414',\n 'Neutral_Background_3_Hover': '#292929',\n 'Neutral_Background_3_Pressed': '#0a0a0a',\n 'Neutral_Background_3_Selected': '#242424',\n 'Neutral_Background_4_Rest': '#0a0a0a',\n 'Neutral_Background_4_Hover': '#1f1f1f',\n 'Neutral_Background_4_Pressed': '#000000',\n 'Neutral_Background_4_Selected': '#1a1a1a',\n 'Neutral_Background_5_Rest': '#000000',\n 'Neutral_Background_5_Hover': '#141414',\n 'Neutral_Background_5_Pressed': '#050505',\n 'Neutral_Background_5_Selected': '#0f0f0f',\n 'Neutral_Background_6_Rest': '#333333',\n 'Neutral_Background_Inverted_Rest': '#ffffff',\n 'Neutral_Background_Inverted_Disabled_Rest': 1,\n 'Neutral_Background_Alpha_1_Rest': '#1a1a1a80',\n 'Neutral_Background_Alpha_2_Rest': '#1a1a1ab3',\n 'Neutral_Background_Static_Rest': '#3d3d3d',\n 'Neutral_Background_Subtle_Rest': '#00000000',\n 'Neutral_Background_Subtle_Hover': '#383838',\n 'Neutral_Background_Subtle_Pressed': '#2e2e2e',\n 'Neutral_Background_Subtle_Selected': '#333333',\n 'Neutral_Background_Subtle_Light alpha_Hover': 8,\n 'Neutral_Background_Subtle_Light alpha_Pressed': '#1a1a1a80',\n 'Neutral_Background_Subtle_Light alpha_Selected': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Rest': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Hover': 1,\n 'Neutral_Background_Subtle_Inverted_Pressed': 3,\n 'Neutral_Background_Subtle_Inverted_Selected': 2,\n 'Neutral_Background_Transparent_Rest': '#00000000',\n 'Neutral_Background_Transparent_Hover': '#00000000',\n 'Neutral_Background_Transparent_Pressed': '#00000000',\n 'Neutral_Background_Transparent_Selected': '#00000000',\n 'Neutral_Background_Disabled_Rest': '#141414',\n 'Neutral_Background_Stencil_1_Rest': '#575757',\n 'Neutral_Background_Stencil_1_Alpha_Rest': 1,\n 'Neutral_Background_Stencil_2_Rest': '#333333',\n 'Neutral_Background_Stencil_2_Alpha_Rest': '#1a1a1a0d',\n 'Neutral_Background_Overlay_Rest': '#1a1a1a80',\n 'Neutral_Background_Overlay_Scrollbar_Rest': 6,\n 'Neutral_Foreground_1_Rest': '#ffffff',\n 'Neutral_Foreground_1_Hover': '#ffffff',\n 'Neutral_Foreground_1_Pressed': '#ffffff',\n 'Neutral_Foreground_1_Selected': '#ffffff',\n 'Neutral_Foreground_2_Rest': '#d6d6d6',\n 'Neutral_Foreground_2_Hover': '#ffffff',\n 'Neutral_Foreground_2_Pressed': '#ffffff',\n 'Neutral_Foreground_2_Selected': '#ffffff',\n 'Neutral_Foreground_2_Brand_Hover': '#7787bb',\n 'Neutral_Foreground_2_Brand_Pressed': '#a4afd1',\n 'Neutral_Foreground_2_Brand_Selected': '#7787bb',\n 'Neutral_Foreground_2_Link_Rest': '#d6d6d6',\n 'Neutral_Foreground_2_Link_Hover': '#ffffff',\n 'Neutral_Foreground_2_Link_Pressed': '#ffffff',\n 'Neutral_Foreground_2_Link_Selected': '#ffffff',\n 'Neutral_Foreground_3_Rest': '#adadad',\n 'Neutral_Foreground_3_Hover': '#d6d6d6',\n 'Neutral_Foreground_3_Pressed': '#d6d6d6',\n 'Neutral_Foreground_3_Selected': '#d6d6d6',\n 'Neutral_Foreground_3_Brand_Hover': '#7787bb',\n 'Neutral_Foreground_3_Brand_Pressed': '#a4afd1',\n 'Neutral_Foreground_3_Brand_Selected': '#7787bb',\n 'Neutral_Foreground_4_Rest': '#999999',\n 'Neutral_Foreground_Disabled_Rest': '#5c5c5c',\n 'Neutral_Foreground_Static_Rest': '#242424',\n 'Neutral_Foreground_Static_Inverted_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Rest': '#242424',\n 'Neutral_Foreground_Inverted_1_Hover': '#242424',\n 'Neutral_Foreground_Inverted_1_Pressed': '#242424',\n 'Neutral_Foreground_Inverted_1_Selected': '#242424',\n 'Neutral_Foreground_Inverted_2_Rest': '#242424',\n 'Neutral_Foreground_Inverted_Disabled_Rest': 4,\n 'Neutral_Foreground_Inverted_Link_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Hover': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Pressed': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Selected': '#ffffff',\n 'Neutral_Foreground_On Brand_Rest': '#ffffff',\n 'Neutral_Stroke_1_Rest': '#666666',\n 'Neutral_Stroke_1_Hover': '#757575',\n 'Neutral_Stroke_1_Pressed': '#6b6b6b',\n 'Neutral_Stroke_1_Selected': '#707070',\n 'Neutral_Stroke_2_Rest': '#525252',\n 'Neutral_Stroke_3_Rest': '#3d3d3d',\n 'Neutral_Stroke_Alpha_1_Rest': 1,\n 'Neutral_Stroke_Alpha_2_Rest': 2,\n 'Neutral_Stroke_Subtle_Rest': '#0a0a0a',\n 'Neutral_Stroke_on Brand_1_Rest': '#292929',\n 'Neutral_Stroke_on Brand_2_Rest': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Hover': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Pressed': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Selected': '#ffffff',\n 'Neutral_Stroke_Accessible_Rest': '#adadad',\n 'Neutral_Stroke_Accessible_Hover': '#bdbdbd',\n 'Neutral_Stroke_Accessible_Pressed': '#b3b3b3',\n 'Neutral_Stroke_Accessible_Selected': '#7787bb',\n 'Neutral_Stroke_Focus_1_Rest': '#000000',\n 'Neutral_Stroke_Focus_2_Rest': '#ffffff',\n 'Neutral_Stroke_Transparent_Interactive_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Disabled_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Rest': '#00000000',\n 'Neutral_Stroke_Disabled_Rest': '#424242',\n 'Neutral_Stroke_Disabled_Inverted_Rest': 4,\n 'Brand_Background_1_Rest': '#182e71',\n 'Brand_Background_1_Hover': '#1e398d',\n 'Brand_Background_1_Pressed': '#09112a',\n 'Brand_Background_1_Selected': '#122255',\n 'Brand_Background_2_Rest': '#03060e',\n 'Brand_Background_2_Hover': '#09112a',\n 'Brand_Background_2_Pressed': '#000000',\n 'Brand_Background_Inverted_Rest': '#ffffff',\n 'Brand_Background_Inverted_Hover': '#ffffff',\n 'Brand_Background_Inverted_Pressed': '#e7e9f4',\n 'Brand_Background_Inverted_Selected': '#fdfdff',\n 'Brand_Background_Compound_Rest': '#7787bb',\n 'Brand_Background_Compound_Hover': '#a4afd1',\n 'Brand_Background_Compound_Pressed': '#4b60a4',\n 'Brand_Background_Static_1_Rest': '#1e398d',\n 'Brand_Background_Static_3_Rest': '#122255',\n 'Brand_Background_Static_4_Rest': '#09112a',\n 'Brand_Foreground_1_Rest': '#7787bb',\n 'Brand_Foreground_2_Rest': '#a4afd1',\n 'Brand_Foreground_2_Hover': '#d0d6e8',\n 'Brand_Foreground_2_Pressed': '#7787bb',\n 'Brand_Foreground_Link_Rest': '#7787bb',\n 'Brand_Foreground_Link_Hover': '#a4afd1',\n 'Brand_Foreground_Link_Pressed': '#4b60a4',\n 'Brand_Foreground_Link_Selected': '#7787bb',\n 'Brand_Foreground_Inverted_Rest': '#1e398d',\n 'Brand_Foreground_Inverted_Hover': '#182e71',\n 'Brand_Foreground_Inverted_Pressed': '#122255',\n 'Brand_Foreground_On Light_Rest': '#182e71',\n 'Brand_Foreground_On Light_Hover': '#182e71',\n 'Brand_Foreground_On Light_Pressed': '#0c1738',\n 'Brand_Foreground_On Light_Selected': '#122255',\n 'Brand_Foreground_Compound_Rest': '#7787bb',\n 'Brand_Foreground_Compound_Hover': '#a4afd1',\n 'Brand_Foreground_Compound_Pressed': '#4b60a4',\n 'Brand_Stroke_1_Rest': '#7787bb',\n 'Brand_Stroke_2_Rest': '#0c1738',\n 'Brand_Stroke_2_Hover': '#4b60a4',\n 'Brand_Stroke_2_Pressed': '#182e71',\n 'Brand_Stroke_2_Contrast_Rest': '#0c1738',\n 'Brand_Stroke_Compound_Rest': '#7787bb',\n 'Brand_Stroke_Compound_Hover': '#a4afd1',\n 'Brand_Stroke_Compound_Pressed': '#4b60a4',\n 'Status_Danger_Background_1_Rest': '#004044',\n 'Status_Danger_Background_2_Rest': '#005d62',\n 'Status_Danger_Background_3_Rest': '#00b3bd',\n 'Status_Danger_Foreground_1_Rest': '#7ad7dd',\n 'Status_Danger_Foreground_2_Rest': '#a3e4e7',\n 'Status_Danger_Foreground_3_Rest': '#a3e4e7',\n 'Status_Danger_Foreground_3_Pressed': '#007a81',\n 'Status_Danger_Foreground_3_Hover': '#00969f',\n 'Status_Danger_Foreground_Inverted_Rest': '#00969f',\n 'Status_Danger_Stroke_1_Rest': '#00b3bd',\n 'Status_Danger_Stroke_2_Rest': '#7ad7dd',\n 'Status_Success_Background_1_Rest': '#004044',\n 'Status_Success_Background_2_Rest': '#005d62',\n 'Status_Success_Background_3_Rest': '#00b3bd',\n 'Status_Success_Foreground_1_Rest': '#7ad7dd',\n 'Status_Success_Foreground_2_Rest': '#a3e4e7',\n 'Status_Success_Foreground_3_Rest': '#a3e4e7',\n 'Status_Success_Foreground_Inverted_Rest': '#00b3bd',\n 'Status_Success_Stroke_1_Rest': '#00b3bd',\n 'Status_Success_Stroke_2_Rest': '#a3e4e7',\n 'Status_Warning_Background_1_Rest': '#004044',\n 'Status_Warning_Background_2_Rest': '#005d62',\n 'Status_Warning_Background_3_Rest': '#00b3bd',\n 'Status_Warning_Foreground_1_Rest': '#52cbd2',\n 'Status_Warning_Foreground_2_Rest': '#a3e4e7',\n 'Status_Warning_Foreground_3_Rest': '#a3e4e7',\n 'Status_Warning_Foreground_Inverted_Rest': '#007a81',\n 'Status_Warning_Stroke_1_Rest': '#00969f',\n 'Status_Warning_Stroke_2_Rest': '#52cbd2',\n 'Status_Oof_Foreground_3_Rest': '#52cbd2',\n 'Status_Away_Background_3_Rest': '#00b3bd',\n 'Status_Available_Foreground_3_Rest': '#00b3bd',\n 'Status_Severe_Background_1_Rest': '#004044',\n 'Status_Severe_Background_2_Rest': '#005d62',\n 'Status_Severe_Background_3_Rest': '#00b3bd',\n 'Status_Severe_Foreground_1_Rest': '#52cbd2',\n 'Status_Severe_Foreground_2_Rest': '#a3e4e7',\n 'Status_Severe_Foreground_3_Rest': '#a3e4e7',\n 'Status_Severe_Foreground_Inverted_Rest': '#007a81',\n 'Status_Severe_Stroke_1_Rest': '#00969f',\n 'Status_Severe_Stroke_2_Rest': '#52cbd2',\n 'Palette_Dark red_Background_2_Rest': '#007a81',\n 'Palette_Dark red_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Dark red_Stroke_Active_Rest': '#52cbd2',\n 'Palette_Cranberry_Background_2_Rest': '#005d62',\n 'Palette_Cranberry_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Cranberry_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Red_Background_1_Rest': '#004044',\n 'Palette_Red_Background_2_Rest': '#005d62',\n 'Palette_Red_Background_3_Rest': '#00b3bd',\n 'Palette_Red_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Red_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Red_Foreground_3_Rest': '#7ad7dd',\n 'Palette_Red_Foreground_Inverted_Rest': '#00b3bd',\n 'Palette_Red_Stroke_1_Rest': '#00b3bd',\n 'Palette_Red_Stroke_2_Rest': '#7ad7dd',\n 'Palette_Red_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Pumpkin_Background_2_Rest': '#005d62',\n 'Palette_Pumpkin_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Pumpkin_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Peach_Background_2_Rest': '#005d62',\n 'Palette_Peach_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Peach_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Marigold_Background_1_Rest': '#004044',\n 'Palette_Marigold_Background_2_Rest': '#005d62',\n 'Palette_Marigold_Background_3_Rest': '#00b3bd',\n 'Palette_Marigold_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Marigold_Foreground_1_Rest 2': '#52cbd2',\n 'Palette_Marigold_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Marigold_Foreground_3_Rest': '#52cbd2',\n 'Palette_Marigold_Stroke_1_Rest': '#00b3bd',\n 'Palette_Marigold_Stroke_2_Rest': '#52cbd2',\n 'Palette_Marigold_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Gold_Background_2_Rest': '#005d62',\n 'Palette_Gold_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Gold_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Brass_Background_2_Rest': '#005d62',\n 'Palette_Brass_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Brass_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Brown_Background_2_Rest': '#005d62',\n 'Palette_Brown_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Brown_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Forest_Background_2_Rest': '#005d62',\n 'Palette_Forest_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Forest_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Seafoam_Background_2_Rest': '#005d62',\n 'Palette_Seafoam_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Seafoam_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Dark green_Background_2_Rest': '#005d62',\n 'Palette_Dark green_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Dark green_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Light teal_Background_2_Rest': '#005d62',\n 'Palette_Light teal_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Light teal_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Teal_Background_2_Rest': '#005d62',\n 'Palette_Teal_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Teal_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Steel_Background_2_Rest': '#005d62',\n 'Palette_Steel_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Steel_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Blue_Background_2_Rest': '#005d62',\n 'Palette_Blue_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Blue_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Royal blue_Background_2_Rest': '#005d62',\n 'Palette_Royal blue_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Royal blue_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Cornflower_Background_2_Rest': '#005d62',\n 'Palette_Cornflower_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Cornflower_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Navy_Background_2_Rest': '#005d62',\n 'Palette_Navy_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Navy_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Lavender_Background_2_Rest': '#005d62',\n 'Palette_Lavender_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Lavender_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Purple_Background_2_Rest': '#005d62',\n 'Palette_Purple_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Purple_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Grape_Background_2_Rest': '#005d62',\n 'Palette_Grape_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Grape_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Lilac_Background_2_Rest': '#005d62',\n 'Palette_Lilac_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Lilac_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Pink_Background_2_Rest': '#005d62',\n 'Palette_Pink_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Pink_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Magenta_Background_2_Rest': '#005d62',\n 'Palette_Magenta_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Magenta_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Plum_Background_2_Rest': '#007a81',\n 'Palette_Plum_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Plum_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Beige_Background_2_Rest': '#005d62',\n 'Palette_Beige_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Beige_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Mink_Background_2_Rest': '#005d62',\n 'Palette_Mink_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Mink_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Platinum_Background_2_Rest': '#005d62',\n 'Palette_Platinum_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Platinum_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Anchor_Background_2_Rest': '#005d62',\n 'Palette_Anchor_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Anchor_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Green_Background_1_Rest': '#004044',\n 'Palette_Green_Background_2_Rest': '#005d62',\n 'Palette_Green_Background_3_Rest': '#00b3bd',\n 'Palette_Green_Stroke_1_Rest': '#00b3bd',\n 'Palette_Green_Stroke_2_Rest': '#7ad7dd',\n 'Palette_Green_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Green_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Green_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Green_Foreground_3_Rest': '#7ad7dd',\n 'Palette_Green_Foreground_Inverted_Rest': '#00b3bd',\n 'Palette_Dark orange_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Dark orange_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Dark orange_Foreground_3_Rest': '#7ad7dd',\n 'Palette_Dark orange_Background_1_Rest': '#004044',\n 'Palette_Dark orange_Background_2_Rest': '#005d62',\n 'Palette_Dark orange_Background_3_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_1_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_2_Rest': '#7ad7dd',\n 'Palette_Dark orange_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Yellow_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Yellow_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Yellow_Foreground_3_Rest': '#52cbd2',\n 'Palette_Yellow_Foreground_Inverted_Rest': '#005d62',\n 'Palette_Yellow_Stroke_1_Rest': '#00b3bd',\n 'Palette_Yellow_Stroke_2_Rest': '#52cbd2',\n 'Palette_Yellow_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Yellow_Background_1_Rest': '#004044',\n 'Palette_Yellow_Background_2_Rest': '#005d62',\n 'Palette_Yellow_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Berry_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Berry_Foreground_3_Rest': '#52cbd2',\n 'Palette_Berry_Background_1_Rest': '#004044',\n 'Palette_Berry_Background_2_Rest': '#005d62',\n 'Palette_Berry_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_1_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_2_Rest': '#52cbd2',\n 'Palette_Berry_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Light Green_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Light Green_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Light Green_Foreground_3_Rest': '#52cbd2',\n 'Palette_Light Green_Background_1_Rest': '#004044',\n 'Palette_Light Green_Background_2_Rest': '#005d62',\n 'Palette_Light Green_Background_3_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_1_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_2_Rest': '#52cbd2',\n 'Palette_Light Green_Stroke_Active_Rest': '#7ad7dd',\n 'Shadow_Ambient': '#0000003d',\n 'Shadow_Ambient lighter': '#0000001f',\n 'Shadow_Ambient darker': '#00000066',\n 'Shadow_Brand ambient': '#00000040',\n 'Shadow_Key': '#00000047',\n 'Shadow_Key lighter': '#00000024',\n 'Shadow_Key darker': '#0000007a',\n 'Shadow_Brand key': '#0000004d',\n 'Material_Acrylic_Stroke_Stop 2': '#2c3136',\n 'Material_Acrylic_Stroke_Stop 3': 2,\n 'Material_Acrylic_Stroke_Stop 1': 2,\n 'Material_Acrylic_Background_Secondary': '#46406e99',\n 'Material_Acrylic_Background_Primary': '#2e2e2ecc',\n 'Material_Acrylic_Background_Blur': 60,\n};\n\nexport const schemaColors = {\n 'secondary': '#426900',\n 'outline_variant': '#C4C7C7',\n 'Surface_Variant': '#E0E3E3',\n 'Primary': '#004F8F',\n};\n\n// Default export\nexport default {\n brandColors,\n spacing,\n borderRadius,\n fontSize,\n fontWeight,\n lineHeight,\n strokeWidth,\n sharedColors,\n lightModeColors,\n darkModeColors,\n schemaColors,\n};\n","/**\n * Auto-generated Figma Tokens\n * Generated by custom build script\n * Source: tokens.json\n * DO NOT EDIT MANUALLY - Run 'npm run tokens:build' to regenerate\n */\n\n// Brand Colors (Brand-10 to Brand-160)\nexport const brandColors = {\n '10': '#001a1bff',\n '20': '#02383bff',\n '30': '#002426',\n '40': '#004044',\n '50': '#005D62',\n '60': '#007A81',\n '70': '#00969F',\n '80': '#00B3BD',\n '90': '#29BFC8',\n '100': '#52CBD2',\n '110': '#7AD7DD',\n '120': '#A3E4E7',\n '130': '#CCF0F2',\n '140': '#E1F7F8',\n '150': '#fdfdff',\n '160': '#ffffff',\n};\n\n// Design System Tokens\nexport const spacing = {\n '20': 2,\n '40': 4,\n '60': 6,\n '70': 7,\n '80': 8,\n '100': 10,\n '120': 12,\n '150': 15,\n '160': 16,\n '170': 17,\n '180': 18,\n '190': 19,\n '200': 20,\n '220': 22,\n '240': 24,\n '260': 26,\n '270': 27,\n '280': 28,\n '320': 32,\n '360': 36,\n '400': 40,\n '480': 48,\n '520': 52,\n '560': 56,\n '580': 58,\n '600': 60,\n '640': 64,\n '680': 68,\n '720': 72,\n '760': 76,\n '800': 80,\n '860': 86,\n '900': 90,\n '960': 96,\n '1000': 100,\n '1020': 102,\n};\n\nexport const borderRadius = {\n '20': 2,\n '40': 4,\n '60': 6,\n '80': 8,\n '120': 12,\n '160': 16,\n '240': 24,\n '320': 32,\n '400': 40,\n 'Circular': 9999,\n};\n\nexport const fontSize = {\n '190': 19,\n '200': 20,\n '220': 22,\n};\n\nexport const fontWeight = {\n 'Regular': 400,\n 'Medium': 500,\n 'Semibold': 600,\n};\n\nexport const lineHeight = {\n 'lineHeightBase210': 21,\n};\n\nexport const strokeWidth = {\n '10': 1,\n '15': 1.5,\n '20': 2,\n '30': 3,\n '40': 4,\n '60': 6,\n '05': 0.5,\n};\n\n// Shared Global Colors (Palettes: Secondary, Green, Blue, etc.)\nexport const sharedColors = {\n 'Shared_Dark_red_Shade_50': '#130204',\n 'Shared_Dark_red_Shade_40': '#230308',\n 'Shared_Dark_red_Shade_30': '#420610',\n 'Shared_Dark_red_Shade_20': '#590815',\n 'Shared_Dark_red_Shade_10': '#690a19',\n 'Shared_Dark_red_Primary': '#750b1c',\n 'Shared_Dark_red_Tint_10': '#861b2c',\n 'Shared_Dark_red_Tint_20': '#962f3f',\n 'Shared_Dark_red_Tint_30': '#ac4f5e',\n 'Shared_Dark_red_Tint_40': '#d69ca5',\n 'Shared_Dark_red_Tint_50': '#e9c7cd',\n 'Shared_Dark_red_Tint_60': '#f9f0f2',\n 'Shared_Burgundy_Shade_50': '#1a0607',\n 'Shared_Burgundy_Shade_40': '#310b0d',\n 'Shared_Burgundy_Shade_30': '#5c1519',\n 'Shared_Burgundy_Shade_20': '#7d1d21',\n 'Shared_Burgundy_Shade_10': '#942228',\n 'Shared_Burgundy_Primary': '#a4262c',\n 'Shared_Burgundy_Tint_10': '#af393e',\n 'Shared_Burgundy_Tint_20': '#ba4d52',\n 'Shared_Burgundy_Tint_30': '#c86c70',\n 'Shared_Burgundy_Tint_40': '#e4afb2',\n 'Shared_Burgundy_Tint_50': '#f0d3d4',\n 'Shared_Burgundy_Tint_60': '#fbf4f4',\n 'Shared_Cranberry_Shade_50': '#200205',\n 'Shared_Cranberry_Shade_40': '#3b0509',\n 'Shared_Cranberry_Shade_30': '#6e0811',\n 'Shared_Cranberry_Shade_20': '#960b18',\n 'Shared_Cranberry_Shade_10': '#b10e1c',\n 'Shared_Cranberry_Primary': '#c50f1f',\n 'Shared_Cranberry_Tint_10': '#cc2635',\n 'Shared_Cranberry_Tint_20': '#d33f4c',\n 'Shared_Cranberry_Tint_30': '#dc626d',\n 'Shared_Cranberry_Tint_40': '#eeacb2',\n 'Shared_Cranberry_Tint_50': '#f6d1d5',\n 'Shared_Cranberry_Tint_60': '#fdf3f4',\n 'Shared_Red_Shade_50': '#210809',\n 'Shared_Red_Shade_40': '#3f1011',\n 'Shared_Red_Shade_30': '#751d1f',\n 'Shared_Red_Shade_20': '#9f282b',\n 'Shared_Red_Shade_10': '#bc2f32',\n 'Shared_Red_Primary': '#d13438',\n 'Shared_Red_Tint_10': '#d7494c',\n 'Shared_Red_Tint_20': '#dc5e62',\n 'Shared_Red_Tint_30': '#e37d80',\n 'Shared_Red_Tint_40': '#f1bbbc',\n 'Shared_Red_Tint_50': '#f8dadb',\n 'Shared_Red_Tint_60': '#fdf6f6',\n 'Shared_Dark_orange_Shade_50': '#230900',\n 'Shared_Dark_orange_Shade_40': '#411200',\n 'Shared_Dark_orange_Shade_30': '#7a2101',\n 'Shared_Dark_orange_Shade_20': '#a62d01',\n 'Shared_Dark_orange_Shade_10': '#c43501',\n 'Shared_Dark_orange_Primary': '#da3b01',\n 'Shared_Dark_orange_Tint_10': '#de501c',\n 'Shared_Dark_orange_Tint_20': '#e36537',\n 'Shared_Dark_orange_Tint_30': '#e9835e',\n 'Shared_Dark_orange_Tint_40': '#f4bfab',\n 'Shared_Dark_orange_Tint_50': '#f9dcd1',\n 'Shared_Dark_orange_Tint_60': '#fdf6f3',\n 'Shared_Bronze_Shade_50': '#1b0a01',\n 'Shared_Bronze_Shade_40': '#321303',\n 'Shared_Bronze_Shade_30': '#5e2405',\n 'Shared_Bronze_Shade_20': '#7f3107',\n 'Shared_Bronze_Shade_10': '#963a08',\n 'Shared_Bronze_Primary': '#a74109',\n 'Shared_Bronze_Tint_10': '#b2521e',\n 'Shared_Bronze_Tint_20': '#bc6535',\n 'Shared_Bronze_Tint_30': '#ca8057',\n 'Shared_Bronze_Tint_40': '#e5bba4',\n 'Shared_Bronze_Tint_50': '#f1d9cc',\n 'Shared_Bronze_Tint_60': '#fbf5f2',\n 'Shared_Pumpkin_Shade_50': '#200d03',\n 'Shared_Pumpkin_Shade_40': '#3d1805',\n 'Shared_Pumpkin_Shade_30': '#712d09',\n 'Shared_Pumpkin_Shade_20': '#9a3d0c',\n 'Shared_Pumpkin_Shade_10': '#b6480e',\n 'Shared_Pumpkin_Primary': '#ca5010',\n 'Shared_Pumpkin_Tint_10': '#d06228',\n 'Shared_Pumpkin_Tint_20': '#d77440',\n 'Shared_Pumpkin_Tint_30': '#df8e64',\n 'Shared_Pumpkin_Tint_40': '#efc4ad',\n 'Shared_Pumpkin_Tint_50': '#f7dfd2',\n 'Shared_Pumpkin_Tint_60': '#fdf7f4',\n 'Shared_Orange_Shade_50': '#271002',\n 'Shared_Orange_Shade_40': '#4a1e04',\n 'Shared_Orange_Shade_30': '#8a3707',\n 'Shared_Orange_Shade_20': '#bc4b09',\n 'Shared_Orange_Shade_10': '#de590b',\n 'Shared_Orange_Primary': '#f7630c',\n 'Shared_Orange_Tint_10': '#f87528',\n 'Shared_Orange_Tint_20': '#f98845',\n 'Shared_Orange_Tint_30': '#faa06b',\n 'Shared_Orange_Tint_40': '#fdcfb4',\n 'Shared_Orange_Tint_50': '#fee5d7',\n 'Shared_Orange_Tint_60': '#fff9f5',\n 'Shared_Peach_Shade_50': '#291600',\n 'Shared_Peach_Shade_40': '#4d2a00',\n 'Shared_Peach_Shade_30': '#8f4e00',\n 'Shared_Peach_Shade_20': '#c26a00',\n 'Shared_Peach_Shade_10': '#e67e00',\n 'Shared_Peach_Primary': '#ff8c00',\n 'Shared_Peach_Tint_10': '#ff9a1f',\n 'Shared_Peach_Tint_20': '#ffa83d',\n 'Shared_Peach_Tint_30': '#ffba66',\n 'Shared_Peach_Tint_40': '#ffddb3',\n 'Shared_Peach_Tint_50': '#ffedd6',\n 'Shared_Peach_Tint_60': '#fffaf5',\n 'Shared_Marigold_Shade_50': '#251a00',\n 'Shared_Marigold_Shade_40': '#463100',\n 'Shared_Marigold_Shade_30': '#835b00',\n 'Shared_Marigold_Shade_20': '#b27c00',\n 'Shared_Marigold_Shade_10': '#d39300',\n 'Shared_Marigold_Primary': '#eaa300',\n 'Shared_Marigold_Tint_10': '#edad1c',\n 'Shared_Marigold_Tint_20': '#efb839',\n 'Shared_Marigold_Tint_30': '#f2c661',\n 'Shared_Marigold_Tint_40': '#f9e2ae',\n 'Shared_Marigold_Tint_50': '#fcefd3',\n 'Shared_Marigold_Tint_60': '#fefbf4',\n 'Shared_Yellow_Shade_50': '#282400',\n 'Shared_Yellow_Shade_40': '#4c4400',\n 'Shared_Yellow_Shade_30': '#817400',\n 'Shared_Yellow_Shade_20': '#c0ad00',\n 'Shared_Yellow_Shade_10': '#e4cc00',\n 'Shared_Yellow_Primary': '#fde300',\n 'Shared_Yellow_Tint_10': '#fde61e',\n 'Shared_Yellow_Tint_20': '#fdea3d',\n 'Shared_Yellow_Tint_30': '#feee66',\n 'Shared_Yellow_Tint_40': '#fef7b2',\n 'Shared_Yellow_Tint_50': '#fffad6',\n 'Shared_Yellow_Tint_60': '#fffef5',\n 'Shared_Gold_Shade_50': '#1f1900',\n 'Shared_Gold_Shade_40': '#3a2f00',\n 'Shared_Gold_Shade_30': '#6c5700',\n 'Shared_Gold_Shade_20': '#937700',\n 'Shared_Gold_Shade_10': '#ae8c00',\n 'Shared_Gold_Primary': '#c19c00',\n 'Shared_Gold_Tint_10': '#c8a718',\n 'Shared_Gold_Tint_20': '#d0b232',\n 'Shared_Gold_Tint_30': '#dac157',\n 'Shared_Gold_Tint_40': '#ecdfa5',\n 'Shared_Gold_Tint_50': '#f5eece',\n 'Shared_Gold_Tint_60': '#fdfbf2',\n 'Shared_Brass_Shade_50': '#181202',\n 'Shared_Brass_Shade_40': '#2e2103',\n 'Shared_Brass_Shade_30': '#553e06',\n 'Shared_Brass_Shade_20': '#745408',\n 'Shared_Brass_Shade_10': '#89640a',\n 'Shared_Brass_Primary': '#986f0b',\n 'Shared_Brass_Tint_10': '#a47d1e',\n 'Shared_Brass_Tint_20': '#b18c34',\n 'Shared_Brass_Tint_30': '#c1a256',\n 'Shared_Brass_Tint_40': '#e0cea2',\n 'Shared_Brass_Tint_50': '#efe4cb',\n 'Shared_Brass_Tint_60': '#fbf8f2',\n 'Shared_Brown_Shade_50': '#170e07',\n 'Shared_Brown_Shade_40': '#2b1a0e',\n 'Shared_Brown_Shade_30': '#50301a',\n 'Shared_Brown_Shade_20': '#6c4123',\n 'Shared_Brown_Shade_10': '#804d29',\n 'Shared_Brown_Primary': '#8e562e',\n 'Shared_Brown_Tint_10': '#9c663f',\n 'Shared_Brown_Tint_20': '#a97652',\n 'Shared_Brown_Tint_30': '#bb8f6f',\n 'Shared_Brown_Tint_40': '#ddc3b0',\n 'Shared_Brown_Tint_50': '#edded3',\n 'Shared_Brown_Tint_60': '#faf7f4',\n 'Shared_Dark_brown_Shade_50': '#0c0704',\n 'Shared_Dark_brown_Shade_40': '#170c08',\n 'Shared_Dark_brown_Shade_30': '#2b1710',\n 'Shared_Dark_brown_Shade_20': '#3a1f15',\n 'Shared_Dark_brown_Shade_10': '#452519',\n 'Shared_Dark_brown_Primary': '#4d291c',\n 'Shared_Dark_brown_Tint_10': '#623a2b',\n 'Shared_Dark_brown_Tint_20': '#784d3e',\n 'Shared_Dark_brown_Tint_30': '#946b5c',\n 'Shared_Dark_brown_Tint_40': '#caada3',\n 'Shared_Dark_brown_Tint_50': '#e3d2cb',\n 'Shared_Dark_brown_Tint_60': '#f8f3f2',\n 'Shared_Lime_Shade_50': '#121b06',\n 'Shared_Lime_Shade_40': '#23330b',\n 'Shared_Lime_Shade_30': '#405f14',\n 'Shared_Lime_Shade_20': '#57811b',\n 'Shared_Lime_Shade_10': '#689920',\n 'Shared_Lime_Primary': '#73aa24',\n 'Shared_Lime_Tint_10': '#81b437',\n 'Shared_Lime_Tint_20': '#90be4c',\n 'Shared_Lime_Tint_30': '#a4cc6c',\n 'Shared_Lime_Tint_40': '#cfe5af',\n 'Shared_Lime_Tint_50': '#e5f1d3',\n 'Shared_Lime_Tint_60': '#f8fcf4',\n 'Shared_Forest_Shade_50': '#0c1501',\n 'Shared_Forest_Shade_40': '#162702',\n 'Shared_Forest_Shade_30': '#294903',\n 'Shared_Forest_Shade_20': '#376304',\n 'Shared_Forest_Shade_10': '#427505',\n 'Shared_Forest_Primary': '#498205',\n 'Shared_Forest_Tint_10': '#599116',\n 'Shared_Forest_Tint_20': '#6ba02b',\n 'Shared_Forest_Tint_30': '#85b44c',\n 'Shared_Forest_Tint_40': '#bdd99b',\n 'Shared_Forest_Tint_50': '#dbebc7',\n 'Shared_Forest_Tint_60': '#f6faf0',\n 'Shared_Seafoam_Shade_50': '#002111',\n 'Shared_Seafoam_Shade_40': '#003d20',\n 'Shared_Seafoam_Shade_30': '#00723b',\n 'Shared_Seafoam_Shade_20': '#009b51',\n 'Shared_Seafoam_Shade_10': '#00b85f',\n 'Shared_Seafoam_Primary': '#00cc6a',\n 'Shared_Seafoam_Tint_10': '#19d279',\n 'Shared_Seafoam_Tint_20': '#34d889',\n 'Shared_Seafoam_Tint_30': '#5ae0a0',\n 'Shared_Seafoam_Tint_40': '#a8f0cd',\n 'Shared_Seafoam_Tint_50': '#cff7e4',\n 'Shared_Seafoam_Tint_60': '#f3fdf8',\n 'Shared_Light_green_Shade_50': '#031a02',\n 'Shared_Light_green_Shade_40': '#063004',\n 'Shared_Light_green_Shade_30': '#0b5a08',\n 'Shared_Light_green_Shade_20': '#0e7a0b',\n 'Shared_Light_green_Shade_10': '#11910d',\n 'Shared_Light_green_Primary': '#13a10e',\n 'Shared_Light_green_Tint_10': '#27ac22',\n 'Shared_Light_green_Tint_20': '#3db838',\n 'Shared_Light_green_Tint_30': '#5ec75a',\n 'Shared_Light_green_Tint_40': '#a7e3a5',\n 'Shared_Light_green_Tint_50': '#cef0cd',\n 'Shared_Light_green_Tint_60': '#f2fbf2',\n 'Shared_Green_Shade_50': '#031403',\n 'Shared_Green_Shade_40': '#052505',\n 'Shared_Green_Shade_30': '#094509',\n 'Shared_Green_Shade_20': '#0c5e0c',\n 'Shared_Green_Shade_10': '#0e700e',\n 'Shared_Green_Primary': '#107c10',\n 'Shared_Green_Tint_10': '#218c21',\n 'Shared_Green_Tint_20': '#359b35',\n 'Shared_Green_Tint_30': '#54b054',\n 'Shared_Green_Tint_40': '#9fd89f',\n 'Shared_Green_Tint_50': '#c9eac9',\n 'Shared_Green_Tint_60': '#f1faf1',\n 'Shared_Dark_green_Shade_50': '#021102',\n 'Shared_Dark_green_Shade_40': '#032003',\n 'Shared_Dark_green_Shade_30': '#063b06',\n 'Shared_Dark_green_Shade_20': '#085108',\n 'Shared_Dark_green_Shade_10': '#0a5f0a',\n 'Shared_Dark_green_Primary': '#0b6a0b',\n 'Shared_Dark_green_Tint_10': '#1a7c1a',\n 'Shared_Dark_green_Tint_20': '#2d8e2d',\n 'Shared_Dark_green_Tint_30': '#4da64d',\n 'Shared_Dark_green_Tint_40': '#9ad29a',\n 'Shared_Dark_green_Tint_50': '#c6e7c6',\n 'Shared_Dark_green_Tint_60': '#f0f9f0',\n 'Shared_Light_teal_Shade_50': '#001d1f',\n 'Shared_Light_teal_Shade_40': '#00373a',\n 'Shared_Light_teal_Shade_30': '#00666d',\n 'Shared_Light_teal_Shade_20': '#008b94',\n 'Shared_Light_teal_Shade_10': '#00a5af',\n 'Shared_Light_teal_Primary': '#00b7c3',\n 'Shared_Light_teal_Tint_10': '#18bfca',\n 'Shared_Light_teal_Tint_20': '#32c8d1',\n 'Shared_Light_teal_Tint_30': '#58d3db',\n 'Shared_Light_teal_Tint_40': '#a6e9ed',\n 'Shared_Light_teal_Tint_50': '#cef3f5',\n 'Shared_Light_teal_Tint_60': '#f2fcfd',\n 'Shared_Teal_Shade_50': '#001516',\n 'Shared_Teal_Shade_40': '#012728',\n 'Shared_Teal_Shade_30': '#02494c',\n 'Shared_Teal_Shade_20': '#026467',\n 'Shared_Teal_Shade_10': '#037679',\n 'Shared_Teal_Primary': '#038387',\n 'Shared_Teal_Tint_10': '#159195',\n 'Shared_Teal_Tint_20': '#2aa0a4',\n 'Shared_Teal_Tint_30': '#4cb4b7',\n 'Shared_Teal_Tint_40': '#9bd9db',\n 'Shared_Teal_Tint_50': '#c7ebec',\n 'Shared_Teal_Tint_60': '#f0fafa',\n 'Shared_Dark_teal_Shade_50': '#001010',\n 'Shared_Dark_teal_Shade_40': '#001f1f',\n 'Shared_Dark_teal_Shade_30': '#003939',\n 'Shared_Dark_teal_Shade_20': '#004e4e',\n 'Shared_Dark_teal_Shade_10': '#005c5c',\n 'Shared_Dark_teal_Primary': '#006666',\n 'Shared_Dark_teal_Tint_10': '#0e7878',\n 'Shared_Dark_teal_Tint_20': '#218b8b',\n 'Shared_Dark_teal_Tint_30': '#41a3a3',\n 'Shared_Dark_teal_Tint_40': '#92d1d1',\n 'Shared_Dark_teal_Tint_50': '#c2e7e7',\n 'Shared_Dark_teal_Tint_60': '#eff9f9',\n 'Shared_Cyan_Shade_50': '#00181e',\n 'Shared_Cyan_Shade_40': '#002e38',\n 'Shared_Cyan_Shade_30': '#005669',\n 'Shared_Cyan_Shade_20': '#00748f',\n 'Shared_Cyan_Shade_10': '#008aa9',\n 'Shared_Cyan_Primary': '#0099bc',\n 'Shared_Cyan_Tint_10': '#18a4c4',\n 'Shared_Cyan_Tint_20': '#31afcc',\n 'Shared_Cyan_Tint_30': '#56bfd7',\n 'Shared_Cyan_Tint_40': '#a4deeb',\n 'Shared_Cyan_Tint_50': '#cdedf4',\n 'Shared_Cyan_Tint_60': '#f2fafc',\n 'Shared_Steel_Shade_50': '#000f12',\n 'Shared_Steel_Shade_40': '#001b22',\n 'Shared_Steel_Shade_30': '#00333f',\n 'Shared_Steel_Shade_20': '#004555',\n 'Shared_Steel_Shade_10': '#005265',\n 'Shared_Steel_Primary': '#005b70',\n 'Shared_Steel_Tint_10': '#0f6c81',\n 'Shared_Steel_Tint_20': '#237d92',\n 'Shared_Steel_Tint_30': '#4496a9',\n 'Shared_Steel_Tint_40': '#94c8d4',\n 'Shared_Steel_Tint_50': '#c3e1e8',\n 'Shared_Steel_Tint_60': '#eff7f9',\n 'Shared_Light_blue_Shade_50': '#091823',\n 'Shared_Light_blue_Shade_40': '#112d42',\n 'Shared_Light_blue_Shade_30': '#20547c',\n 'Shared_Light_blue_Shade_20': '#2c72a8',\n 'Shared_Light_blue_Shade_10': '#3487c7',\n 'Shared_Light_blue_Primary': '#3a96dd',\n 'Shared_Light_blue_Tint_10': '#4fa1e1',\n 'Shared_Light_blue_Tint_20': '#65ade5',\n 'Shared_Light_blue_Tint_30': '#83bdeb',\n 'Shared_Light_blue_Tint_40': '#bfddf5',\n 'Shared_Light_blue_Tint_50': '#dcedfa',\n 'Shared_Light_blue_Tint_60': '#f6fafe',\n 'Shared_Blue_Shade_50': '#001322',\n 'Shared_Blue_Shade_40': '#002440',\n 'Shared_Blue_Shade_30': '#004377',\n 'Shared_Blue_Shade_20': '#005ba1',\n 'Shared_Blue_Shade_10': '#006cbf',\n 'Shared_Blue_Primary': '#0078d4',\n 'Shared_Blue_Tint_10': '#1a86d9',\n 'Shared_Blue_Tint_20': '#3595de',\n 'Shared_Blue_Tint_30': '#5caae5',\n 'Shared_Blue_Tint_40': '#a9d3f2',\n 'Shared_Blue_Tint_50': '#d0e7f8',\n 'Shared_Blue_Tint_60': '#f3f9fd',\n 'Shared_Royal_blue_Shade_50': '#000c16',\n 'Shared_Royal_blue_Shade_40': '#00172a',\n 'Shared_Royal_blue_Shade_30': '#002c4e',\n 'Shared_Royal_blue_Shade_20': '#003b6a',\n 'Shared_Royal_blue_Shade_10': '#00467e',\n 'Shared_Royal_blue_Primary': '#004e8c',\n 'Shared_Royal_blue_Tint_10': '#125e9a',\n 'Shared_Royal_blue_Tint_20': '#286fa8',\n 'Shared_Royal_blue_Tint_30': '#4a89ba',\n 'Shared_Royal_blue_Tint_40': '#9abfdc',\n 'Shared_Royal_blue_Tint_50': '#c7dced',\n 'Shared_Royal_blue_Tint_60': '#f0f6fa',\n 'Shared_Dark_blue_Shade_50': '#000910',\n 'Shared_Dark_blue_Shade_40': '#00111f',\n 'Shared_Dark_blue_Shade_30': '#002039',\n 'Shared_Dark_blue_Shade_20': '#002b4e',\n 'Shared_Dark_blue_Shade_10': '#00335c',\n 'Shared_Dark_blue_Primary': '#003966',\n 'Shared_Dark_blue_Tint_10': '#0e4a78',\n 'Shared_Dark_blue_Tint_20': '#215c8b',\n 'Shared_Dark_blue_Tint_30': '#4178a3',\n 'Shared_Dark_blue_Tint_40': '#92b5d1',\n 'Shared_Dark_blue_Tint_50': '#c2d6e7',\n 'Shared_Dark_blue_Tint_60': '#eff4f9',\n 'Shared_Cornflower_Shade_50': '#0d1126',\n 'Shared_Cornflower_Shade_40': '#182047',\n 'Shared_Cornflower_Shade_30': '#2c3c85',\n 'Shared_Cornflower_Shade_20': '#3c51b4',\n 'Shared_Cornflower_Shade_10': '#4760d5',\n 'Shared_Cornflower_Primary': '#4f6bed',\n 'Shared_Cornflower_Tint_10': '#637cef',\n 'Shared_Cornflower_Tint_20': '#778df1',\n 'Shared_Cornflower_Tint_30': '#93a4f4',\n 'Shared_Cornflower_Tint_40': '#c8d1fa',\n 'Shared_Cornflower_Tint_50': '#e1e6fc',\n 'Shared_Cornflower_Tint_60': '#f7f9fe',\n 'Shared_Navy_Shade_50': '#00061d',\n 'Shared_Navy_Shade_40': '#000c36',\n 'Shared_Navy_Shade_30': '#001665',\n 'Shared_Navy_Shade_20': '#001e89',\n 'Shared_Navy_Shade_10': '#0023a2',\n 'Shared_Navy_Primary': '#0027b4',\n 'Shared_Navy_Tint_10': '#173bbd',\n 'Shared_Navy_Tint_20': '#3050c6',\n 'Shared_Navy_Tint_30': '#546fd2',\n 'Shared_Navy_Tint_40': '#a3b2e8',\n 'Shared_Navy_Tint_50': '#ccd5f3',\n 'Shared_Navy_Tint_60': '#f2f4fc',\n 'Shared_Lavender_Shade_50': '#120f25',\n 'Shared_Lavender_Shade_40': '#221d46',\n 'Shared_Lavender_Shade_30': '#3f3682',\n 'Shared_Lavender_Shade_20': '#5649b0',\n 'Shared_Lavender_Shade_10': '#6656d1',\n 'Shared_Lavender_Primary': '#7160e8',\n 'Shared_Lavender_Tint_10': '#8172eb',\n 'Shared_Lavender_Tint_20': '#9184ee',\n 'Shared_Lavender_Tint_30': '#a79cf1',\n 'Shared_Lavender_Tint_40': '#d2ccf8',\n 'Shared_Lavender_Tint_50': '#e7e4fb',\n 'Shared_Lavender_Tint_60': '#f9f8fe',\n 'Shared_Purple_Shade_50': '#0f0717',\n 'Shared_Purple_Shade_40': '#1c0e2b',\n 'Shared_Purple_Shade_30': '#341a51',\n 'Shared_Purple_Shade_20': '#46236e',\n 'Shared_Purple_Shade_10': '#532982',\n 'Shared_Purple_Primary': '#5c2e91',\n 'Shared_Purple_Tint_10': '#6b3f9e',\n 'Shared_Purple_Tint_20': '#7c52ab',\n 'Shared_Purple_Tint_30': '#9470bd',\n 'Shared_Purple_Tint_40': '#c6b1de',\n 'Shared_Purple_Tint_50': '#e0d3ed',\n 'Shared_Purple_Tint_60': '#f7f4fb',\n 'Shared_Dark_purple_Shade_50': '#0a0411',\n 'Shared_Dark_purple_Shade_40': '#130820',\n 'Shared_Dark_purple_Shade_30': '#240f3c',\n 'Shared_Dark_purple_Shade_20': '#311552',\n 'Shared_Dark_purple_Shade_10': '#3a1861',\n 'Shared_Dark_purple_Primary': '#401b6c',\n 'Shared_Dark_purple_Tint_10': '#512b7e',\n 'Shared_Dark_purple_Tint_20': '#633e8f',\n 'Shared_Dark_purple_Tint_30': '#7e5ca7',\n 'Shared_Dark_purple_Tint_40': '#b9a3d3',\n 'Shared_Dark_purple_Tint_50': '#d8cce7',\n 'Shared_Dark_purple_Tint_60': '#f5f2f9',\n 'Shared_Orchid_Shade_50': '#16101d',\n 'Shared_Orchid_Shade_40': '#281e37',\n 'Shared_Orchid_Shade_30': '#4c3867',\n 'Shared_Orchid_Shade_20': '#674c8c',\n 'Shared_Orchid_Shade_10': '#795aa6',\n 'Shared_Orchid_Primary': '#8764b8',\n 'Shared_Orchid_Tint_10': '#9373c0',\n 'Shared_Orchid_Tint_20': '#a083c9',\n 'Shared_Orchid_Tint_30': '#b29ad4',\n 'Shared_Orchid_Tint_40': '#d7caea',\n 'Shared_Orchid_Tint_50': '#e9e2f4',\n 'Shared_Orchid_Tint_60': '#f9f8fc',\n 'Shared_Grape_Shade_50': '#160418',\n 'Shared_Grape_Shade_40': '#29072e',\n 'Shared_Grape_Shade_30': '#4c0d55',\n 'Shared_Grape_Shade_20': '#671174',\n 'Shared_Grape_Shade_10': '#7a1589',\n 'Shared_Grape_Primary': '#881798',\n 'Shared_Grape_Tint_10': '#952aa4',\n 'Shared_Grape_Tint_20': '#a33fb1',\n 'Shared_Grape_Tint_30': '#b55fc1',\n 'Shared_Grape_Tint_40': '#d9a7e0',\n 'Shared_Grape_Tint_50': '#eaceef',\n 'Shared_Grape_Tint_60': '#faf2fb',\n 'Shared_Berry_Shade_50': '#1f091d',\n 'Shared_Berry_Shade_40': '#3a1136',\n 'Shared_Berry_Shade_30': '#6d2064',\n 'Shared_Berry_Shade_20': '#932b88',\n 'Shared_Berry_Shade_10': '#af33a1',\n 'Shared_Berry_Primary': '#c239b3',\n 'Shared_Berry_Tint_10': '#c94cbc',\n 'Shared_Berry_Tint_20': '#d161c4',\n 'Shared_Berry_Tint_30': '#da7ed0',\n 'Shared_Berry_Tint_40': '#edbbe7',\n 'Shared_Berry_Tint_50': '#f5daf2',\n 'Shared_Berry_Tint_60': '#fdf5fc',\n 'Shared_Lilac_Shade_50': '#1c0b1f',\n 'Shared_Lilac_Shade_40': '#35153a',\n 'Shared_Lilac_Shade_30': '#63276d',\n 'Shared_Lilac_Shade_20': '#863593',\n 'Shared_Lilac_Shade_10': '#9f3faf',\n 'Shared_Lilac_Primary': '#b146c2',\n 'Shared_Lilac_Tint_10': '#ba58c9',\n 'Shared_Lilac_Tint_20': '#c36bd1',\n 'Shared_Lilac_Tint_30': '#cf87da',\n 'Shared_Lilac_Tint_40': '#e6bfed',\n 'Shared_Lilac_Tint_50': '#f2dcf5',\n 'Shared_Lilac_Tint_60': '#fcf6fd',\n 'Shared_Pink_Shade_50': '#24091b',\n 'Shared_Pink_Shade_40': '#441232',\n 'Shared_Pink_Shade_30': '#80215d',\n 'Shared_Pink_Shade_20': '#ad2d7e',\n 'Shared_Pink_Shade_10': '#cd3595',\n 'Shared_Pink_Primary': '#e43ba6',\n 'Shared_Pink_Tint_10': '#e750b0',\n 'Shared_Pink_Tint_20': '#ea66ba',\n 'Shared_Pink_Tint_30': '#ef85c8',\n 'Shared_Pink_Tint_40': '#f7c0e3',\n 'Shared_Pink_Tint_50': '#fbddf0',\n 'Shared_Pink_Tint_60': '#fef6fb',\n 'Shared_Hot_pink_Shade_50': '#240016',\n 'Shared_Hot_pink_Shade_40': '#44002a',\n 'Shared_Hot_pink_Shade_30': '#7f004e',\n 'Shared_Hot_pink_Shade_20': '#ad006a',\n 'Shared_Hot_pink_Shade_10': '#cc007e',\n 'Shared_Hot_pink_Primary': '#e3008c',\n 'Shared_Hot_pink_Tint_10': '#e61c99',\n 'Shared_Hot_pink_Tint_20': '#ea38a6',\n 'Shared_Hot_pink_Tint_30': '#ee5fb7',\n 'Shared_Hot_pink_Tint_40': '#f7adda',\n 'Shared_Hot_pink_Tint_50': '#fbd2eb',\n 'Shared_Hot_pink_Tint_60': '#fef4fa',\n 'Shared_Magenta_Shade_50': '#1f0013',\n 'Shared_Magenta_Shade_40': '#390024',\n 'Shared_Magenta_Shade_30': '#6b0043',\n 'Shared_Magenta_Shade_20': '#91005a',\n 'Shared_Magenta_Shade_10': '#ac006b',\n 'Shared_Magenta_Primary': '#bf0077',\n 'Shared_Magenta_Tint_10': '#c71885',\n 'Shared_Magenta_Tint_20': '#ce3293',\n 'Shared_Magenta_Tint_30': '#d957a8',\n 'Shared_Magenta_Tint_40': '#eca5d1',\n 'Shared_Magenta_Tint_50': '#f5cee6',\n 'Shared_Magenta_Tint_60': '#fcf2f9',\n 'Shared_Plum_Shade_50': '#13000c',\n 'Shared_Plum_Shade_40': '#240017',\n 'Shared_Plum_Shade_30': '#43002b',\n 'Shared_Plum_Shade_20': '#5a003b',\n 'Shared_Plum_Shade_10': '#6b0045',\n 'Shared_Plum_Primary': '#77004d',\n 'Shared_Plum_Tint_10': '#87105d',\n 'Shared_Plum_Tint_20': '#98246f',\n 'Shared_Plum_Tint_30': '#ad4589',\n 'Shared_Plum_Tint_40': '#d696c0',\n 'Shared_Plum_Tint_50': '#e9c4dc',\n 'Shared_Plum_Tint_60': '#faf0f6',\n 'Shared_Beige_Shade_50': '#141313',\n 'Shared_Beige_Shade_40': '#252323',\n 'Shared_Beige_Shade_30': '#444241',\n 'Shared_Beige_Shade_20': '#5d5958',\n 'Shared_Beige_Shade_10': '#6e6968',\n 'Shared_Beige_Primary': '#7a7574',\n 'Shared_Beige_Tint_10': '#8a8584',\n 'Shared_Beige_Tint_20': '#9a9594',\n 'Shared_Beige_Tint_30': '#afabaa',\n 'Shared_Beige_Tint_40': '#d7d4d4',\n 'Shared_Beige_Tint_50': '#eae8e8',\n 'Shared_Beige_Tint_60': '#faf9f9',\n 'Shared_Mink_Shade_50': '#0f0e0e',\n 'Shared_Mink_Shade_40': '#1c1b1a',\n 'Shared_Mink_Shade_30': '#343231',\n 'Shared_Mink_Shade_20': '#474443',\n 'Shared_Mink_Shade_10': '#54514f',\n 'Shared_Mink_Primary': '#5d5a58',\n 'Shared_Mink_Tint_10': '#706d6b',\n 'Shared_Mink_Tint_20': '#84817e',\n 'Shared_Mink_Tint_30': '#9e9b99',\n 'Shared_Mink_Tint_40': '#cecccb',\n 'Shared_Mink_Tint_50': '#e5e4e3',\n 'Shared_Mink_Tint_60': '#f8f8f8',\n 'Shared_Silver_Shade_50': '#151818',\n 'Shared_Silver_Shade_40': '#282d2e',\n 'Shared_Silver_Shade_30': '#4a5356',\n 'Shared_Silver_Shade_20': '#657174',\n 'Shared_Silver_Shade_10': '#78868a',\n 'Shared_Silver_Primary': '#859599',\n 'Shared_Silver_Tint_10': '#92a1a5',\n 'Shared_Silver_Tint_20': '#a0aeb1',\n 'Shared_Silver_Tint_30': '#b3bfc2',\n 'Shared_Silver_Tint_40': '#d8dfe0',\n 'Shared_Silver_Tint_50': '#eaeeef',\n 'Shared_Silver_Tint_60': '#fafbfb',\n 'Shared_Platinum_Shade_50': '#111314',\n 'Shared_Platinum_Shade_40': '#1f2426',\n 'Shared_Platinum_Shade_30': '#3b4447',\n 'Shared_Platinum_Shade_20': '#505c60',\n 'Shared_Platinum_Shade_10': '#5f6d71',\n 'Shared_Platinum_Primary': '#69797e',\n 'Shared_Platinum_Tint_10': '#79898d',\n 'Shared_Platinum_Tint_20': '#89989d',\n 'Shared_Platinum_Tint_30': '#a0adb2',\n 'Shared_Platinum_Tint_40': '#cdd6d8',\n 'Shared_Platinum_Tint_50': '#e4e9ea',\n 'Shared_Platinum_Tint_60': '#f8f9fa',\n 'Shared_Anchor_Shade_50': '#090a0b',\n 'Shared_Anchor_Shade_40': '#111315',\n 'Shared_Anchor_Shade_30': '#202427',\n 'Shared_Anchor_Shade_20': '#2b3135',\n 'Shared_Anchor_Shade_10': '#333a3f',\n 'Shared_Anchor_Primary': '#394146',\n 'Shared_Anchor_Tint_10': '#4d565c',\n 'Shared_Anchor_Tint_20': '#626c72',\n 'Shared_Anchor_Tint_30': '#808a90',\n 'Shared_Anchor_Tint_40': '#bcc3c7',\n 'Shared_Anchor_Tint_50': '#dbdfe1',\n 'Shared_Anchor_Tint_60': '#f6f7f8',\n 'Shared_Charcoal_Shade_50': '#090909',\n 'Shared_Charcoal_Shade_40': '#111111',\n 'Shared_Charcoal_Shade_30': '#202020',\n 'Shared_Charcoal_Shade_20': '#2b2b2b',\n 'Shared_Charcoal_Shade_10': '#333333',\n 'Shared_Charcoal_Primary': '#393939',\n 'Shared_Charcoal_Tint_10': '#515151',\n 'Shared_Charcoal_Tint_20': '#686868',\n 'Shared_Charcoal_Tint_30': '#888888',\n 'Shared_Charcoal_Tint_40': '#c4c4c4',\n 'Shared_Charcoal_Tint_50': '#dfdfdf',\n 'Shared_Charcoal_Tint_60': '#f7f7f7',\n 'Shared_Charcoal_Color': '#ffffff',\n 'Shared_Secondary_Shade_50': '#1c280d',\n 'Shared_Secondary_Shade_40': '#334717',\n 'Shared_Secondary_Shade_30': '#496721',\n 'Shared_Secondary_Shade_20': '#60872b',\n 'Shared_Secondary_Shade_10': '#76a635',\n 'Shared_Secondary_Primary': '#5C9F38',\n 'Shared_Secondary_Tint_10': '#9fcf5e',\n 'Shared_Secondary_Tint_20': '#b1d87c',\n 'Shared_Secondary_Tint_30': '#c4e19b',\n 'Shared_Secondary_Tint_40': '#d6eaba',\n 'Shared_Secondary_Tint_50': '#e8f4d9',\n 'Shared_Secondary_Tint_60': '#fafdf7',\n 'Shared_Tertiary_Shade_50': '#002330',\n 'Shared_Tertiary_Shade_40': '#003f56',\n 'Shared_Tertiary_Shade_30': '#005a7c',\n 'Shared_Tertiary_Shade_20': '#0076a3',\n 'Shared_Tertiary_Shade_10': '#0092c9',\n 'Shared_Tertiary_Primary': '#00aeef',\n 'Shared_Tertiary_Tint_10': '#29bbf2',\n 'Shared_Tertiary_Tint_20': '#52c8f4',\n 'Shared_Tertiary_Tint_30': '#7ad5f7',\n 'Shared_Tertiary_Tint_40': '#a3e2f9',\n 'Shared_Tertiary_Tint_50': '#cceffc',\n 'Shared_Tertiary_Tint_60': '#f5fcfe',\n 'Shared_Quarternary_Shade_50': '#002426',\n 'Shared_Quarternary_Shade_40': '#004044',\n 'Shared_Quarternary_Shade_30': '#005d62',\n 'Shared_Quarternary_Shade_20': '#007a81',\n 'Shared_Quarternary_Shade_10': '#00969f',\n 'Shared_Quarternary_Primary': '#00b3bd',\n 'Shared_Quarternary_Tint_10': '#29bfc8',\n 'Shared_Quarternary_Tint_20': '#52cbd2',\n 'Shared_Quarternary_Tint_30': '#7ad7dd',\n 'Shared_Quarternary_Tint_40': '#a3e4e7',\n 'Shared_Quarternary_Tint_50': '#ccf0f2',\n 'Shared_Quarternary_Tint_60': '#f5fcfc',\n};\n\nexport const foundationColors = {\n 'Foundation_Danger_error': '#FD3A3A',\n};\n\nexport const schemeColors = {\n 'Scheme_Secondary': '#426900',\n};\n\n// Light Mode Colors\nexport const lightModeColors = {\n 'Neutral_Background_1_Rest': '#ffffff',\n 'Neutral_Background_1_Hover': '#f5f5f5',\n 'Neutral_Background_1_Pressed': '#e0e0e0',\n 'Neutral_Background_1_Selected': '#ebebeb',\n 'Neutral_Background_2_Rest': '#fafafa',\n 'Neutral_Background_2_Hover': '#f0f0f0',\n 'Neutral_Background_2_Pressed': '#dbdbdb',\n 'Neutral_Background_2_Selected': '#e6e6e6',\n 'Neutral_Background_3_Rest': '#f5f5f5',\n 'Neutral_Background_3_Hover': '#ebebeb',\n 'Neutral_Background_3_Pressed': '#d6d6d6',\n 'Neutral_Background_3_Selected': '#e0e0e0',\n 'Neutral_Background_4_Rest': '#f0f0f0',\n 'Neutral_Background_4_Hover': '#fafafa',\n 'Neutral_Background_4_Pressed': '#f5f5f5',\n 'Neutral_Background_4_Selected': '#ffffff',\n 'Neutral_Background_5_Rest': '#ebebeb',\n 'Neutral_Background_5_Hover': '#f5f5f5',\n 'Neutral_Background_5_Pressed': '#f0f0f0',\n 'Neutral_Background_5_Selected': '#fafafa',\n 'Neutral_Background_6_Rest': '#e6e6e6',\n 'Neutral_Background_Inverted_Rest': '#292929',\n 'Neutral_Background_Inverted_Disabled_Rest': 1,\n 'Neutral_Background_Alpha_1_Rest': '#1a1a1a80',\n 'Neutral_Background_Alpha_2_Rest': 8,\n 'Neutral_Background_Static_Rest': '#333333',\n 'Neutral_Background_Subtle_Rest': '#00000000',\n 'Neutral_Background_Subtle_Hover': '#f5f5f5',\n 'Neutral_Background_Subtle_Pressed': '#e0e0e0',\n 'Neutral_Background_Subtle_Selected': '#ebebeb',\n 'Neutral_Background_Subtle_Light alpha_Hover': '#1a1a1ab3',\n 'Neutral_Background_Subtle_Light alpha_Pressed': '#1a1a1a80',\n 'Neutral_Background_Subtle_Light alpha_Selected': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Rest': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Hover': 1,\n 'Neutral_Background_Subtle_Inverted_Pressed': 3,\n 'Neutral_Background_Subtle_Inverted_Selected': 2,\n 'Neutral_Background_Transparent_Rest': '#00000000',\n 'Neutral_Background_Transparent_Hover': '#00000000',\n 'Neutral_Background_Transparent_Pressed': '#00000000',\n 'Neutral_Background_Transparent_Selected': '#00000000',\n 'Neutral_Background_Disabled_Rest': '#f0f0f0',\n 'Neutral_Background_Stencil_1_Rest': '#e6e6e6',\n 'Neutral_Background_Stencil_1_Alpha_Rest': 1,\n 'Neutral_Background_Stencil_2_Rest': '#fafafa',\n 'Neutral_Background_Stencil_2_Alpha_Rest': '#1a1a1a0d',\n 'Neutral_Background_Overlay_Rest': 4,\n 'Neutral_Background_Overlay_Scrollbar_Rest': '#1a1a1a80',\n 'Neutral_Foreground_1_Rest': '#242424',\n 'Neutral_Foreground_1_Hover': '#242424',\n 'Neutral_Foreground_1_Pressed': '#242424',\n 'Neutral_Foreground_1_Selected': '#242424',\n 'Neutral_Foreground_2_Rest': '#424242',\n 'Neutral_Foreground_2_Hover': '#242424',\n 'Neutral_Foreground_2_Pressed': '#242424',\n 'Neutral_Foreground_2_Selected': '#242424',\n 'Neutral_Foreground_2_Brand_Hover': '#1e398d',\n 'Neutral_Foreground_2_Brand_Pressed': '#182e71',\n 'Neutral_Foreground_2_Brand_Selected': '#1e398d',\n 'Neutral_Foreground_2_Link_Rest': '#424242',\n 'Neutral_Foreground_2_Link_Hover': '#242424',\n 'Neutral_Foreground_2_Link_Pressed': '#242424',\n 'Neutral_Foreground_2_Link_Selected': '#242424',\n 'Neutral_Foreground_3_Rest': '#616161',\n 'Neutral_Foreground_3_Hover': '#424242',\n 'Neutral_Foreground_3_Pressed': '#424242',\n 'Neutral_Foreground_3_Selected': '#424242',\n 'Neutral_Foreground_3_Brand_Hover': '#1e398d',\n 'Neutral_Foreground_3_Brand_Pressed': '#182e71',\n 'Neutral_Foreground_3_Brand_Selected': '#1e398d',\n 'Neutral_Foreground_4_Rest': '#707070',\n 'Neutral_Foreground_Disabled_Rest': '#bdbdbd',\n 'Neutral_Foreground_Static_Rest': '#242424',\n 'Neutral_Foreground_Static_Inverted_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Hover': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Pressed': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Selected': '#ffffff',\n 'Neutral_Foreground_Inverted_2_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_Disabled_Rest': 4,\n 'Neutral_Foreground_Inverted_Link_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Hover': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Pressed': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Selected': '#ffffff',\n 'Neutral_Foreground_On Brand_Rest': '#ffffff',\n 'Neutral_Stroke_1_Rest': '#d1d1d1',\n 'Neutral_Stroke_1_Hover': '#c7c7c7',\n 'Neutral_Stroke_1_Pressed': '#b3b3b3',\n 'Neutral_Stroke_1_Selected': '#bdbdbd',\n 'Neutral_Stroke_2_Rest': '#e0e0e0',\n 'Neutral_Stroke_3_Rest': '#f0f0f0',\n 'Neutral_Stroke_Alpha_1_Rest': '#1a1a1a0d',\n 'Neutral_Stroke_Alpha_2_Rest': 2,\n 'Neutral_Stroke_Subtle_Rest': '#e0e0e0',\n 'Neutral_Stroke_on Brand_1_Rest': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Rest': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Hover': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Pressed': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Selected': '#ffffff',\n 'Neutral_Stroke_Accessible_Rest': '#616161',\n 'Neutral_Stroke_Accessible_Hover': '#575757',\n 'Neutral_Stroke_Accessible_Pressed': '#4d4d4d',\n 'Neutral_Stroke_Accessible_Selected': '#1e398d',\n 'Neutral_Stroke_Focus_1_Rest': '#ffffff',\n 'Neutral_Stroke_Focus_2_Rest': '#000000',\n 'Neutral_Stroke_Transparent_Interactive_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Disabled_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Rest': '#00000000',\n 'Neutral_Stroke_Disabled_Rest': '#e0e0e0',\n 'Neutral_Stroke_Disabled_Inverted_Rest': 4,\n 'Brand_Background_1_Rest': '#00B3BD',\n 'Brand_Background_1_Hover': '#182e71',\n 'Brand_Background_1_Pressed': '#09112a',\n 'Brand_Background_1_Selected': '#122255',\n 'Brand_Background_2_Rest': '#ffffff',\n 'Brand_Background_2_Hover': '#fdfdff',\n 'Brand_Background_2_Pressed': '#d0d6e8',\n 'Brand_Background_Inverted_Rest': '#ffffff',\n 'Brand_Background_Inverted_Hover': '#ffffff',\n 'Brand_Background_Inverted_Pressed': '#e7e9f4',\n 'Brand_Background_Inverted_Selected': '#fdfdff',\n 'Brand_Background_Compound_Rest': '#1e398d',\n 'Brand_Background_Compound_Hover': '#182e71',\n 'Brand_Background_Compound_Pressed': '#122255',\n 'Brand_Background_Static_1_Rest': '#1e398d',\n 'Brand_Background_Static_3_Rest': '#122255',\n 'Brand_Background_Static_4_Rest': '#09112a',\n 'Brand_Foreground_1_Rest': '#1e398d',\n 'Brand_Foreground_2_Rest': '#182e71',\n 'Brand_Foreground_2_Hover': '#122255',\n 'Brand_Foreground_2_Pressed': '#060b1c',\n 'Brand_Foreground_Link_Rest': '#182e71',\n 'Brand_Foreground_Link_Hover': '#122255',\n 'Brand_Foreground_Link_Pressed': '#09112a',\n 'Brand_Foreground_Link_Selected': '#182e71',\n 'Brand_Foreground_Inverted_Rest': '#7787bb',\n 'Brand_Foreground_Inverted_Hover': '#a4afd1',\n 'Brand_Foreground_Inverted_Pressed': '#7787bb',\n 'Brand_Foreground_On Light_Rest': '#1e398d',\n 'Brand_Foreground_On Light_Hover': '#182e71',\n 'Brand_Foreground_On Light_Pressed': '#0c1738',\n 'Brand_Foreground_On Light_Selected': '#122255',\n 'Brand_Foreground_Compound_Rest': '#1e398d',\n 'Brand_Foreground_Compound_Hover': '#182e71',\n 'Brand_Foreground_Compound_Pressed': '#122255',\n 'Brand_Stroke_1_Rest': '#00B3BD',\n 'Brand_Stroke_2_Rest': '#e7e9f4',\n 'Brand_Stroke_2_Hover': '#bac2dd',\n 'Brand_Stroke_2_Pressed': '#1e398d',\n 'Brand_Stroke_2_Contrast_Rest': '#e7e9f4',\n 'Brand_Stroke_Compound_Rest': '#1e398d',\n 'Brand_Stroke_Compound_Hover': '#182e71',\n 'Brand_Stroke_Compound_Pressed': '#122255',\n 'Status_Danger_Background_1_Rest': '#f5fcfc',\n 'Status_Danger_Background_2_Rest': '#a3e4e7',\n 'Status_Danger_Background_3_Rest': '#00b3bd',\n 'Status_Danger_Foreground_1_Rest': '#b10e1c',\n 'Status_Danger_Foreground_2_Rest': '#005d62',\n 'Status_Danger_Foreground_3_Rest': '#00b3bd',\n 'Status_Danger_Foreground_3_Pressed': '#007a81',\n 'Status_Danger_Foreground_3_Hover': '#00969f',\n 'Status_Danger_Foreground_Inverted_Rest': '#7ad7dd',\n 'Status_Danger_Stroke_1_Rest': '#a3e4e7',\n 'Status_Danger_Stroke_2_Rest': '#C50F1F',\n 'Status_Success_Background_1_Rest': '#f5fcfc',\n 'Status_Success_Background_2_Rest': '#a3e4e7',\n 'Status_Success_Background_3_Rest': '#00b3bd',\n 'Status_Success_Foreground_1_Rest': '#00969f',\n 'Status_Success_Foreground_2_Rest': '#005d62',\n 'Status_Success_Foreground_3_Rest': '#00b3bd',\n 'Status_Success_Foreground_Inverted_Rest': '#52cbd2',\n 'Status_Success_Stroke_1_Rest': '#a3e4e7',\n 'Status_Success_Stroke_2_Rest': '#00b3bd',\n 'Status_Warning_Background_1_Rest': '#f5fcfc',\n 'Status_Warning_Background_2_Rest': '#a3e4e7',\n 'Status_Warning_Background_3_Rest': '#00b3bd',\n 'Status_Warning_Foreground_1_Rest': '#007a81',\n 'Status_Warning_Foreground_2_Rest': '#005d62',\n 'Status_Warning_Foreground_3_Rest': '#007a81',\n 'Status_Warning_Foreground_Inverted_Rest': '#7ad7dd',\n 'Status_Warning_Stroke_1_Rest': '#a3e4e7',\n 'Status_Warning_Stroke_2_Rest': '#007a81',\n 'Status_Oof_Foreground_3_Rest': '#00b3bd',\n 'Status_Away_Background_3_Rest': '#00b3bd',\n 'Status_Available_Foreground_3_Rest': '#00b3bd',\n 'Status_Severe_Background_1_Rest': '#f5fcfc',\n 'Status_Severe_Background_2_Rest': '#a3e4e7',\n 'Status_Severe_Background_3_Rest': '#00b3bd',\n 'Status_Severe_Foreground_1_Rest': '#007a81',\n 'Status_Severe_Foreground_2_Rest': '#007a81',\n 'Status_Severe_Foreground_3_Rest': '#007a81',\n 'Status_Severe_Foreground_Inverted_Rest': '#7ad7dd',\n 'Status_Severe_Stroke_1_Rest': '#a3e4e7',\n 'Status_Severe_Stroke_2_Rest': '#007a81',\n 'Palette_Dark red_Background_2_Rest': '#a3e4e7',\n 'Palette_Dark red_Foreground_2_Rest': '#005d62',\n 'Palette_Dark red_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Cranberry_Background_2_Rest': '#a3e4e7',\n 'Palette_Cranberry_Foreground_2_Rest': '#005d62',\n 'Palette_Cranberry_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Red_Background_1_Rest': '#f5fcfc',\n 'Palette_Red_Background_2_Rest': '#a3e4e7',\n 'Palette_Red_Background_3_Rest': '#00b3bd',\n 'Palette_Red_Foreground_1_Rest': '#00969f',\n 'Palette_Red_Foreground_2_Rest': '#005d62',\n 'Palette_Red_Foreground_3_Rest': '#00b3bd',\n 'Palette_Red_Foreground_Inverted_Rest': '#52cbd2',\n 'Palette_Red_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Red_Stroke_2_Rest': '#00b3bd',\n 'Palette_Red_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Pumpkin_Background_2_Rest': '#a3e4e7',\n 'Palette_Pumpkin_Foreground_2_Rest': '#005d62',\n 'Palette_Pumpkin_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Peach_Background_2_Rest': '#a3e4e7',\n 'Palette_Peach_Foreground_2_Rest': '#005d62',\n 'Palette_Peach_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Marigold_Background_1_Rest': '#f5fcfc',\n 'Palette_Marigold_Background_2_Rest': '#a3e4e7',\n 'Palette_Marigold_Background_3_Rest': '#00b3bd',\n 'Palette_Marigold_Foreground_1_Rest': '#00969f',\n 'Palette_Marigold_Foreground_1_Rest 2': '#00b3bd',\n 'Palette_Marigold_Foreground_2_Rest': '#005d62',\n 'Palette_Marigold_Foreground_3_Rest': '#00b3bd',\n 'Palette_Marigold_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Marigold_Stroke_2_Rest': '#00b3bd',\n 'Palette_Marigold_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Gold_Background_2_Rest': '#a3e4e7',\n 'Palette_Gold_Foreground_2_Rest': '#005d62',\n 'Palette_Gold_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Brass_Background_2_Rest': '#a3e4e7',\n 'Palette_Brass_Foreground_2_Rest': '#005d62',\n 'Palette_Brass_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Brown_Background_2_Rest': '#a3e4e7',\n 'Palette_Brown_Foreground_2_Rest': '#005d62',\n 'Palette_Brown_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Forest_Background_2_Rest': '#a3e4e7',\n 'Palette_Forest_Foreground_2_Rest': '#005d62',\n 'Palette_Forest_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Seafoam_Background_2_Rest': '#a3e4e7',\n 'Palette_Seafoam_Foreground_2_Rest': '#005d62',\n 'Palette_Seafoam_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Dark green_Background_2_Rest': '#a3e4e7',\n 'Palette_Dark green_Foreground_2_Rest': '#005d62',\n 'Palette_Dark green_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Light teal_Background_2_Rest': '#a3e4e7',\n 'Palette_Light teal_Foreground_2_Rest': '#005d62',\n 'Palette_Light teal_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Teal_Background_2_Rest': '#a3e4e7',\n 'Palette_Teal_Foreground_2_Rest': '#005d62',\n 'Palette_Teal_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Steel_Background_2_Rest': '#a3e4e7',\n 'Palette_Steel_Foreground_2_Rest': '#005d62',\n 'Palette_Steel_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Blue_Background_2_Rest': '#a3e4e7',\n 'Palette_Blue_Foreground_2_Rest': '#005d62',\n 'Palette_Blue_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Royal blue_Background_2_Rest': '#a3e4e7',\n 'Palette_Royal blue_Foreground_2_Rest': '#005d62',\n 'Palette_Royal blue_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Cornflower_Background_2_Rest': '#a3e4e7',\n 'Palette_Cornflower_Foreground_2_Rest': '#005d62',\n 'Palette_Cornflower_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Navy_Background_2_Rest': '#a3e4e7',\n 'Palette_Navy_Foreground_2_Rest': '#005d62',\n 'Palette_Navy_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Lavender_Background_2_Rest': '#a3e4e7',\n 'Palette_Lavender_Foreground_2_Rest': '#005d62',\n 'Palette_Lavender_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Purple_Background_2_Rest': '#a3e4e7',\n 'Palette_Purple_Foreground_2_Rest': '#005d62',\n 'Palette_Purple_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Grape_Background_2_Rest': '#a3e4e7',\n 'Palette_Grape_Foreground_2_Rest': '#005d62',\n 'Palette_Grape_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Lilac_Background_2_Rest': '#a3e4e7',\n 'Palette_Lilac_Foreground_2_Rest': '#005d62',\n 'Palette_Lilac_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Pink_Background_2_Rest': '#a3e4e7',\n 'Palette_Pink_Foreground_2_Rest': '#005d62',\n 'Palette_Pink_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Magenta_Background_2_Rest': '#a3e4e7',\n 'Palette_Magenta_Foreground_2_Rest': '#005d62',\n 'Palette_Magenta_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Plum_Background_2_Rest': '#a3e4e7',\n 'Palette_Plum_Foreground_2_Rest': '#005d62',\n 'Palette_Plum_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Beige_Background_2_Rest': '#a3e4e7',\n 'Palette_Beige_Foreground_2_Rest': '#005d62',\n 'Palette_Beige_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Mink_Background_2_Rest': '#a3e4e7',\n 'Palette_Mink_Foreground_2_Rest': '#005d62',\n 'Palette_Mink_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Platinum_Background_2_Rest': '#a3e4e7',\n 'Palette_Platinum_Foreground_2_Rest': '#005d62',\n 'Palette_Platinum_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Anchor_Background_2_Rest': '#a3e4e7',\n 'Palette_Anchor_Foreground_2_Rest': '#005d62',\n 'Palette_Anchor_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Green_Background_1_Rest': '#f5fcfc',\n 'Palette_Green_Background_2_Rest': '#a3e4e7',\n 'Palette_Green_Background_3_Rest': '#00b3bd',\n 'Palette_Green_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Green_Stroke_2_Rest': '#00b3bd',\n 'Palette_Green_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Green_Foreground_1_Rest': '#00969f',\n 'Palette_Green_Foreground_2_Rest': '#005d62',\n 'Palette_Green_Foreground_3_Rest': '#00b3bd',\n 'Palette_Green_Foreground_Inverted_Rest': '#52cbd2',\n 'Palette_Dark orange_Foreground_1_Rest': '#00969f',\n 'Palette_Dark orange_Foreground_2_Rest': '#005d62',\n 'Palette_Dark orange_Foreground_3_Rest': '#00b3bd',\n 'Palette_Dark orange_Background_1_Rest': '#f5fcfc',\n 'Palette_Dark orange_Background_2_Rest': '#a3e4e7',\n 'Palette_Dark orange_Background_3_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Dark orange_Stroke_2_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Yellow_Foreground_1_Rest': '#005d62',\n 'Palette_Yellow_Foreground_2_Rest': '#005d62',\n 'Palette_Yellow_Foreground_3_Rest': '#00b3bd',\n 'Palette_Yellow_Foreground_Inverted_Rest': '#a3e4e7',\n 'Palette_Yellow_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Yellow_Stroke_2_Rest': '#00b3bd',\n 'Palette_Yellow_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Yellow_Background_1_Rest': '#f5fcfc',\n 'Palette_Yellow_Background_2_Rest': '#a3e4e7',\n 'Palette_Yellow_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Foreground_1_Rest': '#00969f',\n 'Palette_Berry_Foreground_2_Rest': '#005d62',\n 'Palette_Berry_Foreground_3_Rest': '#00b3bd',\n 'Palette_Berry_Background_1_Rest': '#f5fcfc',\n 'Palette_Berry_Background_2_Rest': '#a3e4e7',\n 'Palette_Berry_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Berry_Stroke_2_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_Active_Rest': '#00b3bd',\n 'Palette_Light Green_Foreground_1_Rest': '#00969f',\n 'Palette_Light Green_Foreground_2_Rest': '#005d62',\n 'Palette_Light Green_Foreground_3_Rest': '#00b3bd',\n 'Palette_Light Green_Background_1_Rest': '#f5fcfc',\n 'Palette_Light Green_Background_2_Rest': '#a3e4e7',\n 'Palette_Light Green_Background_3_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_1_Rest': '#a3e4e7',\n 'Palette_Light Green_Stroke_2_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_Active_Rest': '#00b3bd',\n 'Shadow_Ambient': '#0000001f',\n 'Shadow_Ambient lighter': '#0000000f',\n 'Shadow_Ambient darker': '#00000033',\n 'Shadow_Brand ambient': '#00000040',\n 'Shadow_Key': '#00000024',\n 'Shadow_Key lighter': '#00000012',\n 'Shadow_Key darker': '#0000003d',\n 'Shadow_Brand key': '#0000004d',\n 'Material_Acrylic_Stroke_Stop 2': '#cfe4fa33',\n 'Material_Acrylic_Stroke_Stop 3': 2,\n 'Material_Acrylic_Stroke_Stop 1': 2,\n 'Material_Acrylic_Background_Secondary': '#e7ecf3b3',\n 'Material_Acrylic_Background_Primary': '#1a1a1a80',\n 'Material_Acrylic_Background_Blur': 60,\n};\n\n// Dark Mode Colors\nexport const darkModeColors = {\n 'Neutral_Background_1_Rest': '#292929',\n 'Neutral_Background_1_Hover': '#3d3d3d',\n 'Neutral_Background_1_Pressed': '#1f1f1f',\n 'Neutral_Background_1_Selected': '#383838',\n 'Neutral_Background_2_Rest': '#1f1f1f',\n 'Neutral_Background_2_Hover': '#333333',\n 'Neutral_Background_2_Pressed': '#141414',\n 'Neutral_Background_2_Selected': '#2e2e2e',\n 'Neutral_Background_3_Rest': '#141414',\n 'Neutral_Background_3_Hover': '#292929',\n 'Neutral_Background_3_Pressed': '#0a0a0a',\n 'Neutral_Background_3_Selected': '#242424',\n 'Neutral_Background_4_Rest': '#0a0a0a',\n 'Neutral_Background_4_Hover': '#1f1f1f',\n 'Neutral_Background_4_Pressed': '#000000',\n 'Neutral_Background_4_Selected': '#1a1a1a',\n 'Neutral_Background_5_Rest': '#000000',\n 'Neutral_Background_5_Hover': '#141414',\n 'Neutral_Background_5_Pressed': '#050505',\n 'Neutral_Background_5_Selected': '#0f0f0f',\n 'Neutral_Background_6_Rest': '#333333',\n 'Neutral_Background_Inverted_Rest': '#ffffff',\n 'Neutral_Background_Inverted_Disabled_Rest': 1,\n 'Neutral_Background_Alpha_1_Rest': '#1a1a1a80',\n 'Neutral_Background_Alpha_2_Rest': '#1a1a1ab3',\n 'Neutral_Background_Static_Rest': '#3d3d3d',\n 'Neutral_Background_Subtle_Rest': '#00000000',\n 'Neutral_Background_Subtle_Hover': '#383838',\n 'Neutral_Background_Subtle_Pressed': '#2e2e2e',\n 'Neutral_Background_Subtle_Selected': '#333333',\n 'Neutral_Background_Subtle_Light alpha_Hover': 8,\n 'Neutral_Background_Subtle_Light alpha_Pressed': '#1a1a1a80',\n 'Neutral_Background_Subtle_Light alpha_Selected': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Rest': '#00000000',\n 'Neutral_Background_Subtle_Inverted_Hover': 1,\n 'Neutral_Background_Subtle_Inverted_Pressed': 3,\n 'Neutral_Background_Subtle_Inverted_Selected': 2,\n 'Neutral_Background_Transparent_Rest': '#00000000',\n 'Neutral_Background_Transparent_Hover': '#00000000',\n 'Neutral_Background_Transparent_Pressed': '#00000000',\n 'Neutral_Background_Transparent_Selected': '#00000000',\n 'Neutral_Background_Disabled_Rest': '#141414',\n 'Neutral_Background_Stencil_1_Rest': '#575757',\n 'Neutral_Background_Stencil_1_Alpha_Rest': 1,\n 'Neutral_Background_Stencil_2_Rest': '#333333',\n 'Neutral_Background_Stencil_2_Alpha_Rest': '#1a1a1a0d',\n 'Neutral_Background_Overlay_Rest': '#1a1a1a80',\n 'Neutral_Background_Overlay_Scrollbar_Rest': 6,\n 'Neutral_Foreground_1_Rest': '#ffffff',\n 'Neutral_Foreground_1_Hover': '#ffffff',\n 'Neutral_Foreground_1_Pressed': '#ffffff',\n 'Neutral_Foreground_1_Selected': '#ffffff',\n 'Neutral_Foreground_2_Rest': '#d6d6d6',\n 'Neutral_Foreground_2_Hover': '#ffffff',\n 'Neutral_Foreground_2_Pressed': '#ffffff',\n 'Neutral_Foreground_2_Selected': '#ffffff',\n 'Neutral_Foreground_2_Brand_Hover': '#7787bb',\n 'Neutral_Foreground_2_Brand_Pressed': '#a4afd1',\n 'Neutral_Foreground_2_Brand_Selected': '#7787bb',\n 'Neutral_Foreground_2_Link_Rest': '#d6d6d6',\n 'Neutral_Foreground_2_Link_Hover': '#ffffff',\n 'Neutral_Foreground_2_Link_Pressed': '#ffffff',\n 'Neutral_Foreground_2_Link_Selected': '#ffffff',\n 'Neutral_Foreground_3_Rest': '#adadad',\n 'Neutral_Foreground_3_Hover': '#d6d6d6',\n 'Neutral_Foreground_3_Pressed': '#d6d6d6',\n 'Neutral_Foreground_3_Selected': '#d6d6d6',\n 'Neutral_Foreground_3_Brand_Hover': '#7787bb',\n 'Neutral_Foreground_3_Brand_Pressed': '#a4afd1',\n 'Neutral_Foreground_3_Brand_Selected': '#7787bb',\n 'Neutral_Foreground_4_Rest': '#999999',\n 'Neutral_Foreground_Disabled_Rest': '#5c5c5c',\n 'Neutral_Foreground_Static_Rest': '#242424',\n 'Neutral_Foreground_Static_Inverted_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_1_Rest': '#242424',\n 'Neutral_Foreground_Inverted_1_Hover': '#242424',\n 'Neutral_Foreground_Inverted_1_Pressed': '#242424',\n 'Neutral_Foreground_Inverted_1_Selected': '#242424',\n 'Neutral_Foreground_Inverted_2_Rest': '#242424',\n 'Neutral_Foreground_Inverted_Disabled_Rest': 4,\n 'Neutral_Foreground_Inverted_Link_Rest': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Hover': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Pressed': '#ffffff',\n 'Neutral_Foreground_Inverted_Link_Selected': '#ffffff',\n 'Neutral_Foreground_On Brand_Rest': '#ffffff',\n 'Neutral_Stroke_1_Rest': '#666666',\n 'Neutral_Stroke_1_Hover': '#757575',\n 'Neutral_Stroke_1_Pressed': '#6b6b6b',\n 'Neutral_Stroke_1_Selected': '#707070',\n 'Neutral_Stroke_2_Rest': '#525252',\n 'Neutral_Stroke_3_Rest': '#3d3d3d',\n 'Neutral_Stroke_Alpha_1_Rest': 1,\n 'Neutral_Stroke_Alpha_2_Rest': 2,\n 'Neutral_Stroke_Subtle_Rest': '#0a0a0a',\n 'Neutral_Stroke_on Brand_1_Rest': '#292929',\n 'Neutral_Stroke_on Brand_2_Rest': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Hover': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Pressed': '#ffffff',\n 'Neutral_Stroke_on Brand_2_Selected': '#ffffff',\n 'Neutral_Stroke_Accessible_Rest': '#adadad',\n 'Neutral_Stroke_Accessible_Hover': '#bdbdbd',\n 'Neutral_Stroke_Accessible_Pressed': '#b3b3b3',\n 'Neutral_Stroke_Accessible_Selected': '#7787bb',\n 'Neutral_Stroke_Focus_1_Rest': '#000000',\n 'Neutral_Stroke_Focus_2_Rest': '#ffffff',\n 'Neutral_Stroke_Transparent_Interactive_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Disabled_Rest': '#00000000',\n 'Neutral_Stroke_Transparent_Rest': '#00000000',\n 'Neutral_Stroke_Disabled_Rest': '#424242',\n 'Neutral_Stroke_Disabled_Inverted_Rest': 4,\n 'Brand_Background_1_Rest': '#182e71',\n 'Brand_Background_1_Hover': '#1e398d',\n 'Brand_Background_1_Pressed': '#09112a',\n 'Brand_Background_1_Selected': '#122255',\n 'Brand_Background_2_Rest': '#03060e',\n 'Brand_Background_2_Hover': '#09112a',\n 'Brand_Background_2_Pressed': '#000000',\n 'Brand_Background_Inverted_Rest': '#ffffff',\n 'Brand_Background_Inverted_Hover': '#ffffff',\n 'Brand_Background_Inverted_Pressed': '#e7e9f4',\n 'Brand_Background_Inverted_Selected': '#fdfdff',\n 'Brand_Background_Compound_Rest': '#7787bb',\n 'Brand_Background_Compound_Hover': '#a4afd1',\n 'Brand_Background_Compound_Pressed': '#4b60a4',\n 'Brand_Background_Static_1_Rest': '#1e398d',\n 'Brand_Background_Static_3_Rest': '#122255',\n 'Brand_Background_Static_4_Rest': '#09112a',\n 'Brand_Foreground_1_Rest': '#7787bb',\n 'Brand_Foreground_2_Rest': '#a4afd1',\n 'Brand_Foreground_2_Hover': '#d0d6e8',\n 'Brand_Foreground_2_Pressed': '#7787bb',\n 'Brand_Foreground_Link_Rest': '#7787bb',\n 'Brand_Foreground_Link_Hover': '#a4afd1',\n 'Brand_Foreground_Link_Pressed': '#4b60a4',\n 'Brand_Foreground_Link_Selected': '#7787bb',\n 'Brand_Foreground_Inverted_Rest': '#1e398d',\n 'Brand_Foreground_Inverted_Hover': '#182e71',\n 'Brand_Foreground_Inverted_Pressed': '#122255',\n 'Brand_Foreground_On Light_Rest': '#182e71',\n 'Brand_Foreground_On Light_Hover': '#182e71',\n 'Brand_Foreground_On Light_Pressed': '#0c1738',\n 'Brand_Foreground_On Light_Selected': '#122255',\n 'Brand_Foreground_Compound_Rest': '#7787bb',\n 'Brand_Foreground_Compound_Hover': '#a4afd1',\n 'Brand_Foreground_Compound_Pressed': '#4b60a4',\n 'Brand_Stroke_1_Rest': '#7787bb',\n 'Brand_Stroke_2_Rest': '#0c1738',\n 'Brand_Stroke_2_Hover': '#4b60a4',\n 'Brand_Stroke_2_Pressed': '#182e71',\n 'Brand_Stroke_2_Contrast_Rest': '#0c1738',\n 'Brand_Stroke_Compound_Rest': '#7787bb',\n 'Brand_Stroke_Compound_Hover': '#a4afd1',\n 'Brand_Stroke_Compound_Pressed': '#4b60a4',\n 'Status_Danger_Background_1_Rest': '#004044',\n 'Status_Danger_Background_2_Rest': '#005d62',\n 'Status_Danger_Background_3_Rest': '#00b3bd',\n 'Status_Danger_Foreground_1_Rest': '#b10e1c',\n 'Status_Danger_Foreground_2_Rest': '#a3e4e7',\n 'Status_Danger_Foreground_3_Rest': '#a3e4e7',\n 'Status_Danger_Foreground_3_Pressed': '#007a81',\n 'Status_Danger_Foreground_3_Hover': '#00969f',\n 'Status_Danger_Foreground_Inverted_Rest': '#00969f',\n 'Status_Danger_Stroke_1_Rest': '#00b3bd',\n 'Status_Danger_Stroke_2_Rest': '#7ad7dd',\n 'Status_Success_Background_1_Rest': '#004044',\n 'Status_Success_Background_2_Rest': '#005d62',\n 'Status_Success_Background_3_Rest': '#00b3bd',\n 'Status_Success_Foreground_1_Rest': '#7ad7dd',\n 'Status_Success_Foreground_2_Rest': '#a3e4e7',\n 'Status_Success_Foreground_3_Rest': '#a3e4e7',\n 'Status_Success_Foreground_Inverted_Rest': '#00b3bd',\n 'Status_Success_Stroke_1_Rest': '#00b3bd',\n 'Status_Success_Stroke_2_Rest': '#a3e4e7',\n 'Status_Warning_Background_1_Rest': '#004044',\n 'Status_Warning_Background_2_Rest': '#005d62',\n 'Status_Warning_Background_3_Rest': '#00b3bd',\n 'Status_Warning_Foreground_1_Rest': '#52cbd2',\n 'Status_Warning_Foreground_2_Rest': '#a3e4e7',\n 'Status_Warning_Foreground_3_Rest': '#a3e4e7',\n 'Status_Warning_Foreground_Inverted_Rest': '#007a81',\n 'Status_Warning_Stroke_1_Rest': '#00969f',\n 'Status_Warning_Stroke_2_Rest': '#52cbd2',\n 'Status_Oof_Foreground_3_Rest': '#52cbd2',\n 'Status_Away_Background_3_Rest': '#00b3bd',\n 'Status_Available_Foreground_3_Rest': '#00b3bd',\n 'Status_Severe_Background_1_Rest': '#004044',\n 'Status_Severe_Background_2_Rest': '#005d62',\n 'Status_Severe_Background_3_Rest': '#00b3bd',\n 'Status_Severe_Foreground_1_Rest': '#52cbd2',\n 'Status_Severe_Foreground_2_Rest': '#a3e4e7',\n 'Status_Severe_Foreground_3_Rest': '#a3e4e7',\n 'Status_Severe_Foreground_Inverted_Rest': '#007a81',\n 'Status_Severe_Stroke_1_Rest': '#00969f',\n 'Status_Severe_Stroke_2_Rest': '#52cbd2',\n 'Palette_Dark red_Background_2_Rest': '#007a81',\n 'Palette_Dark red_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Dark red_Stroke_Active_Rest': '#52cbd2',\n 'Palette_Cranberry_Background_2_Rest': '#005d62',\n 'Palette_Cranberry_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Cranberry_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Red_Background_1_Rest': '#004044',\n 'Palette_Red_Background_2_Rest': '#005d62',\n 'Palette_Red_Background_3_Rest': '#00b3bd',\n 'Palette_Red_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Red_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Red_Foreground_3_Rest': '#7ad7dd',\n 'Palette_Red_Foreground_Inverted_Rest': '#00b3bd',\n 'Palette_Red_Stroke_1_Rest': '#00b3bd',\n 'Palette_Red_Stroke_2_Rest': '#7ad7dd',\n 'Palette_Red_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Pumpkin_Background_2_Rest': '#005d62',\n 'Palette_Pumpkin_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Pumpkin_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Peach_Background_2_Rest': '#005d62',\n 'Palette_Peach_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Peach_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Marigold_Background_1_Rest': '#004044',\n 'Palette_Marigold_Background_2_Rest': '#005d62',\n 'Palette_Marigold_Background_3_Rest': '#00b3bd',\n 'Palette_Marigold_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Marigold_Foreground_1_Rest 2': '#52cbd2',\n 'Palette_Marigold_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Marigold_Foreground_3_Rest': '#52cbd2',\n 'Palette_Marigold_Stroke_1_Rest': '#00b3bd',\n 'Palette_Marigold_Stroke_2_Rest': '#52cbd2',\n 'Palette_Marigold_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Gold_Background_2_Rest': '#005d62',\n 'Palette_Gold_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Gold_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Brass_Background_2_Rest': '#005d62',\n 'Palette_Brass_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Brass_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Brown_Background_2_Rest': '#005d62',\n 'Palette_Brown_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Brown_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Forest_Background_2_Rest': '#005d62',\n 'Palette_Forest_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Forest_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Seafoam_Background_2_Rest': '#005d62',\n 'Palette_Seafoam_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Seafoam_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Dark green_Background_2_Rest': '#005d62',\n 'Palette_Dark green_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Dark green_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Light teal_Background_2_Rest': '#005d62',\n 'Palette_Light teal_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Light teal_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Teal_Background_2_Rest': '#005d62',\n 'Palette_Teal_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Teal_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Steel_Background_2_Rest': '#005d62',\n 'Palette_Steel_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Steel_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Blue_Background_2_Rest': '#005d62',\n 'Palette_Blue_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Blue_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Royal blue_Background_2_Rest': '#005d62',\n 'Palette_Royal blue_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Royal blue_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Cornflower_Background_2_Rest': '#005d62',\n 'Palette_Cornflower_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Cornflower_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Navy_Background_2_Rest': '#005d62',\n 'Palette_Navy_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Navy_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Lavender_Background_2_Rest': '#005d62',\n 'Palette_Lavender_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Lavender_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Purple_Background_2_Rest': '#005d62',\n 'Palette_Purple_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Purple_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Grape_Background_2_Rest': '#005d62',\n 'Palette_Grape_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Grape_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Lilac_Background_2_Rest': '#005d62',\n 'Palette_Lilac_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Lilac_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Pink_Background_2_Rest': '#005d62',\n 'Palette_Pink_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Pink_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Magenta_Background_2_Rest': '#005d62',\n 'Palette_Magenta_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Magenta_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Plum_Background_2_Rest': '#007a81',\n 'Palette_Plum_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Plum_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Beige_Background_2_Rest': '#005d62',\n 'Palette_Beige_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Beige_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Mink_Background_2_Rest': '#005d62',\n 'Palette_Mink_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Mink_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Platinum_Background_2_Rest': '#005d62',\n 'Palette_Platinum_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Platinum_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Anchor_Background_2_Rest': '#005d62',\n 'Palette_Anchor_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Anchor_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Green_Background_1_Rest': '#004044',\n 'Palette_Green_Background_2_Rest': '#005d62',\n 'Palette_Green_Background_3_Rest': '#00b3bd',\n 'Palette_Green_Stroke_1_Rest': '#00b3bd',\n 'Palette_Green_Stroke_2_Rest': '#7ad7dd',\n 'Palette_Green_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Green_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Green_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Green_Foreground_3_Rest': '#7ad7dd',\n 'Palette_Green_Foreground_Inverted_Rest': '#00b3bd',\n 'Palette_Dark orange_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Dark orange_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Dark orange_Foreground_3_Rest': '#7ad7dd',\n 'Palette_Dark orange_Background_1_Rest': '#004044',\n 'Palette_Dark orange_Background_2_Rest': '#005d62',\n 'Palette_Dark orange_Background_3_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_1_Rest': '#00b3bd',\n 'Palette_Dark orange_Stroke_2_Rest': '#7ad7dd',\n 'Palette_Dark orange_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Yellow_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Yellow_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Yellow_Foreground_3_Rest': '#52cbd2',\n 'Palette_Yellow_Foreground_Inverted_Rest': '#005d62',\n 'Palette_Yellow_Stroke_1_Rest': '#00b3bd',\n 'Palette_Yellow_Stroke_2_Rest': '#52cbd2',\n 'Palette_Yellow_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Yellow_Background_1_Rest': '#004044',\n 'Palette_Yellow_Background_2_Rest': '#005d62',\n 'Palette_Yellow_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Berry_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Berry_Foreground_3_Rest': '#52cbd2',\n 'Palette_Berry_Background_1_Rest': '#004044',\n 'Palette_Berry_Background_2_Rest': '#005d62',\n 'Palette_Berry_Background_3_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_1_Rest': '#00b3bd',\n 'Palette_Berry_Stroke_2_Rest': '#52cbd2',\n 'Palette_Berry_Stroke_Active_Rest': '#7ad7dd',\n 'Palette_Light Green_Foreground_1_Rest': '#7ad7dd',\n 'Palette_Light Green_Foreground_2_Rest': '#a3e4e7',\n 'Palette_Light Green_Foreground_3_Rest': '#52cbd2',\n 'Palette_Light Green_Background_1_Rest': '#004044',\n 'Palette_Light Green_Background_2_Rest': '#005d62',\n 'Palette_Light Green_Background_3_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_1_Rest': '#00b3bd',\n 'Palette_Light Green_Stroke_2_Rest': '#52cbd2',\n 'Palette_Light Green_Stroke_Active_Rest': '#7ad7dd',\n 'Shadow_Ambient': '#0000003d',\n 'Shadow_Ambient lighter': '#0000001f',\n 'Shadow_Ambient darker': '#00000066',\n 'Shadow_Brand ambient': '#00000040',\n 'Shadow_Key': '#00000047',\n 'Shadow_Key lighter': '#00000024',\n 'Shadow_Key darker': '#0000007a',\n 'Shadow_Brand key': '#0000004d',\n 'Material_Acrylic_Stroke_Stop 2': '#2c3136',\n 'Material_Acrylic_Stroke_Stop 3': 2,\n 'Material_Acrylic_Stroke_Stop 1': 2,\n 'Material_Acrylic_Background_Secondary': '#46406e99',\n 'Material_Acrylic_Background_Primary': '#2e2e2ecc',\n 'Material_Acrylic_Background_Blur': 60,\n};\n\n// Default export\nexport default {\n brandColors,\n spacing,\n borderRadius,\n fontSize,\n fontWeight,\n lineHeight,\n strokeWidth,\n sharedColors,\n foundationColors,\n lightModeColors,\n darkModeColors,\n schemeColors,\n};\n","import { BrandVariants } from '@fluentui/react-components';\n\n// import { brandColors } from './generated/tokens';\nimport { brandColors as brandColorsV1 } from './generated/tokens';\nimport { brandColors as brandColorsV2 } from './generated/tokensV2';\n\n\nconst isV2Path = typeof window !== 'undefined' && window.location.pathname.startsWith('/v2');\nconst brandColors = !isV2Path ? brandColorsV2 : brandColorsV1;\n/**\n * Brand Colors from generated tokens (auto-resolved from Figma)\n * All token references have been resolved at build time\n */\nexport const customBrand: BrandVariants = {\n 10: brandColors['10'],\n 20: brandColors['20'],\n 30: brandColors['30'],\n 40: brandColors['40'],\n 50: brandColors['50'],\n 60: brandColors['60'],\n 70: brandColors['70'],\n 80: brandColors['80'],\n 90: brandColors['90'],\n 100: brandColors['100'],\n 110: brandColors['110'],\n 120: brandColors['120'],\n 130: brandColors['130'],\n 140: brandColors['140'],\n 150: brandColors['150'],\n 160: brandColors['160'],\n};\n","/**\n * Design Tokens from generated Figma tokens\n * All token references have been resolved at build time\n */\n\nimport {\n borderRadius as borderRadiusV1,\n darkModeColors as darkColorsV1,\n lightModeColors as lightColorsV1,\n spacing as spacingV1,\n strokeWidth as strokeWidthV1,\n} from './generated/tokens';\nimport {\n borderRadius as borderRadiusV2,\n darkModeColors as darkColorsV2,\n lightModeColors as lightColorsV2,\n spacing as spacingV2,\n strokeWidth as strokeWidthV2,\n} from './generated/tokensV2';\n\n// Check if current path starts with /v2\nconst isV2Path = typeof window !== 'undefined' && window.location.pathname.startsWith('/v2');\n// Select tokens based on path\nconst generatedBorderRadius = !isV2Path ? borderRadiusV2 : borderRadiusV1;\nconst generatedDarkColors = !isV2Path ? darkColorsV2 : darkColorsV1;\nconst generatedLightColors = !isV2Path ? lightColorsV2 : lightColorsV1;\nconst generatedSpacing = !isV2Path ? spacingV2 : spacingV1;\nconst generatedStrokeWidth = !isV2Path ? strokeWidthV2 : strokeWidthV1;\n\n\n/**\n * Core design system tokens\n */\nexport const designTokens = {\n // Spacing from Figma\n spacing: {\n none: '0px',\n xxs: `${generatedSpacing['20']}px`,\n xs: `${generatedSpacing['40']}px`,\n sNudge: `${generatedSpacing['60']}px`,\n s: `${generatedSpacing['80']}px`,\n mNudge: `${generatedSpacing['100']}px`,\n m: `${generatedSpacing['120']}px`,\n l: `${generatedSpacing['160']}px`,\n xl: `${generatedSpacing['200']}px`,\n xxl: `${generatedSpacing['240']}px`,\n xxxl: `${generatedSpacing['320']}px`,\n },\n\n // Border radius from Figma\n borderRadius: {\n none: 0,\n small: generatedBorderRadius['20'],\n medium: generatedBorderRadius['40'],\n large: generatedBorderRadius['80'],\n xLarge: generatedBorderRadius['120'],\n circular: '50%',\n },\n\n // Typography - Font sizes\n fontSize: {\n 100: 10,\n 200: 12,\n 300: 14,\n 400: 16,\n 500: 20,\n 550: 22,\n 600: 24,\n 700: 28,\n 800: 32,\n 900: 40,\n 1000: 68,\n },\n\n // Typography - Font weights\n fontWeight: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n\n // Typography - Line heights\n lineHeight: {\n 100: 14,\n 200: 16,\n 300: 20,\n 400: 22,\n 500: 28,\n 600: 32,\n },\n\n // Font families\n fontFamily: {\n body: ['Manrope', 'Segoe UI', 'system-ui', 'sans-serif'],\n heading: ['Manrope', 'Segoe UI', 'system-ui', 'sans-serif'],\n mono: ['Consolas', 'Monaco', 'monospace'],\n },\n\n // Stroke widths\n strokeWidth: {\n thin: generatedStrokeWidth['10'],\n thick: generatedStrokeWidth['15'],\n thicker: generatedStrokeWidth['20'],\n thickest: generatedStrokeWidth['30'],\n },\n\n // Shadows\n shadows: {\n sm: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',\n md: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',\n lg: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',\n xl: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',\n },\n\n // Breakpoints for responsive design\n breakpoints: {\n xs: '320px',\n sm: '480px',\n md: '768px',\n lg: '1024px',\n xl: '1200px',\n xxl: '1440px',\n xxxl: '1600px',\n },\n\n color: {\n customGreen: '#426900',\n },\n};\n\n/**\n * Light Mode Semantic Colors from generated tokens\n */\nexport const lightModeColors = {\n // Neutral backgrounds\n background: {\n 1: generatedLightColors.Neutral_Background_1_Rest,\n 2: generatedLightColors.Neutral_Background_2_Rest,\n 3: generatedLightColors.Neutral_Background_3_Rest,\n 4: generatedLightColors.Neutral_Background_4_Rest,\n 5: generatedLightColors.Neutral_Background_5_Rest,\n 6: generatedLightColors.Neutral_Background_6_Rest,\n inverted: generatedLightColors.Neutral_Background_Inverted_Rest,\n disabled: generatedLightColors.Neutral_Background_Disabled_Rest,\n },\n\n // Neutral foregrounds (text)\n foreground: {\n 1: generatedLightColors.Neutral_Foreground_1_Rest,\n 2: generatedLightColors.Neutral_Foreground_2_Rest,\n 3: generatedLightColors.Neutral_Foreground_3_Rest,\n 4: generatedLightColors.Neutral_Foreground_4_Rest,\n disabled: generatedLightColors.Neutral_Foreground_Disabled_Rest,\n },\n\n // Brand colors\n brand: {\n background: generatedLightColors.Brand_Background_1_Rest,\n backgroundHover: generatedLightColors.Brand_Background_1_Hover,\n backgroundPressed: generatedLightColors.Brand_Background_1_Pressed,\n foreground: generatedLightColors.Brand_Foreground_1_Rest,\n stroke: generatedLightColors.Brand_Stroke_1_Rest,\n },\n\n // Status colors\n status: {\n success: generatedLightColors.Status_Success_Foreground_1_Rest,\n warning: generatedLightColors.Status_Warning_Foreground_1_Rest,\n danger: generatedLightColors.Status_Danger_Foreground_1_Rest,\n error: generatedLightColors.Status_Danger_Foreground_1_Rest,\n info: '#0078d4',\n },\n\n // Borders\n border: {\n 1: generatedLightColors.Neutral_Stroke_1_Rest,\n 2: generatedLightColors.Neutral_Stroke_2_Rest,\n disabled: generatedLightColors.Neutral_Stroke_Disabled_Rest,\n },\n};\n\n/**\n * Dark Mode Semantic Colors from generated tokens\n */\nexport const darkModeColors = {\n // Neutral backgrounds\n background: {\n 1: generatedDarkColors.Neutral_Background_1_Rest,\n 2: generatedDarkColors.Neutral_Background_2_Rest,\n 3: generatedDarkColors.Neutral_Background_3_Rest,\n 4: generatedDarkColors.Neutral_Background_4_Rest,\n 5: generatedDarkColors.Neutral_Background_5_Rest,\n 6: generatedDarkColors.Neutral_Background_6_Rest,\n inverted: generatedDarkColors.Neutral_Background_Inverted_Rest,\n disabled: generatedDarkColors.Neutral_Background_Disabled_Rest,\n },\n\n // Neutral foregrounds (text)\n foreground: {\n 1: generatedDarkColors.Neutral_Foreground_1_Rest,\n 2: generatedDarkColors.Neutral_Foreground_2_Rest,\n 3: generatedDarkColors.Neutral_Foreground_3_Rest,\n 4: generatedDarkColors.Neutral_Foreground_4_Rest,\n disabled: generatedDarkColors.Neutral_Foreground_Disabled_Rest,\n },\n\n // Brand colors\n brand: {\n background: generatedDarkColors.Brand_Background_1_Rest,\n backgroundHover: generatedDarkColors.Brand_Background_1_Hover,\n backgroundPressed: generatedDarkColors.Brand_Background_1_Pressed,\n foreground: generatedDarkColors.Brand_Foreground_1_Rest,\n stroke: generatedDarkColors.Brand_Stroke_1_Rest,\n },\n\n // Status colors\n status: {\n success: generatedDarkColors.Status_Success_Foreground_1_Rest,\n warning: generatedDarkColors.Status_Warning_Foreground_1_Rest,\n danger: generatedDarkColors.Status_Danger_Foreground_1_Rest,\n error: generatedDarkColors.Status_Danger_Foreground_1_Rest,\n info: '#4cc2ff',\n },\n\n // Borders\n border: {\n 1: generatedDarkColors.Neutral_Stroke_1_Rest,\n 2: generatedDarkColors.Neutral_Stroke_2_Rest,\n disabled: generatedDarkColors.Neutral_Stroke_Disabled_Rest,\n },\n};\n","import { Theme, createDarkTheme, createLightTheme } from '@fluentui/react-components';\n\nimport { customBrand } from './brandColors';\nimport { darkModeColors, designTokens, lightModeColors } from './designTokens';\n\nexport const extendedTokens = {\n breakpointXs: designTokens.breakpoints.xs,\n breakpointSm: designTokens.breakpoints.sm,\n breakpointMd: designTokens.breakpoints.md,\n breakpointLg: designTokens.breakpoints.lg,\n breakpointXl: designTokens.breakpoints.xl,\n breakpointXxl: designTokens.breakpoints.xxl,\n breakpointXxxl: designTokens.breakpoints.xxxl,\n};\n\n/**\n * Custom Light Theme using Figma Fluent UI Tokens\n */\nexport const customLightTheme: Theme = {\n ...createLightTheme(customBrand),\n\n // Brand colors from Figma\n colorBrandBackground: customBrand[80],\n colorBrandBackgroundHover: customBrand[70],\n colorBrandBackgroundPressed: customBrand[60],\n colorBrandBackgroundSelected: customBrand[80],\n colorBrandForeground1: customBrand[80],\n colorBrandForeground2: customBrand[70],\n colorBrandForegroundLink: customBrand[70],\n colorBrandForegroundLinkHover: customBrand[60],\n colorBrandForegroundLinkPressed: customBrand[50],\n colorBrandForegroundLinkSelected: customBrand[70],\n\n // Neutral backgrounds from Figma\n colorNeutralBackground1: lightModeColors.background[1],\n colorNeutralBackground2: lightModeColors.background[2],\n colorNeutralBackground3: lightModeColors.background[3],\n colorNeutralBackground4: lightModeColors.background[4],\n colorNeutralBackground5: lightModeColors.background[5],\n colorNeutralBackground6: lightModeColors.background[6],\n colorNeutralBackgroundInverted: lightModeColors.background.inverted,\n colorNeutralBackgroundDisabled: lightModeColors.background.disabled,\n\n // Neutral foregrounds (text) from Figma\n colorNeutralForeground1: lightModeColors.foreground[1],\n colorNeutralForeground2: lightModeColors.foreground[2],\n colorNeutralForeground3: lightModeColors.foreground[3],\n colorNeutralForeground4: lightModeColors.foreground[4],\n colorNeutralForegroundDisabled: lightModeColors.foreground.disabled,\n\n // Strokes (borders) from Figma\n colorNeutralStroke1: lightModeColors.border[1],\n colorNeutralStroke2: lightModeColors.border[2],\n colorNeutralStrokeDisabled: lightModeColors.border.disabled,\n\n // Status colors from Figma\n colorPaletteGreenForeground1: lightModeColors.status.success,\n colorPaletteYellowForeground1: lightModeColors.status.warning,\n colorPaletteRedForeground1: lightModeColors.status.danger,\n\n // Spacing from Figma Global tokens\n spacingHorizontalNone: designTokens.spacing.none,\n spacingHorizontalXXS: designTokens.spacing.xxs,\n spacingHorizontalXS: designTokens.spacing.xs,\n spacingHorizontalSNudge: designTokens.spacing.sNudge,\n spacingHorizontalS: designTokens.spacing.s,\n spacingHorizontalMNudge: designTokens.spacing.mNudge,\n spacingHorizontalM: designTokens.spacing.m,\n spacingHorizontalL: designTokens.spacing.l,\n spacingHorizontalXL: designTokens.spacing.xl,\n spacingHorizontalXXL: designTokens.spacing.xxl,\n spacingHorizontalXXXL: designTokens.spacing.xxxl,\n\n spacingVerticalNone: designTokens.spacing.none,\n spacingVerticalXXS: designTokens.spacing.xxs,\n spacingVerticalXS: designTokens.spacing.xs,\n spacingVerticalSNudge: designTokens.spacing.sNudge,\n spacingVerticalS: designTokens.spacing.s,\n spacingVerticalMNudge: designTokens.spacing.mNudge,\n spacingVerticalM: designTokens.spacing.m,\n spacingVerticalL: designTokens.spacing.l,\n spacingVerticalXL: designTokens.spacing.xl,\n spacingVerticalXXL: designTokens.spacing.xxl,\n spacingVerticalXXXL: designTokens.spacing.xxxl,\n\n // Border radius from Figma\n borderRadiusNone: `${designTokens.borderRadius.none}px`,\n borderRadiusSmall: `${designTokens.borderRadius.small}px`,\n borderRadiusMedium: `${designTokens.borderRadius.medium}px`,\n borderRadiusLarge: `${designTokens.borderRadius.large}px`,\n borderRadiusXLarge: `${designTokens.borderRadius.xLarge}px`,\n // borderRadiusCircular: designTokens.borderRadius.circular,\n\n // Shadows from design tokens\n shadow2: designTokens.shadows.sm,\n shadow4: designTokens.shadows.md,\n shadow8: designTokens.shadows.lg,\n shadow16: designTokens.shadows.xl,\n\n // Typography - Font families from Figma\n fontFamilyBase: designTokens.fontFamily.body.join(', '),\n fontFamilyMonospace: designTokens.fontFamily.mono.join(', '),\n fontFamilyNumeric: designTokens.fontFamily.body.join(', '),\n\n // Font sizes from Figma Global tokens\n fontSizeBase100: `${designTokens.fontSize[100]}px`,\n fontSizeBase200: `${designTokens.fontSize[200]}px`,\n fontSizeBase300: `${designTokens.fontSize[300]}px`,\n fontSizeBase400: `${designTokens.fontSize[400]}px`,\n fontSizeBase500: `${designTokens.fontSize[500]}px`,\n fontSizeBase600: `${designTokens.fontSize[600]}px`,\n fontSizeHero700: `${designTokens.fontSize[700]}px`,\n fontSizeHero800: `${designTokens.fontSize[800]}px`,\n fontSizeHero900: `${designTokens.fontSize[900]}px`,\n fontSizeHero1000: `${designTokens.fontSize[1000]}px`,\n\n // Font weights from Figma\n fontWeightRegular: designTokens.fontWeight.regular,\n fontWeightMedium: designTokens.fontWeight.medium,\n fontWeightSemibold: designTokens.fontWeight.semibold,\n fontWeightBold: designTokens.fontWeight.bold,\n\n // Line heights from Figma\n lineHeightBase100: `${designTokens.lineHeight[100]}px`,\n lineHeightBase200: `${designTokens.lineHeight[200]}px`,\n lineHeightBase300: `${designTokens.lineHeight[300]}px`,\n lineHeightBase400: `${designTokens.lineHeight[400]}px`,\n lineHeightBase500: `${designTokens.lineHeight[500]}px`,\n lineHeightBase600: `${designTokens.lineHeight[600]}px`,\n // lineHeightHero700: `${designTokens.lineHeight[100]}px`,\n // lineHeightHero800: `${designTokens.lineHeight[100]}px`,\n // lineHeightHero900: `${designTokens.lineHeight[100]}px`,\n // lineHeightHero1000: `${designTokens.lineHeight[100]}px`,\n\n // Stroke widths from Figma\n strokeWidthThin: `${designTokens.strokeWidth.thin}px`,\n strokeWidthThick: `${designTokens.strokeWidth.thick}px`,\n strokeWidthThicker: `${designTokens.strokeWidth.thicker}px`,\n strokeWidthThickest: `${designTokens.strokeWidth.thickest}px`,\n};\n\n/**\n * Custom Dark Theme using Figma Fluent UI Tokens\n */\nexport const customDarkTheme: Theme = {\n ...createDarkTheme(customBrand),\n\n // Brand colors from Figma (inverted for dark mode)\n colorBrandBackground: customBrand[100],\n colorBrandBackgroundHover: customBrand[110],\n colorBrandBackgroundPressed: customBrand[120],\n colorBrandBackgroundSelected: customBrand[100],\n colorBrandForeground1: customBrand[100],\n colorBrandForeground2: customBrand[110],\n colorBrandForegroundLink: customBrand[110],\n colorBrandForegroundLinkHover: customBrand[120],\n colorBrandForegroundLinkPressed: customBrand[130],\n colorBrandForegroundLinkSelected: customBrand[110],\n\n // Neutral backgrounds from Figma\n colorNeutralBackground1: darkModeColors.background[1],\n colorNeutralBackground2: darkModeColors.background[2],\n colorNeutralBackground3: darkModeColors.background[3],\n colorNeutralBackground4: darkModeColors.background[4],\n colorNeutralBackground5: darkModeColors.background[5],\n colorNeutralBackground6: darkModeColors.background[6],\n colorNeutralBackgroundInverted: darkModeColors.background.inverted,\n colorNeutralBackgroundDisabled: darkModeColors.background.disabled,\n\n // Neutral foregrounds (text) from Figma\n colorNeutralForeground1: darkModeColors.foreground[1],\n colorNeutralForeground2: darkModeColors.foreground[2],\n colorNeutralForeground3: darkModeColors.foreground[3],\n colorNeutralForeground4: darkModeColors.foreground[4],\n colorNeutralForegroundDisabled: darkModeColors.foreground.disabled,\n\n // Strokes (borders) from Figma\n colorNeutralStroke1: darkModeColors.border[1],\n colorNeutralStroke2: darkModeColors.border[2],\n colorNeutralStrokeDisabled: darkModeColors.border.disabled,\n\n // Status colors from Figma\n colorPaletteGreenForeground1: darkModeColors.status.success,\n colorPaletteYellowForeground1: darkModeColors.status.warning,\n colorPaletteRedForeground1: darkModeColors.status.danger,\n\n // Same spacing, border radius, typography as light theme\n spacingHorizontalNone: designTokens.spacing.none,\n spacingHorizontalXXS: designTokens.spacing.xxs,\n spacingHorizontalXS: designTokens.spacing.xs,\n spacingHorizontalSNudge: designTokens.spacing.sNudge,\n spacingHorizontalS: designTokens.spacing.s,\n spacingHorizontalMNudge: designTokens.spacing.mNudge,\n spacingHorizontalM: designTokens.spacing.m,\n spacingHorizontalL: designTokens.spacing.l,\n spacingHorizontalXL: designTokens.spacing.xl,\n spacingHorizontalXXL: designTokens.spacing.xxl,\n spacingHorizontalXXXL: designTokens.spacing.xxxl,\n\n spacingVerticalNone: designTokens.spacing.none,\n spacingVerticalXXS: designTokens.spacing.xxs,\n spacingVerticalXS: designTokens.spacing.xs,\n spacingVerticalSNudge: designTokens.spacing.sNudge,\n spacingVerticalS: designTokens.spacing.s,\n spacingVerticalMNudge: designTokens.spacing.mNudge,\n spacingVerticalM: designTokens.spacing.m,\n spacingVerticalL: designTokens.spacing.l,\n spacingVerticalXL: designTokens.spacing.xl,\n spacingVerticalXXL: designTokens.spacing.xxl,\n spacingVerticalXXXL: designTokens.spacing.xxxl,\n\n borderRadiusNone: `${designTokens.borderRadius.none}px`,\n borderRadiusSmall: `${designTokens.borderRadius.small}px`,\n borderRadiusMedium: `${designTokens.borderRadius.medium}px`,\n borderRadiusLarge: `${designTokens.borderRadius.large}px`,\n borderRadiusXLarge: `${designTokens.borderRadius.xLarge}px`,\n // borderRadiusCircular: designTokens.borderRadius.circular,\n\n shadow2: designTokens.shadows.sm,\n shadow4: designTokens.shadows.md,\n shadow8: designTokens.shadows.lg,\n shadow16: designTokens.shadows.xl,\n\n fontFamilyBase: designTokens.fontFamily.body.join(', '),\n fontFamilyMonospace: designTokens.fontFamily.mono.join(', '),\n fontFamilyNumeric: designTokens.fontFamily.body.join(', '),\n\n fontSizeBase100: `${designTokens.fontSize[100]}px`,\n fontSizeBase200: `${designTokens.fontSize[200]}px`,\n fontSizeBase300: `${designTokens.fontSize[300]}px`,\n fontSizeBase400: `${designTokens.fontSize[400]}px`,\n fontSizeBase500: `${designTokens.fontSize[500]}px`,\n fontSizeBase600: `${designTokens.fontSize[600]}px`,\n fontSizeHero700: `${designTokens.fontSize[700]}px`,\n fontSizeHero800: `${designTokens.fontSize[800]}px`,\n fontSizeHero900: `${designTokens.fontSize[900]}px`,\n fontSizeHero1000: `${designTokens.fontSize[1000]}px`,\n\n fontWeightRegular: designTokens.fontWeight.regular,\n fontWeightMedium: designTokens.fontWeight.medium,\n fontWeightSemibold: designTokens.fontWeight.semibold,\n fontWeightBold: designTokens.fontWeight.bold,\n\n lineHeightBase100: `${designTokens.lineHeight[100]}px`,\n lineHeightBase200: `${designTokens.lineHeight[200]}px`,\n lineHeightBase300: `${designTokens.lineHeight[300]}px`,\n lineHeightBase400: `${designTokens.lineHeight[400]}px`,\n lineHeightBase500: `${designTokens.lineHeight[500]}px`,\n lineHeightBase600: `${designTokens.lineHeight[600]}px`,\n // lineHeightHero700: `${designTokens.lineHeight[100]}px`,\n // lineHeightHero800: `${designTokens.lineHeight[100]}px`,\n // lineHeightHero900: `${designTokens.lineHeight[100]}px`,\n // lineHeightHero1000: `${designTokens.lineHeight[100]}px`,\n\n strokeWidthThin: `${designTokens.strokeWidth.thin}px`,\n strokeWidthThick: `${designTokens.strokeWidth.thick}px`,\n strokeWidthThicker: `${designTokens.strokeWidth.thicker}px`,\n strokeWidthThickest: `${designTokens.strokeWidth.thickest}px`,\n};\n\n// Extended theme interface for custom properties\nexport interface ExtendedTheme extends Theme {\n // Custom color palette\n customColors: {\n light: typeof lightModeColors;\n dark: typeof darkModeColors;\n };\n\n // Design tokens\n designTokens: typeof designTokens;\n\n // Spacing helpers\n spacing: typeof designTokens.spacing;\n\n // Border radius helpers\n borderRadius: typeof designTokens.borderRadius;\n}\n\n// Create extended themes with additional properties\nexport const extendedLightTheme: ExtendedTheme = {\n ...customLightTheme,\n customColors: {\n light: lightModeColors,\n dark: darkModeColors,\n },\n designTokens,\n spacing: designTokens.spacing,\n borderRadius: designTokens.borderRadius,\n};\n\nexport const extendedDarkTheme: ExtendedTheme = {\n ...customDarkTheme,\n customColors: {\n light: lightModeColors,\n dark: darkModeColors,\n },\n designTokens,\n spacing: designTokens.spacing,\n borderRadius: designTokens.borderRadius,\n};\n\n// Theme variants for easy access\nexport const themeVariants = {\n light: customLightTheme,\n dark: customDarkTheme,\n extendedLight: extendedLightTheme,\n extendedDark: extendedDarkTheme,\n} as const;\n\n// Export current theme getter function\nexport const getCurrentTheme = (isDark: boolean, extended: boolean = false) => {\n if (extended) {\n return isDark ? extendedDarkTheme : extendedLightTheme;\n }\n return isDark ? customDarkTheme : customLightTheme;\n};\n","import {\n Badge,\n Button,\n Caption1,\n Caption1Strong,\n Caption2,\n Card,\n Divider,\n makeStyles,\n Subtitle2,\n Title2,\n Title3,\n tokens,\n Tooltip,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport React from 'react';\nimport { Col, Row, Visible } from 'react-grid-system';\n\nimport { CardTicketProps } from './CardTicket.types';\nimport { useWindowSize } from '../../hooks/useWindowSize';\nimport { extendedTokens } from '../../constants';\nimport { brandColors, sharedColors } from '../../constants/generated/tokensV2';\n\nconst useStyle = makeStyles({\n dividerContainer: {\n position: 'relative',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyItems: 'center',\n width: '100%',\n },\n ticketLeftCard: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n gap: '3em',\n width: '100%',\n height: '100%',\n boxShadow: 'none',\n position: 'relative',\n overflow: 'visible',\n [`@media (min-width: ${extendedTokens.breakpointXl})`]: {\n borderRight: '0.7em dashed ' + tokens.colorNeutralBackground1Hover,\n borderEndEndRadius: 0,\n borderEndStartRadius: 0,\n borderTopLeftRadius: tokens.borderRadiusXLarge,\n borderBottomLeftRadius: tokens.borderRadiusXLarge,\n },\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n borderBottom: '0.5em dashed ' + tokens.colorNeutralBackground1Hover,\n borderTopLeftRadius: tokens.borderRadiusXLarge,\n borderTopRightRadius: tokens.borderRadiusXLarge,\n borderEndEndRadius: 0,\n borderEndStartRadius: 0,\n gap: '1rem',\n },\n },\n circularLeft: {\n position: 'absolute',\n width: '100px',\n height: '50px',\n borderRadius: '50%',\n backgroundColor: tokens.colorNeutralBackground1Hover,\n left: '-50px',\n boxShadow: 'inset -3px 0px 1px rgba(0, 0, 0, 0.1)',\n },\n ticketMiddleCard: {\n width: '100%',\n height: '100%',\n boxShadow: 'none',\n borderRadius: 0,\n padding: '2rem',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n borderBottom: 'none',\n [`@media (max-width: ${extendedTokens.breakpointLg})`]: {\n padding: '2rem',\n },\n [`@media (max-width: ${extendedTokens.breakpointMd})`]: {\n padding: '1rem',\n },\n },\n ticketInfo: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n gap: '0.5em',\n },\n ticketTime: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'start',\n gap: '0.5em',\n },\n ticketDuration: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '0.5rem',\n },\n ticketButtons: {\n display: 'flex',\n gap: '1rem',\n marginTop: '1rem',\n },\n ticketRightCard: {\n width: '100%',\n height: '100%',\n boxShadow: 'none',\n borderRadius: 0,\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n borderTopRightRadius: tokens.borderRadiusXLarge,\n borderBottomRightRadius: tokens.borderRadiusXLarge,\n position: 'relative',\n overflow: 'visible',\n background: 'linear-gradient(75deg, #58C91B 0%, #1949E0 103.3%)',\n padding: '5em',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n color: tokens.colorNeutralForegroundInverted,\n borderBottom: 'none',\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n padding: '2rem',\n borderTopRightRadius: 0,\n borderBottomLeftRadius: tokens.borderRadiusXLarge,\n },\n [`@media (max-width: ${extendedTokens.breakpointLg})`]: {\n padding: '1rem',\n borderTopRightRadius: 0,\n borderBottomLeftRadius: tokens.borderRadiusXLarge,\n },\n },\n priceCard: {\n border: ' 1px solid #FFF',\n background: 'rgba(255, 255, 255, 0.30)',\n backdropFilter: 'blur(17.5px)',\n borderRadius: tokens.borderRadiusLarge,\n padding: '1.2rem',\n gap: '1rem',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n flexWrap: 'wrap',\n [`@media (max-width: ${extendedTokens.breakpointMd})`]: {\n padding: '1rem',\n },\n },\n facilitiesSection: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5rem',\n },\n facilitiesList: {\n display: 'flex',\n flexWrap: 'wrap',\n gap: '0.75rem',\n },\n facilityItem: {\n display: 'flex',\n alignItems: 'center',\n gap: '0.5rem',\n fontSize: '14px',\n },\n circularRight: {\n position: 'absolute',\n width: '100px',\n height: '50px',\n borderRadius: '50%',\n backgroundColor: tokens.colorNeutralBackground1Hover,\n right: '-50px',\n boxShadow: 'inset 3px 0px 1px rgba(0, 0, 0, 0.1)',\n },\n ticketWrapper: {\n borderRadius: tokens.borderRadiusXLarge,\n overflow: 'visible',\n boxShadow: tokens.shadow4,\n display: 'flex',\n boxSizing: 'content-box',\n width: '100%',\n marginBottom: '2rem',\n minHeight: '323px',\n justifyContent: 'center',\n padding: 0,\n transformOrigin: 'center',\n marginLeft: `0px !important`,\n marginRight: `0px !important`,\n },\n circularLeftMd: {\n position: 'absolute',\n width: '50px',\n height: '30px',\n borderRadius: '50%',\n backgroundColor: tokens.colorNeutralBackground1Hover,\n left: '-25px',\n bottom: '-18px',\n zIndex: 2,\n boxShadow: 'inset -3px 0px 1px rgba(0, 0, 0, 0.1)',\n },\n circularRightMd: {\n position: 'absolute',\n width: '50px',\n height: '30px',\n borderRadius: '50%',\n backgroundColor: tokens.colorNeutralBackground1Hover,\n right: '-25px',\n bottom: '-18px',\n zIndex: 2,\n boxShadow: 'inset 3px 0px 1px rgba(0, 0, 0, 0.1)',\n },\n asdpLogo: {\n width: 'clamp(50px, 20vw, 150px)',\n },\n});\n\nexport const CardTicket: React.FC<CardTicketProps> = ({\n id,\n shipName,\n shipType,\n shipTypeColor = 'success',\n tooltipCaption = '',\n availableSeats,\n departureDay,\n departureTime,\n departureLocation,\n arrivalDay,\n arrivalTime,\n arrivalLocation,\n duration,\n facilities,\n totalPrice,\n buttonText = 'Pilih Tiket',\n onPriceDetailClick,\n onPolicyClick,\n onSelectTicket,\n}) => {\n const styles = useStyle();\n const {width} = useWindowSize()\n // Responsive circular configuration\n const getCircularVerticalConfig = () => {\n if (width <= 1600) return { count: 6, spacing: 60, top: 10 };\n return { count: 5, spacing: 60, top: 18 };\n };\n\n const circularVerticalConfig = getCircularVerticalConfig();\n\n return (\n <Row className={styles.ticketWrapper}>\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={3}\n xxl={3}\n xxxl={3}\n style={{ padding: 0, margin: 0 }}\n >\n <Card className={styles.ticketLeftCard}>\n <Row style={{ height: '100%' }}>\n <Col\n xs={5}\n sm={5}\n md={5}\n lg={5}\n xl={12}\n xxl={12}\n xxxl={12}\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <Tooltip\n content={tooltipCaption}\n relationship=\"label\"\n appearance=\"inverted\"\n >\n <Badge\n size=\"large\"\n appearance=\"filled\"\n color={shipTypeColor as any}\n iconPosition=\"before\"\n shape=\"rounded\"\n icon={<Icon icon=\"fluent:info-24-regular\" />}\n >\n {shipType}\n </Badge>\n </Tooltip>\n </Col>\n <Col\n xs={2}\n sm={2}\n md={2}\n lg={2}\n xl={12}\n xxl={12}\n xxxl={12}\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <img\n src=\"/assets/logo/asdp-default.svg\"\n className={styles.asdpLogo}\n alt=\"asdp\"\n height={56}\n width={82}\n />\n </Col>\n <Visible md sm xs lg>\n <Col\n xs={5}\n sm={5}\n md={5}\n lg={5}\n xl={12}\n xxl={12}\n xxxl={12}\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <Badge\n size=\"large\"\n style={{\n color:\n availableSeats > 50\n ? sharedColors.Shared_Green_Primary\n : sharedColors.Shared_Red_Primary,\n }}\n appearance=\"tint\"\n color={availableSeats > 50 ? 'success' : 'danger'}\n iconPosition=\"after\"\n shape=\"rounded\"\n icon={<Icon icon=\"fluent:ticket-diagonal-24-regular\" />}\n >\n Tersedia {availableSeats}\n </Badge>\n </Col>\n </Visible>\n <Col\n style={{ textAlign: 'center' }}\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={12}\n xxl={12}\n xxxl={12}\n >\n <Subtitle2>{shipName}</Subtitle2>\n </Col>\n </Row>\n\n <Visible md sm xs lg>\n <div className={styles.circularLeftMd} />\n <div className={styles.circularRightMd} />\n </Visible>\n <Visible xl xxl xxxl>\n {Array.from({ length: circularVerticalConfig.count }).map((_, index) => (\n <div\n key={index}\n className={styles.circularLeft}\n style={{\n top: `${circularVerticalConfig.top + index * circularVerticalConfig.spacing}px`,\n }}\n />\n ))}\n </Visible>\n </Card>\n </Col>\n\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={4.5}\n xxl={4.5}\n xxxl={4.5}\n style={{ padding: 0, margin: 0 }}\n >\n <Card className={styles.ticketMiddleCard}>\n <Visible lg xl xxl xxxl>\n <Badge\n size=\"extra-large\"\n style={{\n color:\n availableSeats > 50\n ? sharedColors.Shared_Green_Primary\n : sharedColors.Shared_Red_Primary,\n }}\n appearance=\"tint\"\n color={availableSeats > 50 ? 'success' : 'danger'}\n iconPosition=\"after\"\n shape=\"rounded\"\n icon={<Icon icon=\"fluent:ticket-diagonal-24-regular\" />}\n >\n Tersedia {availableSeats}\n </Badge>\n </Visible>\n\n <div>\n <div className={styles.ticketInfo}>\n <div className={styles.ticketTime}>\n <Caption1>{departureDay}</Caption1>\n <Title2>{departureTime}</Title2>\n <Caption1>{departureLocation}</Caption1>\n </div>\n <div className={styles.ticketDuration}>\n <Caption2>Estimasi {duration}</Caption2>\n <div className={styles.dividerContainer}>\n <Divider>\n <Icon icon=\"fluent:vehicle-ship-24-regular\" height={24} />\n </Divider>\n </div>\n </div>\n <div className={styles.ticketTime}>\n <Caption1>{arrivalDay}</Caption1>\n <Title2>{arrivalTime}</Title2>\n <Caption1>{arrivalLocation}</Caption1>\n </div>\n </div>\n </div>\n <div className={styles.ticketButtons}>\n <Button\n appearance=\"outline\"\n shape=\"circular\"\n style={{\n flex: 1,\n borderColor: tokens.colorBrandBackground,\n color: tokens.colorBrandBackground,\n }}\n icon={<Icon icon=\"fluent:money-24-regular\" />}\n size=\"medium\"\n onClick={onPriceDetailClick}\n >\n Rincian Harga\n </Button>\n <Button\n appearance=\"outline\"\n shape=\"circular\"\n style={{\n flex: 1,\n borderColor: tokens.colorBrandBackground,\n color: tokens.colorBrandBackground,\n }}\n icon={<Icon icon=\"fluent:document-bullet-list-24-regular\" />}\n size=\"medium\"\n onClick={onPolicyClick}\n >\n Kebijakan\n </Button>\n </div>\n </Card>\n </Col>\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={4.5}\n xxl={4.5}\n xxxl={4.5}\n style={{ padding: 0, margin: 0 }}\n >\n <Card className={styles.ticketRightCard}>\n <div className={styles.priceCard}>\n <div style={{ display: 'flex', flexDirection: 'column', gap: '0.25rem' }}>\n <Subtitle2>Total harga</Subtitle2>\n <Title3 style={{ display: 'flex', flex: 'column', justifyContent: 'end' }}>\n IDR \n {totalPrice.toLocaleString('id-ID')}\n </Title3>\n </div>\n <Button\n onClick={onSelectTicket}\n appearance=\"primary\"\n style={{ backgroundColor: brandColors['60'] }}\n size=\"medium\"\n shape=\"circular\"\n icon={<Icon icon=\"fluent:ticket-diagonal-24-filled\" />}\n >\n {buttonText}\n </Button>\n </div>\n <div className={styles.facilitiesSection}>\n <Subtitle2>Fasilitas</Subtitle2>\n <div className={styles.facilitiesList}>\n {facilities.map((facility, idx) => (\n <div key={idx} className={styles.facilityItem}>\n <Icon icon=\"fluent:checkmark-circle-24-filled\" />\n <Caption1Strong>{facility}</Caption1Strong>\n </div>\n ))}\n </div>\n </div>\n <Visible xl xxl xxxl>\n {Array.from({ length: circularVerticalConfig.count }).map((_, index) => (\n <div\n key={index}\n className={styles.circularRight}\n style={{\n top: `${circularVerticalConfig.top + index * circularVerticalConfig.spacing}px`,\n }}\n />\n ))}\n </Visible>\n </Card>\n </Col>\n </Row>\n );\n};\n","import React from 'react';\n\n/**\n * Horizontal ticket card background with decorative perforated edges\n * Use this for desktop/landscape layouts\n */\nconst BackgroundTicketCard = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n viewBox=\"0 0 1850 465\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n preserveAspectRatio=\"none\"\n {...props}\n >\n <g filter=\"url(#filter0_dd_156_32114)\">\n <path\n d=\"M1819.6 9.85962C1815.43 8.63925 1810.75 8.00891 1806.01 8.02751H523.015C517.214 8.02224 511.553 8.98897 506.816 10.7941C502.078 12.5993 498.497 15.1537 496.568 18.1041C492.794 23.9726 485.817 29.088 476.552 32.7781C467.288 36.4682 456.169 38.5603 444.659 38.7794C443.997 38.7794 443.3 38.7794 442.604 38.7794C430.731 38.7805 419.152 36.7877 409.476 33.0776C399.799 29.3676 392.505 24.1246 388.606 18.0766C386.681 15.1284 383.106 12.5753 378.374 10.7702C373.643 8.96512 367.989 7.99718 362.193 8.00001H43.9587C40.2864 7.9988 36.6498 8.38797 33.2567 9.1453C29.8635 9.90262 26.7806 11.0133 24.184 12.4137C21.5873 13.814 19.5279 15.4767 18.1237 17.3066C16.7194 19.1365 15.9978 21.0978 16 23.0782V425.922C15.9978 427.902 16.7194 429.863 18.1237 431.693C19.5279 433.523 21.5873 435.186 24.184 436.586C26.7806 437.987 29.8635 439.097 33.2567 439.855C36.6498 440.612 40.2864 441.001 43.9587 441H362.193C367.99 441.005 373.646 440.039 378.379 438.233C383.111 436.428 386.685 433.873 388.606 430.923C392.505 424.875 399.799 419.632 409.476 415.922C419.152 412.212 430.731 410.219 442.604 410.221C443.3 410.221 443.997 410.221 444.659 410.221C456.169 410.44 467.288 412.532 476.552 416.222C485.817 419.912 492.794 425.027 496.568 430.896C498.495 433.847 502.075 436.402 506.814 438.208C511.552 440.013 517.214 440.979 523.015 440.973H1806.04C1809.71 440.974 1813.35 440.585 1816.74 439.827C1820.14 439.07 1823.22 437.959 1825.82 436.559C1828.41 435.159 1830.47 433.496 1831.88 431.666C1833.28 429.836 1834 427.875 1834 425.894V23.0599C1834 20.3673 1832.66 17.7243 1830.13 15.4037C1827.59 13.0831 1823.96 11.1692 1819.6 9.85962ZM447.343 390.645C447.352 391.126 447.104 391.599 446.628 392.007C446.152 392.415 445.469 392.74 444.659 392.944C444.032 393.133 443.322 393.228 442.604 393.219C441.977 393.22 441.355 393.154 440.775 393.025C440.195 392.896 439.668 392.707 439.224 392.467C438.78 392.228 438.429 391.944 438.19 391.631C437.951 391.318 437.829 390.983 437.831 390.645V360.818C437.831 360.135 438.334 359.48 439.229 358.998C440.124 358.515 441.338 358.244 442.604 358.244C443.317 358.24 444.022 358.328 444.659 358.5C445.145 358.623 445.587 358.791 445.967 358.995C446.856 359.484 447.351 360.142 447.343 360.827V390.645ZM447.343 339.556C447.352 340.038 447.104 340.511 446.628 340.919C446.152 341.326 445.469 341.652 444.659 341.856C444.029 342.04 443.321 342.135 442.604 342.13C441.975 342.134 441.352 342.07 440.769 341.942C440.187 341.814 439.658 341.624 439.214 341.385C438.769 341.145 438.418 340.86 438.18 340.546C437.943 340.232 437.824 339.895 437.831 339.556V309.702C437.829 309.364 437.951 309.028 438.19 308.716C438.429 308.403 438.78 308.119 439.224 307.879C439.668 307.64 440.195 307.45 440.775 307.322C441.355 307.193 441.977 307.127 442.604 307.128C443.317 307.124 444.022 307.212 444.659 307.384C445.144 307.504 445.587 307.669 445.967 307.87C446.853 308.36 447.347 309.018 447.343 309.702V339.556ZM447.343 288.468C447.35 288.949 447.101 289.422 446.625 289.829C446.149 290.237 445.467 290.562 444.659 290.767C444.029 290.952 443.321 291.047 442.604 291.042C441.971 291.043 441.345 290.975 440.761 290.843C440.178 290.711 439.649 290.517 439.207 290.273C438.761 290.033 438.409 289.747 438.173 289.432C437.937 289.117 437.82 288.78 437.831 288.441V258.614C437.829 258.275 437.951 257.94 438.19 257.627C438.429 257.314 438.78 257.03 439.224 256.791C439.668 256.552 440.195 256.362 440.775 256.233C441.355 256.104 441.977 256.039 442.604 256.04C443.317 256.036 444.022 256.123 444.659 256.296C445.148 256.413 445.591 256.577 445.967 256.782C446.853 257.272 447.347 257.929 447.343 258.614V288.468ZM447.343 237.371C447.353 237.854 447.105 238.328 446.63 238.737C446.154 239.147 445.47 239.474 444.659 239.679C444.028 239.861 443.32 239.953 442.604 239.945C441.977 239.946 441.355 239.88 440.775 239.751C440.195 239.622 439.668 239.433 439.224 239.193C438.78 238.954 438.429 238.67 438.19 238.357C437.951 238.044 437.829 237.709 437.831 237.371V207.535C437.831 207.197 437.954 206.863 438.195 206.551C438.435 206.239 438.786 205.956 439.23 205.718C439.673 205.479 440.2 205.291 440.779 205.162C441.358 205.034 441.978 204.969 442.604 204.97C443.319 204.968 444.023 205.059 444.659 205.235C445.148 205.352 445.591 205.516 445.967 205.721C446.41 205.962 446.759 206.248 446.995 206.563C447.232 206.877 447.35 207.214 447.343 207.553V237.371ZM447.343 186.282C447.354 186.764 447.107 187.238 446.63 187.646C446.154 188.054 445.47 188.379 444.659 188.582C444.032 188.771 443.322 188.866 442.604 188.856C441.335 188.859 440.115 188.592 439.207 188.114C438.327 187.622 437.834 186.966 437.831 186.282V156.456C437.831 155.773 438.334 155.118 439.229 154.635C440.124 154.153 441.338 153.881 442.604 153.881C443.875 153.883 445.095 154.152 446.001 154.633C446.887 155.122 447.381 155.78 447.377 156.465L447.343 186.282ZM447.343 135.194C447.352 135.676 447.104 136.149 446.628 136.556C446.152 136.964 445.469 137.289 444.659 137.493C444.032 137.683 443.322 137.778 442.604 137.768C441.977 137.769 441.355 137.704 440.775 137.575C440.195 137.446 439.668 137.256 439.224 137.017C438.78 136.778 438.429 136.493 438.19 136.18C437.951 135.868 437.829 135.532 437.831 135.194V105.367C437.831 104.685 438.334 104.03 439.229 103.547C440.124 103.064 441.338 102.793 442.604 102.793C443.317 102.789 444.022 102.877 444.659 103.05C445.145 103.173 445.587 103.34 445.967 103.544C446.856 104.033 447.351 104.692 447.343 105.376V135.194ZM447.343 84.1057C447.352 84.5874 447.104 85.0604 446.628 85.4681C446.152 85.8758 445.469 86.201 444.659 86.405C444.029 86.5898 443.321 86.6845 442.604 86.6798C441.975 86.6835 441.352 86.6194 440.769 86.4913C440.187 86.3632 439.658 86.1739 439.214 85.9341C438.769 85.6943 438.418 85.409 438.18 85.0951C437.943 84.7811 437.824 84.4447 437.831 84.1057V54.279C437.829 53.9407 437.951 53.6054 438.19 53.2925C438.429 52.9797 438.78 52.6954 439.224 52.4561C439.668 52.2168 440.195 52.0273 440.775 51.8983C441.355 51.7694 441.977 51.7037 442.604 51.7049C443.317 51.7007 444.022 51.7886 444.659 51.9614C445.144 52.0812 445.587 52.2455 445.967 52.4469C446.856 52.9357 447.351 53.5943 447.343 54.279V84.1057Z\"\n fill=\"white\"\n />\n </g>\n <defs>\n <filter\n id=\"filter0_dd_156_32114\"\n x=\"0\"\n y=\"0\"\n width=\"1850\"\n height=\"465\"\n filterUnits=\"userSpaceOnUse\"\n colorInterpolationFilters=\"sRGB\"\n >\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset />\n <feGaussianBlur stdDeviation=\"1\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12 0\" />\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_156_32114\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset dy=\"8\" />\n <feGaussianBlur stdDeviation=\"8\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14 0\" />\n <feBlend\n mode=\"normal\"\n in2=\"effect1_dropShadow_156_32114\"\n result=\"effect2_dropShadow_156_32114\"\n />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"effect2_dropShadow_156_32114\"\n result=\"shape\"\n />\n </filter>\n </defs>\n </svg>\n);\n\nexport default BackgroundTicketCard;\n","import React from 'react';\n\n/**\n * Vertical ticket card background with decorative perforated edges\n * Use this for mobile/portrait layouts\n */\nconst BackgroundTicketCardVertical = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n viewBox=\"0 0 465 1750\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n preserveAspectRatio=\"none\"\n {...props}\n >\n <g filter=\"url(#filter0_dd_156_32115)\">\n <path\n d=\"M455.14 1719.6C456.36 1715.43 456.99 1710.75 456.973 1706.01V423.015C456.978 417.214 456.011 411.553 454.206 406.816C452.401 402.078 449.846 398.497 446.896 396.568C441.027 392.794 435.912 385.817 432.222 376.552C428.532 367.288 426.44 356.169 426.221 344.659C426.221 343.997 426.221 343.3 426.221 342.604C426.219 330.731 428.212 319.152 431.922 309.476C435.632 299.799 440.875 292.505 446.923 288.606C449.872 286.681 452.425 283.106 454.23 278.374C456.035 273.643 457.003 267.989 457 262.193V43.9587C457.001 40.2864 456.612 36.6498 455.855 33.2567C455.097 29.8635 453.987 26.7806 452.586 24.184C451.186 21.5873 449.523 19.5279 447.693 18.1237C445.863 16.7194 443.902 15.9978 441.922 16H23.0782C21.0978 16 19.1365 16.7194 17.3066 18.1237C15.4767 19.5279 13.814 21.5873 12.4137 24.184C11.0133 26.7806 9.90262 29.8635 9.1453 33.2567C8.38797 36.6498 7.9988 40.2864 8.00001 43.9587V262.193C7.99512 267.99 8.96103 273.646 10.7672 278.379C12.5723 283.111 15.1274 286.685 18.0766 288.606C24.1246 292.505 29.3676 299.799 33.0776 309.476C36.7877 319.152 38.7805 330.731 38.7794 342.604C38.7794 343.3 38.7794 343.997 38.7794 344.659C38.5603 356.169 36.4682 367.288 32.7781 376.552C29.088 385.817 23.9726 392.794 18.1041 396.568C15.1537 398.495 12.5993 402.075 10.7941 406.814C8.98897 411.552 8.02224 417.214 8.02751 423.015V1706.04C8.02604 1709.71 8.41503 1713.35 9.17279 1716.74C9.93055 1720.14 11.0413 1723.22 12.4414 1725.82C13.8414 1728.41 15.5041 1730.47 17.3342 1731.88C19.1643 1733.28 21.1253 1734 23.1059 1734H441.94C444.633 1734 447.276 1732.66 449.596 1730.13C451.917 1727.59 453.831 1723.96 455.14 1719.6ZM64.3552 347.343C63.8743 347.352 63.4013 347.104 62.9936 346.628C62.5859 346.152 62.261 345.469 62.0569 344.659C61.8675 344.032 61.7723 343.322 61.7814 342.604C61.7799 341.977 61.8461 341.355 61.975 340.775C62.1039 340.195 62.2932 339.668 62.5325 339.224C62.7718 338.78 63.0562 338.429 63.3691 338.19C63.682 337.951 64.0173 337.829 64.3552 337.831H94.1823C94.8653 337.831 95.5203 338.334 96.0023 339.229C96.4843 340.124 96.7557 341.338 96.7557 342.604C96.7599 343.317 96.672 344.022 96.5 344.659C96.3771 345.145 96.2092 345.587 96.0051 345.967C95.5163 346.856 94.8585 347.351 94.1733 347.343H64.3552ZM115.444 347.343C114.962 347.352 114.489 347.104 114.081 346.628C113.674 346.152 113.349 345.469 113.145 344.659C112.96 344.029 112.865 343.321 112.87 342.604C112.866 341.975 112.93 341.352 113.058 340.769C113.186 340.187 113.376 339.658 113.615 339.214C113.855 338.769 114.14 338.418 114.454 338.18C114.768 337.943 115.105 337.824 115.444 337.831H145.298C145.636 337.829 145.972 337.951 146.284 338.19C146.597 338.429 146.881 338.78 147.121 339.224C147.36 339.668 147.55 340.195 147.678 340.775C147.807 341.355 147.873 341.977 147.872 342.604C147.876 343.317 147.788 344.022 147.616 344.659C147.496 345.144 147.331 345.587 147.13 345.967C146.64 346.853 145.982 347.347 145.298 347.343H115.444ZM166.532 347.343C166.051 347.35 165.578 347.101 165.171 346.625C164.763 346.149 164.438 345.467 164.233 344.659C164.048 344.029 163.953 343.321 163.958 342.604C163.957 341.971 164.025 341.345 164.157 340.761C164.289 340.178 164.483 339.649 164.727 339.207C164.967 338.761 165.253 338.409 165.568 338.173C165.883 337.937 166.22 337.82 166.559 337.831H196.386C196.725 337.829 197.06 337.951 197.373 338.19C197.686 338.429 197.97 338.78 198.209 339.224C198.448 339.668 198.638 340.195 198.767 340.775C198.896 341.355 198.961 341.977 198.96 342.604C199.036 343.317 198.948 344.022 198.776 344.659C198.659 345.148 198.505 345.591 198.299 345.967C197.809 346.853 197.152 347.347 196.468 347.343H166.532ZM217.629 347.343C217.146 347.353 216.672 347.105 216.263 346.63C215.853 346.154 215.526 345.47 215.321 344.659C215.139 344.028 215.047 343.32 215.055 342.604C215.054 341.977 215.12 341.355 215.249 340.775C215.378 340.195 215.567 339.668 215.807 339.224C216.046 338.78 216.33 338.429 216.643 338.19C216.956 337.951 217.291 337.829 217.629 337.831H247.465C247.803 337.831 248.137 337.954 248.449 338.195C248.761 338.435 249.044 338.786 249.282 339.23C249.521 339.673 249.709 340.2 249.838 340.779C249.966 341.358 250.031 341.978 250.03 342.604C250.032 343.319 249.941 344.023 249.765 344.659C249.648 345.148 249.484 345.591 249.279 345.967C248.964 346.41 248.578 346.759 248.163 346.995C247.748 347.232 247.311 347.35 246.873 347.343H217.629ZM268.718 347.343C268.236 347.354 267.762 347.107 267.354 346.63C266.946 346.154 266.621 345.47 266.418 344.659C266.229 344.032 266.134 343.322 266.144 342.604C266.141 341.335 266.408 340.115 266.886 339.207C267.378 338.327 268.034 337.834 268.718 337.831H298.544C299.227 337.831 299.882 338.334 300.365 339.229C300.847 340.124 301.119 341.338 301.119 342.604C301.117 343.875 300.848 345.095 300.367 346.001C299.878 346.887 299.22 347.381 298.535 347.377L268.718 347.343ZM319.806 347.343C319.324 347.352 318.851 347.104 318.444 346.628C318.036 346.152 317.711 345.469 317.507 344.659C317.317 344.032 317.222 343.322 317.232 342.604C317.231 341.977 317.296 341.355 317.425 340.775C317.554 340.195 317.744 339.668 317.983 339.224C318.222 338.78 318.507 338.429 318.82 338.19C319.132 337.951 319.468 337.829 319.806 337.831H349.633C350.315 337.831 350.97 338.334 351.453 339.229C351.936 340.124 352.207 341.338 352.207 342.604C352.211 343.317 352.123 344.022 351.95 344.659C351.827 345.145 351.66 345.587 351.456 345.967C350.967 346.856 350.308 347.351 349.624 347.343H319.806ZM370.894 347.343C370.413 347.352 369.94 347.104 369.532 346.628C369.124 346.152 368.799 345.469 368.595 344.659C368.41 344.029 368.315 343.321 368.32 342.604C368.316 341.975 368.38 341.352 368.508 340.769C368.637 340.187 368.826 339.658 369.066 339.214C369.306 338.769 369.592 338.418 369.905 338.18C370.219 337.943 370.555 337.824 370.894 337.831H400.721C401.059 337.829 401.395 337.951 401.707 338.19C402.02 338.429 402.305 388.78 402.544 339.224C402.783 339.668 402.973 340.195 403.102 340.775C403.231 341.355 403.296 341.977 403.295 342.604C403.299 343.317 403.212 344.022 403.039 344.659C402.919 345.144 402.755 345.587 402.553 345.967C402.064 346.856 401.406 347.351 400.721 347.343H370.894Z\"\n fill=\"white\"\n />\n </g>\n <defs>\n <filter\n id=\"filter0_dd_156_32115\"\n x=\"0\"\n y=\"0\"\n width=\"465\"\n height=\"1750\"\n filterUnits=\"userSpaceOnUse\"\n colorInterpolationFilters=\"sRGB\"\n >\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset />\n <feGaussianBlur stdDeviation=\"1\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"BackgroundImageFix\"\n result=\"effect1_dropShadow_156_32115\"\n />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset dy=\"8\" />\n <feGaussianBlur stdDeviation=\"8\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"effect1_dropShadow_156_32115\"\n result=\"effect2_dropShadow_156_32115\"\n />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"effect2_dropShadow_156_32115\"\n result=\"shape\"\n />\n </filter>\n </defs>\n </svg>\n);\n\nexport default BackgroundTicketCardVertical;\n","import React from 'react';\nimport {\n Button,\n Card,\n Divider,\n makeStyles,\n mergeClasses,\n tokens,\n} from '@fluentui/react-components';\nimport { Language } from '../../types/globalTypes';\n\nconst useStyles = makeStyles({\n card: {\n width: '100%',\n boxSizing: 'border-box',\n padding: '0px',\n borderRadius: tokens.borderRadiusXLarge,\n },\n menuList: {\n display: 'flex',\n flexDirection: 'column',\n '@media (max-width: 1200px)': {\n flexDirection: 'row',\n overflowX: 'auto',\n flexWrap: 'nowrap',\n gap: '0px',\n WebkitOverflowScrolling: 'touch',\n scrollbarWidth: 'thin',\n justifyContent: 'space-around',\n },\n },\n menuItem: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-start',\n padding: '12px',\n borderRadius: tokens.borderRadiusMedium,\n cursor: 'pointer',\n textAlign: 'left',\n transition: 'background-color 0.2s ease',\n textDecoration: 'none',\n color: tokens.colorNeutralForeground1,\n backgroundColor: tokens.colorNeutralBackground1,\n border: 'none',\n gap: '12px',\n '&:hover': {\n backgroundColor: tokens.colorNeutralBackground1Hover,\n },\n '@media (max-width: 1200px)': {\n padding: '10px 12px',\n flexShrink: 0,\n flexDirection: 'column',\n alignItems: 'center',\n textAlign: 'center',\n },\n },\n menuItemActive: {\n backgroundColor: tokens.colorNeutralBackground3,\n color: tokens.colorNeutralForeground1,\n '&:hover': {\n backgroundColor: tokens.colorNeutralBackground3Hover,\n },\n },\n logo: {\n height: '32px',\n width: '32px',\n flexShrink: 0,\n },\n textContent: {\n display: 'flex',\n flexDirection: 'column',\n gap: '4px',\n '@media (max-width: 1200px)': {\n alignItems: 'center',\n },\n },\n label: {\n fontSize: tokens.fontSizeBase300,\n fontWeight: tokens.fontWeightSemibold,\n lineHeight: '1.2',\n },\n description: {\n fontSize: tokens.fontSizeBase200,\n fontWeight: tokens.fontWeightRegular,\n color: tokens.colorNeutralForeground2,\n lineHeight: '1.4',\n '@media (max-width: 1200px)': {\n fontSize: tokens.fontSizeBase100,\n whiteSpace: 'nowrap',\n },\n },\n dividerVertical: {\n '@media (min-width: 1200px)': {\n display: 'none',\n },\n },\n dividerHorizontal: {\n '@media (max-width: 1200px)': {\n display: 'none',\n },\n },\n});\n\n// Built-in service menu items with i18n\nconst SERVICE_MENU_ITEMS = {\n ferry: {\n id: 'ferry',\n logo: '/assets/images/icons/ferry.svg',\n labels: {\n id: { label: 'Ferry', description: 'Layanan penyeberangan ferry ASDP' },\n en: { label: 'Ferry', description: 'ASDP Ferry Crossing Service' },\n },\n },\n ifcs: {\n id: 'ifcs',\n logo: '/assets/logo/asdp-default.svg',\n labels: {\n id: { label: 'IFCS', description: 'Integrated Ferry Control System' },\n en: { label: 'IFCS', description: 'Integrated Ferry Control System' },\n },\n },\n skpt: {\n id: 'skpt',\n logo: '/assets/logo/asdp-default.svg',\n labels: {\n id: { label: 'SKPT', description: 'Sistem Karcis Penumpang Terpadu' },\n en: { label: 'SKPT', description: 'Integrated Passenger Ticketing System' },\n },\n },\n hotel: {\n id: 'hotel',\n logo: '/assets/images/icons/hotel.svg',\n labels: {\n id: { label: 'Hotel', description: 'Layanan pemesanan hotel' },\n en: { label: 'Hotel', description: 'Hotel Booking Service' },\n },\n },\n other: {\n id: 'other',\n logo: '/assets/images/icons/other.svg',\n labels: {\n id: { label: 'Lainnya', description: 'Layanan lainnya' },\n en: { label: 'Other', description: 'Other Services' },\n },\n },\n} as const;\n\nexport type ServiceId = keyof typeof SERVICE_MENU_ITEMS;\n\nexport interface CardServiceMenuProps {\n /**\n * Currently active service ID\n * @default 'ferry'\n */\n activeServiceId?: ServiceId;\n \n /**\n * Language for labels (Indonesian or English)\n * @default 'id'\n */\n language?: Language;\n \n /**\n * Callback when a service is clicked\n */\n onServiceClick?: (serviceId: ServiceId) => void;\n \n /**\n * Whether to show descriptions on desktop\n * @default true\n */\n showDescriptions?: boolean;\n \n /**\n * Custom className for the card\n */\n className?: string;\n}\n\nexport const CardServiceMenu: React.FC<CardServiceMenuProps> = ({\n activeServiceId = 'ferry',\n language = 'id',\n onServiceClick,\n showDescriptions = true,\n className,\n}) => {\n const styles = useStyles();\n\n const getMenuItemClass = (serviceId: ServiceId) => {\n const isActive = activeServiceId === serviceId;\n return mergeClasses(\n styles.menuItem,\n isActive && styles.menuItemActive\n );\n };\n\n const menuItems = Object.values(SERVICE_MENU_ITEMS);\n\n return (\n <Card className={mergeClasses(styles.card, className)}>\n <div className={styles.menuList}>\n {menuItems.map((item, index) => {\n const { label, description } = item.labels[language];\n \n return (\n <React.Fragment key={item.id}>\n <Button\n className={getMenuItemClass(item.id as ServiceId)}\n onClick={() => onServiceClick?.(item.id as ServiceId)}\n >\n <img\n src={item.logo}\n alt={label}\n className={styles.logo}\n />\n <div className={styles.textContent}>\n <span className={styles.label}>{label}</span>\n {showDescriptions && (\n <span className={styles.description}>\n {description}\n </span>\n )}\n </div>\n </Button>\n {index < menuItems.length - 1 && (\n <>\n <Divider className={styles.dividerHorizontal} />\n <Divider vertical className={styles.dividerVertical} />\n </>\n )}\n </React.Fragment>\n );\n })}\n </div>\n </Card>\n );\n};\n\nexport default CardServiceMenu;\n","import { Calendar } from '@fluentui/react-calendar-compat';\nimport {\n Input,\n InputProps,\n Popover,\n PopoverSurface,\n PopoverTrigger,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport React, { forwardRef, useState } from 'react';\n\ninterface DatePickerInputProps extends InputProps {\n field: {\n value: string;\n onChange: (value: string) => void;\n onBlur?: () => void;\n };\n max?: string;\n}\n\nconst DatePickerInput = forwardRef<HTMLInputElement, DatePickerInputProps>(\n (\n {\n field,\n placeholder,\n disabled,\n appearance,\n size,\n contentBefore,\n onClick,\n style,\n max,\n ...restProps\n },\n ref,\n ) => {\n const [isOpen, setIsOpen] = useState(false);\n const dateValue = field.value ? new Date(field.value) : undefined;\n\n const onSelectDate = (date: Date | null | undefined) => {\n if (date) {\n // Adjust for timezone offset to ensure the date string is correct\n const offset = date.getTimezoneOffset();\n const adjustedDate = new Date(date.getTime() - offset * 60 * 1000);\n field.onChange(adjustedDate.toISOString().split('T')[0]);\n setIsOpen(false);\n }\n };\n\n const formatDate = (dateString: string) => {\n if (!dateString) return '';\n const date = new Date(dateString);\n return date.toLocaleDateString('id-ID', {\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n });\n };\n\n const handleInputClick = (e: React.MouseEvent<HTMLInputElement>) => {\n e?.preventDefault();\n if (!disabled) {\n setIsOpen(!isOpen);\n }\n onClick?.(e);\n };\n\n return (\n <Popover open={isOpen} onOpenChange={(_, data) => setIsOpen(data.open)} trapFocus>\n <PopoverTrigger disableButtonEnhancement>\n <Input\n {...restProps}\n value={formatDate(field.value)}\n readOnly\n placeholder={placeholder || 'Pilih tanggal'}\n disabled={disabled}\n appearance={appearance}\n size={size}\n contentBefore={contentBefore}\n onClick={handleInputClick}\n style={{\n cursor: disabled ? 'not-allowed' : 'pointer',\n ...style,\n }}\n contentAfter={\n <div\n onClick={e => {\n e.stopPropagation();\n if (!disabled) {\n setIsOpen(!isOpen);\n }\n }}\n style={{\n cursor: disabled ? 'not-allowed' : 'pointer',\n display: 'flex',\n alignItems: 'center',\n }}\n >\n <Icon icon=\"fluent:calendar-24-regular\" />\n </div>\n }\n />\n </PopoverTrigger>\n <PopoverSurface tabIndex={-1} style={{ maxWidth: '530px' }}>\n <Calendar\n value={dateValue}\n onSelectDate={onSelectDate}\n showGoToToday\n highlightSelectedMonth\n showMonthPickerAsOverlay={false}\n maxDate={max ? new Date(max) : undefined}\n />\n </PopoverSurface>\n </Popover>\n );\n },\n);\n\nDatePickerInput.displayName = 'DatePickerInput';\n\nexport default DatePickerInput;\n","import React, { MutableRefObject, useEffect, useRef, useState } from 'react';\nimport {\n Button,\n Checkbox,\n Field,\n Input,\n Label,\n Radio,\n RadioGroup,\n Switch,\n Text,\n Textarea,\n makeStyles,\n tokens,\n typographyStyles,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport { Control, Controller, FieldValues, Path } from 'react-hook-form';\nimport PhoneInputComponent from 'react-phone-input-2';\n// import 'react-phone-input-2/lib/style.css';\nimport Select from 'react-select';\n\nimport tokensV2, { fontWeight, sharedColors } from '../../constants/generated/tokensV2';\n\nimport DatePickerInput from './DatePickerInput';\nimport { InputDynamicProps, InputType, PhoneValue, CountryCode, SelectOption, RadioOption } from './types';\n\n// Handle both default and named exports for PhoneInput\nconst PhoneInput = (PhoneInputComponent as any).default || PhoneInputComponent;\nconst useStyles = makeStyles({\n field: {\n display: 'flex',\n flexDirection: 'column',\n gap: tokens.spacingVerticalXS,\n marginBottom: tokens.spacingVerticalM,\n },\n errorText: {\n color: tokens.colorPaletteRedBackground1,\n fontSize: tokens.fontSizeBase200,\n },\n helperText: {\n color: tokens.colorNeutralForeground2,\n fontSize: tokens.fontSizeBase200,\n },\n disabledFilledLighter: {\n backgroundColor: tokens.colorNeutralBackground4,\n border: 'none',\n '& input': {\n backgroundColor: tokens.colorNeutralBackground4,\n border: 'none',\n },\n },\n fileInput: {\n padding: tokens.spacingVerticalS,\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n borderRadius: tokens.borderRadiusMedium,\n backgroundColor: tokens.colorNeutralBackground1,\n fontSize: tokens.fontSizeBase300,\n '&:focus': {\n outline: `2px solid ${tokens.colorBrandStroke1}`,\n },\n },\n reactSelect: {\n // Custom styles akan dihandle via styles prop react-select\n },\n reactSelectError: {\n // Custom styles akan dihandle via styles prop react-select\n },\n phoneContainer: {\n display: 'flex',\n gap: tokens.spacingHorizontalS,\n alignItems: 'flex-start',\n width: '100%',\n },\n phoneCountrySelect: {\n minWidth: '120px',\n maxWidth: '120px',\n flexShrink: 0,\n },\n switchWrapper: {\n '& .fui-Switch': {\n minHeight: '20px',\n },\n '& .fui-Switch__indicator': {\n height: '20px',\n width: '40px',\n borderRadius: '10px',\n },\n '& .fui-Switch__thumb': {\n height: '14px',\n width: '14px',\n borderRadius: '50%',\n },\n },\n otpInput: {\n '& input': {\n textAlign: 'center',\n },\n },\n inputWithAutocomplete: {\n '& input:-webkit-autofill': {\n '-webkit-box-shadow': '0 0 0 30px white inset !important',\n '-webkit-text-fill-color': `${tokens.colorNeutralForeground1} !important`,\n },\n '& input:-webkit-autofill:hover': {\n '-webkit-box-shadow': '0 0 0 30px white inset !important',\n },\n '& input:-webkit-autofill:focus': {\n '-webkit-box-shadow': '0 0 0 30px white inset !important',\n },\n '& input:-webkit-autofill:active': {\n '-webkit-box-shadow': '0 0 0 30px white inset !important',\n },\n },\n phoneInputWrapper: {\n width: '100%',\n '& .react-tel-input': {\n width: '100%',\n },\n '& .react-tel-input .form-control': {\n width: '100%',\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n borderRadius: tokens.borderRadiusMedium,\n padding: tokens.spacingVerticalS,\n paddingLeft: '48px',\n fontSize: tokens.fontSizeBase300,\n fontFamily: tokens.fontFamilyBase,\n backgroundColor: tokens.colorNeutralBackground1,\n color: tokens.colorNeutralForeground1,\n outline: 'none',\n height: 'auto',\n minHeight: '40px',\n },\n '& .react-tel-input .form-control::placeholder': {\n fontSize: tokens.fontSizeBase400,\n },\n '& .react-tel-input .form-control:hover': {\n border: `1px solid ${tokens.colorNeutralStroke1Hover}`,\n },\n '& .react-tel-input .form-control:focus': {\n borderBottom: `2px solid ${tokens.colorBrandStroke1}`,\n // boxShadow: `0 0 0 1px ${tokens.colorBrandStroke1}`,\n },\n '& .react-tel-input .form-control:disabled': {\n backgroundColor: tokens.colorNeutralBackground4,\n color: tokens.colorNeutralForegroundDisabled,\n cursor: 'not-allowed',\n },\n '& .react-tel-input .flag-dropdown': {\n border: 'none',\n backgroundColor: 'transparent',\n borderRadius: tokens.borderRadiusMedium,\n },\n '& .react-tel-input .selected-flag': {\n padding: '0 0 0 8px',\n width: '40px',\n backgroundColor: 'transparent',\n },\n '& .react-tel-input .selected-flag:hover': {\n backgroundColor: 'transparent',\n },\n '& .react-tel-input .flag-dropdown.open .selected-flag': {\n backgroundColor: 'transparent',\n },\n },\n phoneInputError: {\n '& .react-tel-input .form-control': {\n border: `2px solid ${tokens.colorPaletteRedBorder2}`,\n },\n '& .react-tel-input .form-control:focus': {\n border: `2px solid ${tokens.colorPaletteRedBorder2}`,\n boxShadow: `0 0 0 1px ${tokens.colorPaletteRedBorder2}`,\n },\n },\n classRadioGroup: {\n display: 'flex',\n flexDirection: 'row',\n gap: '12px',\n },\n classRadio: {\n '& .fui-Radio__indicator': {\n display: 'none',\n },\n '& .fui-Radio__label': {\n padding: '10px 24px',\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n borderRadius: tokens.borderRadiusCircular,\n cursor: 'pointer',\n transition: 'all 0.2s ease',\n fontSize: tokens.fontSizeBase300,\n color: tokens.colorNeutralForeground2,\n },\n '&:hover .fui-Radio__label': {\n backgroundColor: tokens.colorNeutralBackground1Hover,\n border: `1px solid ${tokensV2.lightModeColors.Brand_Stroke_1_Rest}`,\n },\n '& .fui-Radio__input:checked ~ .fui-Radio__label': {\n borderRadius: tokens.borderRadiusXLarge,\n border: `1px solid ${tokensV2.lightModeColors.Brand_Stroke_1_Rest}`,\n color: tokensV2.lightModeColors.Brand_Stroke_1_Rest,\n backgroundColor: 'transparent',\n },\n // Fallback for aria-checked if needed\n '&[aria-checked=\"true\"] .fui-Radio__label': {\n borderRadius: tokens.borderRadiusXLarge,\n border: `1px solid ${tokensV2.lightModeColors.Brand_Stroke_1_Rest}`,\n color: tokensV2.lightModeColors.Brand_Stroke_1_Rest,\n backgroundColor: 'transparent',\n },\n // Disabled state styling\n '& .fui-Radio__input:disabled ~ .fui-Radio__label': {\n opacity: 0.6,\n cursor: 'not-allowed',\n backgroundColor: tokens.colorNeutralBackground4,\n },\n '&:hover .fui-Radio__input:disabled ~ .fui-Radio__label': {\n backgroundColor: tokens.colorNeutralBackground4,\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n },\n },\n});\n\n// Helper function to check if it's a valid phone number start\n// const isValidPhoneStart = (value: string): boolean => {\n// if (!value || value.length < 6) return false;\n\n// // Phone number patterns for international numbers:\n// // - Must be all digits\n// // - Length between 6-15 digits (international standard)\n// // - Common patterns: starts with 0, +, or direct country code (1-9)\n// const cleanValue = value.replace(/[\\s\\-\\(\\)]/g, ''); // Remove common phone formatting\n\n// // Check if it's all digits (after removing + at start if present)\n// const numericValue = cleanValue.replace(/^\\+/, '');\n// const isAllDigits = /^\\d+$/.test(numericValue);\n\n// // Must be all digits and have reasonable length for phone number (6-15 digits)\n// return isAllDigits && numericValue.length >= 6 && numericValue.length <= 15;\n// };\n\n// Helper function to detect input type for identity field\nconst detectIdentityType = (value: string): 'email' | 'phone' | 'id' => {\n if (!value) return 'id';\n\n // Ensure value is a string to prevent \"includes/startsWith is not a function\" errors\n const stringValue = String(value);\n\n // Check if it's an email (contains @)\n if (stringValue.includes('@')) return 'email';\n\n // Check if it's a phone number - starts with +\n if (stringValue.startsWith('+')) return 'phone';\n\n // Check if it's all numeric (phone without +)\n // This handles the case when PhoneInput returns just numbers\n // const isAllNumeric = /^\\d+$/.test(value);\n // if (isAllNumeric && value.length >= 10) return 'phone';\n\n // Otherwise it's an ID (KTP/SIM/Passport - mixed alphanumeric or short numbers)\n return 'id';\n};\n\nconst detectEmailOrPhone = (value: string): 'email' | 'phone' | 'none' => {\n if (!value) return 'none';\n\n // Check if it's an email (contains @)\n if (value.includes('@')) return 'email';\n\n // Check if it's a phone number - starts with +\n if (value.startsWith('+')) return 'phone';\n\n return 'none';\n};\n\n// Helper function khusus untuk emailOrPhone type - deteksi lebih strict\nconst detectEmailOrPhoneStrict = (value: string): 'email' | 'phone' | 'none' => {\n if (!value) return 'none';\n\n // Check if it's an email (contains @)\n if (value.includes('@')) return 'email';\n\n // Check if it's a phone number - starts with + (international format)\n if (value.startsWith('+')) return 'phone';\n\n // Check if it's Indonesian phone format starting with 0 (e.g., 08xxx)\n if (/^0\\d/.test(value)) return 'phone';\n\n // Check if it's Indonesian phone without + (e.g., 628xxx)\n if (/^62\\d/.test(value)) return 'phone';\n\n return 'none';\n};\n\nconst InputDynamic: React.FC<InputDynamicProps> = ({\n name,\n control,\n label,\n type,\n placeholder,\n required = false,\n disabled = false,\n options = [],\n multiple = false,\n accept,\n rows = 3,\n min,\n max,\n step,\n isMultiSelect = false,\n selectScrollbarColor,\n contentBefore,\n appearance = 'outline',\n validationRules,\n helperText,\n className,\n layout,\n size,\n onClick,\n style,\n defaultCountry = 'ID',\n maxLength,\n autoAdvance = false,\n otpIndex,\n hasError = false,\n autoComplete,\n onInput,\n contentAfter,\n onChange,\n}: InputDynamicProps) => {\n\n const styles = useStyles();\n const [showPassword, setShowPassword] = useState(false);\n const [isPhoneMode, setIsPhoneMode] = useState(false);\n const [emailOrPhoneType, setEmailOrPhoneType] = useState<'email' | 'phone' | 'none'>('none');\n const [identityType, setIdentityType] = useState<'email' | 'phone' | 'id'>('id');\n const [lastPhoneValue, setLastPhoneValue] = useState('');\n const [lastEmailOrPhoneValue, setLastEmailOrPhoneValue] = useState('');\n const inputRef = useRef<HTMLInputElement>(null);\n const phoneInputRef = useRef<any>(null);\n const emailOrPhoneInputRef = useRef<any>(null);\n const shouldFocusRef = useRef(false);\n const isBackspaceNavigationRef = useRef(false);\n\n // Custom styles untuk react-select\n const getSelectStyles = (hasError: boolean) => ({\n menuPortal: (base: any) => ({\n ...base,\n zIndex: 9999999,\n borderRadius: tokens.borderRadiusMedium,\n }),\n control: (provided: any, state: any) => ({\n ...provided,\n borderColor: hasError\n ? tokens.colorPaletteRedBorder2\n : state.isFocused\n ? tokens.colorBrandStroke1\n : tokens.colorNeutralStroke1,\n borderRadius: tokens.borderRadiusMedium,\n minHeight: '40px',\n fontSize: tokens.fontSizeBase400,\n backgroundColor: tokens.colorNeutralBackground1,\n boxShadow: state.isFocused\n ? `0 0 0 2px ${hasError ? tokens.colorPaletteRedBorder2 : tokens.colorBrandStroke1}`\n : 'none',\n '&:hover': {\n borderColor: hasError ? tokens.colorPaletteRedBorder2 : tokens.colorNeutralStroke1Hover,\n },\n }),\n menu: (provided: any) => ({\n ...provided,\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n borderRadius: tokens.borderRadiusMedium,\n zIndex: 9999,\n }),\n menuList: (provided: any) => ({\n ...provided,\n padding: 0, // Opsional: bersihkan padding agar scrollbar mepet ke pinggir\n maxHeight: '300px', // Pastikan ada limit height agar scrollbar muncul\n\n /* Targetkan Webkit Scrollbar di menuList */\n '&::-webkit-scrollbar': {\n width: '8px',\n display: 'block', // Pastikan tampil\n },\n '&::-webkit-scrollbar-track': {\n backgroundColor: tokens.colorNeutralBackground2,\n borderRadius: '4px',\n },\n '&::-webkit-scrollbar-thumb': {\n backgroundColor: selectScrollbarColor || tokens.colorNeutralStroke2,\n borderRadius: '4px',\n },\n '&::-webkit-scrollbar-thumb:hover': {\n backgroundColor: selectScrollbarColor || tokens.colorBrandBackground,\n },\n '&::-webkit-scrollbar-thumb:active': {\n backgroundColor: selectScrollbarColor || tokens.colorBrandBackgroundPressed,\n },\n }),\n option: (provided: any, state: any) => ({\n ...provided,\n fontSize: tokens.fontSizeBase300,\n color: state.isSelected\n ? tokens.colorNeutralForegroundOnBrand\n : tokens.colorNeutralForeground1,\n backgroundColor: state.isSelected\n ? tokens.colorBrandBackground\n : state.isFocused\n ? tokens.colorNeutralBackground1Hover\n : 'transparent',\n }),\n placeholder: (provided: any) => ({\n ...provided,\n color: tokens.colorNeutralForeground3,\n fontSize: tokens.fontSizeBase400,\n }),\n singleValue: (provided: any) => ({\n ...provided,\n color: tokens.colorNeutralForeground1,\n fontSize: tokens.fontSizeBase400,\n }),\n });\n\n // Focus the input when mode changes\n useEffect(() => {\n if (shouldFocusRef.current) {\n // Small delay to ensure the new input is mounted\n setTimeout(() => {\n // console.log(\n // 'Focusing input for type:',\n // identityType,\n // 'shouldFocusRef:',\n // shouldFocusRef.current,\n // );\n if (identityType === 'phone' && phoneInputRef.current) {\n // PhoneInput uses an internal input element\n const phoneInput = phoneInputRef.current.querySelector('input.form-control');\n if (phoneInput) {\n phoneInput.focus();\n // Set cursor to end of input\n const len = phoneInput.value.length;\n phoneInput.setSelectionRange(len, len);\n }\n } else if (inputRef.current) {\n inputRef.current.focus();\n // Set cursor to end of input only for text-like inputs\n // email, number, date, etc. don't support setSelectionRange\n const inputType = inputRef.current.type;\n if (\n inputType === 'text' ||\n inputType === 'tel' ||\n inputType === 'url' ||\n inputType === 'search'\n ) {\n const len = inputRef.current.value.length;\n inputRef.current.setSelectionRange(len, len);\n }\n }\n shouldFocusRef.current = false;\n }, 50);\n }\n }, [identityType]);\n\n // Focus handling for emailOrPhone type\n useEffect(() => {\n if (shouldFocusRef.current && type === 'emailOrPhone') {\n setTimeout(() => {\n if (emailOrPhoneType === 'phone' && emailOrPhoneInputRef.current) {\n const phoneInput = emailOrPhoneInputRef.current.querySelector('input.form-control');\n if (phoneInput) {\n phoneInput.focus();\n const len = phoneInput.value.length;\n phoneInput.setSelectionRange(len, len);\n }\n } else if (inputRef.current) {\n inputRef.current.focus();\n const inputType = inputRef.current.type;\n // Only use setSelectionRange on input types that support it\n if (\n inputType === 'text' ||\n inputType === 'tel' ||\n inputType === 'url' ||\n inputType === 'search'\n ) {\n const len = inputRef.current.value.length;\n inputRef.current.setSelectionRange(len, len);\n }\n }\n shouldFocusRef.current = false;\n }, 50);\n }\n }, [emailOrPhoneType, type]);\n\n // const updatePhoneMode = (value: any) => {\n // const stringValue = typeof value === 'string' ? value : value?.phoneNumber || '';\n // const nextMode = isValidPhoneStart(stringValue);\n // if (nextMode !== isPhoneMode) {\n // setIsPhoneMode(nextMode);\n // }\n // };\n\n const updateIdentityType = (value: any) => {\n const stringValue = typeof value === 'string' ? value : value?.phoneNumber || '';\n const detectedType = detectIdentityType(stringValue);\n if (detectedType !== identityType) {\n setIdentityType(detectedType);\n }\n };\n\n const updateEmailOrPhoneType = (value: any) => {\n const stringValue = typeof value === 'string' ? value : '';\n const detectedType = detectEmailOrPhoneStrict(stringValue);\n if (detectedType !== emailOrPhoneType) {\n setEmailOrPhoneType(detectedType);\n }\n };\n\n const renderInput = (field: any, error?: string) => {\n // Make border transparent when disabled and appearance is not outline/underline\n const shouldTransparentBorder =\n disabled && appearance !== 'outline' && appearance !== 'underline';\n\n const inputStyle = shouldTransparentBorder ? { ...style, border: 'transparent' } : style;\n\n const handleInputChange = (e: any) => {\n field.onChange(e);\n if (onChange) {\n onChange(e.target?.value ?? e);\n }\n };\n\n const commonProps = {\n ...field,\n onChange: handleInputChange,\n value: field.value ?? '',\n placeholder,\n disabled,\n appearance: error ? 'invalid' : appearance,\n size,\n contentBefore,\n onClick,\n style: inputStyle,\n maxLength,\n autoComplete: autoComplete || 'off',\n contentAfter,\n max,\n } as const;\n const otpMatch = /^otp(\\d+)$/.exec(String(name));\n const otpIndex = otpMatch ? parseInt(otpMatch[1], 10) : null;\n\n // Handle emailOrPhone type - khusus untuk email atau nomor HP saja\n if (type === 'emailOrPhone') {\n updateEmailOrPhoneType(field.value);\n\n const stringValue = typeof field.value === 'string' ? field.value : '';\n\n // Determine input type and placeholder based on detected type\n let inputType: 'text' | 'email' | 'tel' = 'text';\n let inputPlaceholder = placeholder || 'Email atau Nomor HP';\n\n if (emailOrPhoneType === 'email') {\n inputType = 'email';\n inputPlaceholder = placeholder || 'Email';\n } else if (emailOrPhoneType === 'phone') {\n inputType = 'tel';\n inputPlaceholder = placeholder || 'Nomor HP';\n }\n\n // Normalize Indonesian phone numbers: convert 08xxx to +628xxx\n const normalizePhoneNumber = (val: string): string => {\n if (!val) return val;\n // Convert 08xxx to +628xxx\n if (val.startsWith('08')) {\n return '+62' + val.substring(1);\n }\n // Convert 628xxx to +628xxx\n if (val.startsWith('62') && !val.startsWith('+')) {\n return '+' + val;\n }\n return val;\n };\n\n // Clean phone value: remove leading zero after country code\n const cleanPhoneValue = (val: string): string => {\n if (!val) return val;\n const match = val.match(/^(\\d{1,4})(0\\d+)$/);\n if (match) {\n return match[1] + match[2].substring(1);\n }\n return val;\n };\n\n const displayValue =\n emailOrPhoneType === 'phone' ? cleanPhoneValue(stringValue) : stringValue;\n\n return (\n <div className={styles.phoneContainer}>\n {emailOrPhoneType === 'phone' ? (\n <div\n ref={emailOrPhoneInputRef}\n className={`${styles.phoneInputWrapper} ${error ? styles.phoneInputError : ''}`}\n >\n <PhoneInput\n country={defaultCountry.toLowerCase()}\n value={stringValue.startsWith('+') ? stringValue.substring(1) : stringValue}\n onChange={(value: string, data: any) => {\n if (!value) {\n shouldFocusRef.current = true;\n field.onChange('');\n updateEmailOrPhoneType('');\n setLastEmailOrPhoneValue('');\n return;\n }\n\n const countryDialCode = data?.dialCode || '';\n\n if (value === countryDialCode) {\n const dialCodeChanged =\n lastEmailOrPhoneValue &&\n lastEmailOrPhoneValue !== countryDialCode &&\n !lastEmailOrPhoneValue.startsWith(countryDialCode);\n\n const isInitial = !lastEmailOrPhoneValue;\n const wasFullNumber = lastEmailOrPhoneValue && lastEmailOrPhoneValue.length > 3;\n\n if (isInitial || dialCodeChanged || wasFullNumber) {\n const phoneValue = '+' + value;\n field.onChange(phoneValue);\n updateEmailOrPhoneType(phoneValue);\n setLastEmailOrPhoneValue(value);\n return;\n } else {\n shouldFocusRef.current = true;\n field.onChange('');\n updateEmailOrPhoneType('');\n setLastEmailOrPhoneValue('');\n return;\n }\n }\n\n const phoneValue = '+' + value;\n field.onChange(phoneValue);\n updateEmailOrPhoneType(phoneValue);\n setLastEmailOrPhoneValue(value);\n }}\n placeholder={inputPlaceholder}\n disabled={disabled}\n enableSearch\n />\n </div>\n ) : (\n <Input\n ref={inputRef}\n value={stringValue}\n maxLength={maxLength}\n autoComplete={autoComplete || 'off'}\n onChange={(e: any) => {\n const newValue = e.target.value;\n const willSwitchType = emailOrPhoneType !== detectEmailOrPhoneStrict(newValue);\n\n if (willSwitchType) shouldFocusRef.current = true;\n\n // Auto-normalize phone numbers for Indonesian format\n let normalizedValue = newValue;\n const detectedType = detectEmailOrPhoneStrict(newValue);\n if (detectedType === 'phone') {\n normalizedValue = normalizePhoneNumber(newValue);\n }\n\n field.onChange(normalizedValue);\n updateEmailOrPhoneType(normalizedValue);\n }}\n placeholder={inputPlaceholder}\n disabled={disabled}\n appearance={appearance}\n size={size}\n type={inputType}\n style={{ width: '100%' }}\n />\n )}\n </div>\n );\n }\n\n // If this is an identity type, check and update mode\n if (type === 'identity') {\n // update type whenever value changes\n updateIdentityType(field.value);\n\n const stringValue = typeof field.value === 'string' ? field.value : '';\n\n // Determine input type and placeholder based on detected type\n let inputType: 'text' | 'email' | 'tel' | 'number' = 'text';\n let inputPlaceholder = placeholder || 'Email, KTP, SIM, Passport, atau Nomor Telepon';\n\n if (identityType === 'email') {\n inputType = 'email';\n inputPlaceholder = placeholder || 'Email';\n } else if (identityType === 'phone') {\n inputType = 'tel';\n inputPlaceholder = placeholder || 'Nomor telepon';\n } else if (identityType === 'id') {\n inputType = 'text';\n inputPlaceholder = placeholder || 'KTP, SIM, atau Passport';\n }\n\n // Clean phone value: remove leading zero after country code\n const cleanPhoneValue = (val: string): string => {\n if (!val) return val;\n // Ensure val is a string to prevent \"match is not a function\" error\n const stringVal = String(val);\n // Check if value starts with common country codes followed by 0\n // E.g., 6208... should become 628...\n const match = stringVal.match(/^(\\d{1,4})(0\\d+)$/);\n if (match) {\n return match[1] + match[2].substring(1);\n }\n return stringVal;\n };\n\n const displayValue = identityType === 'phone' ? cleanPhoneValue(stringValue) : stringValue;\n\n return (\n <div className={styles.phoneContainer}>\n {identityType === 'phone' ? (\n <div\n ref={phoneInputRef}\n className={`${styles.phoneInputWrapper} ${error ? styles.phoneInputError : ''}`}\n >\n <PhoneInput\n country={defaultCountry.toLowerCase()}\n value={stringValue.startsWith('+') ? stringValue.substring(1) : stringValue}\n onChange={(value: string, data: any) => {\n // If completely empty, switch back to id mode\n if (!value) {\n shouldFocusRef.current = true;\n field.onChange('');\n updateIdentityType('');\n setLastPhoneValue('');\n return;\n }\n\n // Get the country dial code\n const countryDialCode = data?.dialCode || '';\n\n // If value is just the country code\n if (value === countryDialCode) {\n // Check if dial code changed (user is changing country)\n const dialCodeChanged =\n lastPhoneValue &&\n lastPhoneValue !== countryDialCode &&\n !lastPhoneValue.startsWith(countryDialCode);\n\n // Check if this is initial state (user just typed +)\n const isInitial = !lastPhoneValue;\n\n // Check if user had a full number and now changing country\n const wasFullNumber = lastPhoneValue && lastPhoneValue.length > 3;\n\n if (isInitial || dialCodeChanged || wasFullNumber) {\n // Keep in phone mode\n const phoneValue = '+' + value;\n field.onChange(phoneValue);\n updateIdentityType(phoneValue);\n setLastPhoneValue(value);\n return;\n } else {\n // User is deleting digits back to dial code only - switch to ID\n shouldFocusRef.current = true; // Set focus flag before switching\n field.onChange('');\n updateIdentityType('');\n setLastPhoneValue('');\n return;\n }\n }\n\n // PhoneInput returns value without +, so we add it\n const phoneValue = '+' + value;\n\n field.onChange(phoneValue);\n updateIdentityType(phoneValue);\n setLastPhoneValue(value);\n }}\n placeholder={inputPlaceholder}\n disabled={disabled}\n enableSearch\n disableSearchIcon\n />\n </div>\n ) : (\n <Input\n ref={inputRef}\n value={stringValue}\n maxLength={maxLength}\n autoComplete={autoComplete || 'off'}\n onChange={(e: any) => {\n const newValue = e.target.value;\n const willSwitchType = identityType !== detectIdentityType(newValue);\n\n if (willSwitchType) shouldFocusRef.current = true;\n\n field.onChange(newValue);\n\n // Update type whenever input changes\n updateIdentityType(newValue);\n }}\n placeholder={inputPlaceholder}\n disabled={disabled}\n appearance={appearance}\n size={size}\n type={inputType}\n style={{ width: '100%' }}\n />\n )}\n </div>\n );\n }\n\n switch (type) {\n case 'textarea':\n return <Textarea {...commonProps} rows={rows} resize=\"vertical\" />;\n\n case 'select':\n return (\n <Select\n {...field}\n name={`${String(name)}_${Math.random().toString(36).substring(7)}`}\n isDisabled={disabled}\n placeholder={placeholder}\n options={options}\n styles={getSelectStyles(!!error)}\n className={styles.reactSelect}\n classNamePrefix=\"react-select\"\n isMulti={isMultiSelect}\n inputProps={{\n autoComplete: 'new-password',\n autoCorrect: 'off',\n autoCapitalize: 'off',\n spellCheck: 'false',\n }}\n value={\n isMultiSelect\n ? options.filter(option => field.value?.includes(option.value))\n : options.find(option => option.value === field.value) || null\n }\n onChange={(selectedOption: any) => {\n if (isMultiSelect) {\n const values = selectedOption\n ? selectedOption.map((opt: SelectOption) => opt.value)\n : [];\n field.onChange(values);\n } else {\n field.onChange(selectedOption ? selectedOption.value : '');\n }\n }}\n getOptionLabel={(option: SelectOption) => option.label}\n getOptionValue={(option: SelectOption) => option.value}\n isOptionDisabled={(option: SelectOption) => option.disabled || false}\n \n />\n );\n\n case 'phone': {\n // Clean phone value: remove leading zero after country code\n const cleanPhoneValue = (val: string): string => {\n if (!val) return val;\n // Ensure val is a string to prevent \"match is not a function\" error\n const stringVal = String(val);\n // Check if value starts with common country codes followed by 0\n const match = stringVal.match(/^(\\d{1,4})(0\\d+)$/);\n if (match) {\n return match[1] + match[2].substring(1);\n }\n return stringVal;\n };\n\n const cleanedFieldValue = cleanPhoneValue(field.value || '');\n\n return (\n <div className={`${styles.phoneInputWrapper} ${error ? styles.phoneInputError : ''}`}>\n <PhoneInput\n country={defaultCountry.toLowerCase()}\n value={cleanedFieldValue}\n onChange={(value: string, data: any) => {\n const cleanedValue = cleanPhoneValue(value || '');\n field.onChange(cleanedValue);\n }}\n placeholder={placeholder || 'Nomor telepon'}\n disabled={disabled}\n enableSearch\n disableSearchIcon\n />\n </div>\n );\n }\n\n \n case 'file':\n return (\n <input\n {...field}\n type=\"file\"\n multiple={multiple}\n accept={accept}\n disabled={disabled}\n className={styles.fileInput}\n value={undefined}\n onChange={e => {\n const files = e.target.files;\n field.onChange(multiple ? files : files?.[0]);\n }}\n />\n );\n\n case 'switch':\n return (\n <div className={styles.switchWrapper}>\n <Switch\n {...field}\n checked={field.value || false}\n disabled={disabled}\n onChange={(_, data) => field.onChange(data.checked)}\n />\n </div>\n );\n\n case 'date': {\n return (\n <DatePickerInput\n field={field}\n placeholder={placeholder}\n disabled={disabled}\n appearance={error ? 'outline' : appearance}\n size={size}\n onClick={onClick}\n style={inputStyle}\n max={max ? String(max) : undefined}\n />\n );\n }\n\n case 'radio':\n return (\n <RadioGroup {...field} disabled={disabled} layout={layout ?? 'vertical'}>\n {options.map(option => (\n <Radio\n key={option.value}\n value={option.value}\n label={option.label}\n disabled={option.disabled}\n />\n ))}\n </RadioGroup>\n );\n\n case 'radiobutton':\n return (\n <RadioGroup\n {...field}\n disabled={disabled}\n layout={layout ?? 'horizontal'}\n className={styles.classRadioGroup}\n >\n {options.map(option => (\n <Radio\n key={option.value}\n value={option.value}\n label={option.label}\n disabled={disabled || option.disabled}\n className={styles.classRadio}\n />\n ))}\n </RadioGroup>\n );\n\n case 'checkbox':\n return (\n <Checkbox\n {...field}\n checked={field.value || false}\n disabled={disabled}\n onChange={(_, data) => field.onChange(data.checked)}\n label={label}\n />\n );\n\n case 'number':\n return (\n <Input\n {...commonProps}\n type=\"number\"\n min={min}\n max={max}\n step={step}\n className={styles.inputWithAutocomplete}\n />\n );\n\n case 'time':\n case 'datetime-local':\n return (\n <Input\n {...commonProps}\n type={type}\n min={min}\n max={max}\n className={styles.inputWithAutocomplete}\n />\n );\n\n case 'password':\n return (\n <Input\n {...commonProps}\n type={showPassword ? 'text' : 'password'}\n className={styles.inputWithAutocomplete}\n contentAfter={\n <Button\n appearance=\"transparent\"\n icon={\n showPassword ? (\n <Icon icon=\"fluent:eye-off-24-filled\" />\n ) : (\n <Icon icon=\"fluent:eye-24-filled\" />\n )\n }\n aria-label={showPassword ? 'Hide password' : 'Show password'}\n onClick={() => setShowPassword(!showPassword)}\n tabIndex={-1}\n type=\"button\"\n />\n }\n />\n );\n\n case 'otp': {\n // OTP specific handling\n const setRefs = (el: any) => {\n try {\n if (field.ref) {\n if (typeof field.ref === 'function') field.ref(el);\n else (field.ref as MutableRefObject<any>).current = el;\n }\n } catch {\n /* ignore */\n }\n (inputRef as MutableRefObject<HTMLInputElement | null>).current = el;\n };\n\n const handleChange = (e: any) => {\n const val = e?.target?.value ?? '';\n const numericValue = val.replace(/\\D/g, '');\n\n // Update nilai input langsung\n if (inputRef.current) {\n inputRef.current.value = numericValue;\n }\n\n // Buat event baru dengan nilai numeric\n const numericEvent = {\n ...e,\n target: {\n ...e.target,\n value: numericValue,\n },\n };\n\n field.onChange(numericEvent);\n\n if (autoAdvance && otpIndex && maxLength && numericValue.length >= maxLength) {\n const next = document.querySelector<HTMLInputElement>(\n `[data-otp-index=\"${otpIndex + 1}\"]`,\n );\n if (next) next.focus();\n }\n };\n\n const handleKeyPress = (e: any) => {\n const char = e.key;\n if (\n !/^\\d$/.test(char) &&\n char !== 'Backspace' &&\n char !== 'Delete' &&\n char !== 'Tab' &&\n char !== 'ArrowLeft' &&\n char !== 'ArrowRight'\n ) {\n e.preventDefault();\n }\n };\n\n const handleKeyDown = (e: any) => {\n if (e.key === 'Backspace') {\n const curVal = field.value || '';\n if (!curVal && otpIndex !== null && otpIndex !== undefined) {\n const prevIndex = otpIndex - 1;\n if (prevIndex >= 1) {\n // Set flag before focusing to prevent handleFocus interference\n isBackspaceNavigationRef.current = true;\n const prev = document.querySelector<HTMLInputElement>(\n `[data-otp-index=\"${prevIndex}\"]`,\n );\n if (prev) {\n prev.focus();\n // Flag will be reset in handleFocus after navigation completes\n }\n }\n }\n }\n };\n\n const handleClick = (e: any) => {\n // Prevent clicking on previous inputs - redirect to correct position\n if (otpIndex) {\n // Find the last filled input\n let lastFilledIndex = 0;\n for (let i = 1; i <= 6; i++) {\n const input = document.querySelector<HTMLInputElement>(`[data-otp-index=\"${i}\"]`);\n if (input && input.value) {\n lastFilledIndex = i;\n } else {\n break;\n }\n }\n\n // Determine target index: if all filled, stay on last; otherwise go to first empty\n const targetIndex = lastFilledIndex === 6 ? 6 : lastFilledIndex + 1;\n\n // If user clicks on any input before the target, redirect to target\n if (otpIndex < targetIndex) {\n e.preventDefault();\n const targetInput = document.querySelector<HTMLInputElement>(\n `[data-otp-index=\"${targetIndex}\"]`,\n );\n if (targetInput) {\n targetInput.focus();\n const length = targetInput.value?.length || 0;\n setTimeout(() => {\n targetInput.setSelectionRange(length, length);\n }, 0);\n }\n return;\n }\n }\n\n // If click on current input, ensure cursor is at the end\n if (inputRef.current) {\n const length = inputRef.current.value?.length || 0;\n setTimeout(() => {\n inputRef.current?.setSelectionRange(length, length);\n }, 0);\n }\n };\n\n const handleMouseDown = (e: any) => {\n // Track that user is clicking (not using keyboard navigation)\n isBackspaceNavigationRef.current = false;\n\n // Cegah seleksi teks dengan mouse\n if (field.value) {\n e.preventDefault();\n if (inputRef.current) {\n inputRef.current.focus();\n const length = inputRef.current.value.length;\n inputRef.current.setSelectionRange(length, length);\n }\n }\n };\n\n const handleSelect = (e: any) => {\n // Paksa kursor tetap di akhir\n if (inputRef.current && field.value) {\n const length = inputRef.current.value.length;\n inputRef.current.setSelectionRange(length, length);\n }\n };\n\n const handleFocus = (e: any) => {};\n\n const inputAttrs: any = {};\n if (otpIndex) inputAttrs['data-otp-index'] = otpIndex;\n\n // Default OTP styles\n const otpStyles = {\n height: '57px',\n borderRadius: tokens.borderRadiusXLarge,\n textAlign: 'center' as const,\n ...typographyStyles.title2,\n fontWeight: fontWeight.Medium,\n lineHeight: tokens.lineHeightHero800,\n borderColor: hasError ? sharedColors.Shared_Cranberry_Primary : undefined,\n ...style, // Allow override from props\n };\n\n return (\n <Input\n {...commonProps}\n type=\"tel\"\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onKeyPress={handleKeyPress}\n onClick={handleClick}\n onMouseDown={handleMouseDown}\n onSelect={handleSelect}\n onFocus={handleFocus}\n ref={setRefs}\n style={otpStyles}\n className={styles.otpInput}\n {...inputAttrs}\n />\n );\n }\n\n default:\n return (\n <Input\n {...commonProps}\n type={type}\n onInput={onInput}\n className={styles.inputWithAutocomplete}\n />\n );\n }\n };\n\n const getValidationRules = () => {\n const rules: any = {};\n\n if (required) {\n rules.required = validationRules?.required || 'Field ini wajib diisi';\n }\n\n if (validationRules?.minLength) {\n rules.minLength = validationRules.minLength;\n }\n\n if (validationRules?.maxLength) {\n rules.maxLength = validationRules.maxLength;\n }\n\n if (validationRules?.pattern) {\n rules.pattern = validationRules.pattern;\n }\n\n if (validationRules?.min) {\n rules.min = validationRules.min;\n }\n\n if (validationRules?.max) {\n rules.max = validationRules.max;\n }\n\n if (validationRules?.validate) {\n rules.validate = validationRules.validate;\n }\n\n // Add default email validation\n if (type === 'email') {\n rules.pattern = {\n value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i,\n message: 'Email tidak valid',\n };\n }\n\n // Add validation for emailOrPhone type - khusus email atau nomor HP\n if (type === 'emailOrPhone') {\n rules.validate = (value: any) => {\n if (required && !value) {\n return 'Email atau nomor HP wajib diisi';\n }\n\n const stringValue = typeof value === 'string' ? value : '';\n\n if (!stringValue) return true;\n\n const detectedType = detectEmailOrPhoneStrict(stringValue);\n\n if (detectedType === 'email') {\n // Validate email format\n if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i.test(stringValue)) {\n return 'Format email tidak valid';\n }\n } else if (detectedType === 'phone') {\n // Validate phone number (must start with + and contain only digits after)\n if (!stringValue.startsWith('+')) {\n return 'Nomor HP harus dalam format internasional (contoh: +628123456789)';\n }\n const phoneDigits = stringValue.substring(1);\n if (!/^\\d+$/.test(phoneDigits)) {\n return 'Nomor HP hanya boleh berisi angka setelah +';\n }\n if (phoneDigits.length < 10) {\n return 'Nomor HP minimal 10 digit';\n }\n } else {\n return 'Masukkan email atau nomor HP yang valid';\n }\n\n return true;\n };\n }\n\n // Add validation for identity type (can be email, phone, or other ID)\n if (type === 'identity') {\n rules.validate = (value: any) => {\n if (required && !value) {\n return 'Field ini wajib diisi';\n }\n\n const stringValue = typeof value === 'string' ? value : value?.phoneNumber || '';\n\n if (!stringValue) return true;\n\n const detectedType = detectIdentityType(stringValue);\n\n // Validate based on detected type\n if (detectedType === 'email') {\n // Validate email format\n if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i.test(stringValue)) {\n return 'Format email tidak valid';\n }\n } else if (detectedType === 'phone') {\n // Validate phone number (must start with + and contain only digits after)\n if (!stringValue.startsWith('+')) {\n return 'Nomor telepon harus diawali dengan +';\n }\n const phoneDigits = stringValue.substring(1); // Remove + prefix\n if (!/^\\d+$/.test(phoneDigits)) {\n return 'Nomor telepon hanya boleh berisi angka setelah +';\n }\n }\n // else if (detectedType === 'id') {\n // // Validate ID (only digits for KTP/SIM/Passport numbers)\n // if (!/^\\d+$/.test(stringValue)) {\n // return 'Nomor identitas hanya boleh berisi angka';\n // }\n // }\n\n return true;\n };\n }\n\n // Add default phone validation\n if (type === 'phone') {\n rules.validate = (value: string) => {\n if (required && !value) {\n return 'Nomor telepon wajib diisi';\n }\n // react-phone-number-input already handles validation\n return true;\n };\n }\n\n \n\n return rules;\n };\n\n return (\n <Controller\n name={name}\n control={control}\n rules={getValidationRules()}\n render={({ field, fieldState: { error } }) => (\n <Field\n className={`${styles.field} ${className || ''}`}\n validationMessage={error?.message}\n validationState={error ? 'error' : 'none'}\n >\n {label && type !== 'checkbox' && <Label required={required}>{label}</Label>}\n\n {renderInput(field, error?.message)}\n\n {helperText && !error && (\n <Text size={200} style={{ textAlign: 'left' }} className={styles.helperText}>\n {helperText}\n </Text>\n )}\n </Field>\n )}\n />\n );\n}\n\nexport default InputDynamic;\n\n","import { CountryCode } from './types';\n\n// Default country codes\nexport const DEFAULT_COUNTRY_CODES: CountryCode[] = [\n { code: 'AF', name: 'Afghanistan', dialCode: '+93', passportRegex: '^[A-Z][0-9]{7}$' },\n { code: 'AL', name: 'Albania', dialCode: '+355', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'DZ', name: 'Algeria', dialCode: '+213', passportRegex: '^[0-9]{9}$' },\n { code: 'AS', name: 'American Samoa', dialCode: '+1', passportRegex: '^[0-9]{9}$' },\n { code: 'AD', name: 'Andorra', dialCode: '+376', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'AO', name: 'Angola', dialCode: '+244', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'AI', name: 'Anguilla', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'AQ', name: 'Antarctica', dialCode: '+672', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'AG', name: 'Antigua and Barbuda', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'AR', name: 'Argentina', dialCode: '+54', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\n { code: 'AM', name: 'Armenia', dialCode: '+374', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'AW', name: 'Aruba', dialCode: '+297', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'AU', name: 'Australia', dialCode: '+61', passportRegex: '^[A-Z][0-9]{7}$' },\n { code: 'AT', name: 'Austria', dialCode: '+43', passportRegex: '^[A-Z0-9]{8}$' },\n { code: 'AZ', name: 'Azerbaijan', dialCode: '+994', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'BS', name: 'Bahamas', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BH', name: 'Bahrain', dialCode: '+973', passportRegex: '^[A-Z][0-9]{7}$' },\n { code: 'BD', name: 'Bangladesh', dialCode: '+880', passportRegex: '^[A-Z][0-9]{7}$' },\n { code: 'BB', name: 'Barbados', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BY', name: 'Belarus', dialCode: '+375', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BE', name: 'Belgium', dialCode: '+32', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BZ', name: 'Belize', dialCode: '+501', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BJ', name: 'Benin', dialCode: '+229', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'BM', name: 'Bermuda', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'BT', name: 'Bhutan', dialCode: '+975', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BO', name: 'Bolivia', dialCode: '+591', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n {\n code: 'BA',\n name: 'Bosnia and Herzegovina',\n dialCode: '+387',\n passportRegex: '^[A-Z]{2}[0-9]{6}$',\n },\n { code: 'BW', name: 'Botswana', dialCode: '+267', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BR', name: 'Brazil', dialCode: '+55', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'BN', name: 'Brunei', dialCode: '+673', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'BG', name: 'Bulgaria', dialCode: '+359', passportRegex: '^[0-9]{9}$' },\n { code: 'BF', name: 'Burkina Faso', dialCode: '+226', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'BI', name: 'Burundi', dialCode: '+257', passportRegex: '^[A-Z0-9]{6,10}$' },\n\n { code: 'KH', name: 'Cambodia', dialCode: '+855', passportRegex: '^[A-Z][0-9]{7}$' },\n { code: 'CM', name: 'Cameroon', dialCode: '+237', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'CA', name: 'Canada', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'CV', name: 'Cape Verde', dialCode: '+238', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'KY', name: 'Cayman Islands', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\n {\n code: 'CF',\n name: 'Central African Republic',\n dialCode: '+236',\n passportRegex: '^[A-Z0-9]{6,10}$',\n },\n { code: 'TD', name: 'Chad', dialCode: '+235', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'CL', name: 'Chile', dialCode: '+56', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'CN', name: 'China', dialCode: '+86', passportRegex: '^[0-9]{9}$' },\n { code: 'CO', name: 'Colombia', dialCode: '+57', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\n { code: 'KM', name: 'Comoros', dialCode: '+269', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'CG', name: 'Congo', dialCode: '+242', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'CR', name: 'Costa Rica', dialCode: '+506', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'HR', name: 'Croatia', dialCode: '+385', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\n { code: 'CU', name: 'Cuba', dialCode: '+53', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'CY', name: 'Cyprus', dialCode: '+357', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'CZ', name: 'Czech Republic', dialCode: '+420', passportRegex: '^[0-9]{8}$' },\n\n { code: 'DK', name: 'Denmark', dialCode: '+45', passportRegex: '^[A-Z0-9]{9}$' },\n { code: 'DJ', name: 'Djibouti', dialCode: '+253', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'DM', name: 'Dominica', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'DO', name: 'Dominican Republic', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\n\n { code: 'EC', name: 'Ecuador', dialCode: '+593', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'EG', name: 'Egypt', dialCode: '+20', passportRegex: '^[A-Z][0-9]{7}$' },\n { code: 'SV', name: 'El Salvador', dialCode: '+503', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'GQ', name: 'Equatorial Guinea', dialCode: '+240', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'ER', name: 'Eritrea', dialCode: '+291', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'EE', name: 'Estonia', dialCode: '+372', passportRegex: '^[A-Z0-9]{8}$' },\n { code: 'SZ', name: 'Eswatini', dialCode: '+268', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'ET', name: 'Ethiopia', dialCode: '+251', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n\n { code: 'FJ', name: 'Fiji', dialCode: '+679', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'FI', name: 'Finland', dialCode: '+358', passportRegex: '^[A-Z0-9]{9}$' },\n { code: 'FR', name: 'France', dialCode: '+33', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'GA', name: 'Gabon', dialCode: '+241', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'GM', name: 'Gambia', dialCode: '+220', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'GE', name: 'Georgia', dialCode: '+995', passportRegex: '^[A-Z0-9]{8}$' },\n { code: 'DE', name: 'Germany', dialCode: '+49', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'GH', name: 'Ghana', dialCode: '+233', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'GR', name: 'Greece', dialCode: '+30', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'GD', name: 'Grenada', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'GT', name: 'Guatemala', dialCode: '+502', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\n { code: 'GN', name: 'Guinea', dialCode: '+224', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'GW', name: 'Guinea-Bissau', dialCode: '+245', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'GY', name: 'Guyana', dialCode: '+592', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'HT', name: 'Haiti', dialCode: '+509', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'HN', name: 'Honduras', dialCode: '+504', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'HK', name: 'Hong Kong', dialCode: '+852', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'HU', name: 'Hungary', dialCode: '+36', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n\n { code: 'IS', name: 'Iceland', dialCode: '+354', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'IN', name: 'India', dialCode: '+91', passportRegex: '^[A-Z][0-9]{7}$' },\n { code: 'ID', name: 'Indonesia', dialCode: '+62', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'IR', name: 'Iran', dialCode: '+98', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'IQ', name: 'Iraq', dialCode: '+964', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'IE', name: 'Ireland', dialCode: '+353', passportRegex: '^[A-Z0-9]{2}[0-9]{7}$' },\n { code: 'IL', name: 'Israel', dialCode: '+972', passportRegex: '^[0-9]{8,9}$' },\n { code: 'IT', name: 'Italy', dialCode: '+39', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'JM', name: 'Jamaica', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'JP', name: 'Japan', dialCode: '+81', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'JO', name: 'Jordan', dialCode: '+962', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'KZ', name: 'Kazakhstan', dialCode: '+7', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'KE', name: 'Kenya', dialCode: '+254', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'KI', name: 'Kiribati', dialCode: '+686', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'KP', name: 'North Korea', dialCode: '+850', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'KR', name: 'South Korea', dialCode: '+82', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\n { code: 'KW', name: 'Kuwait', dialCode: '+965', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'KG', name: 'Kyrgyzstan', dialCode: '+996', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'LA', name: 'Laos', dialCode: '+856', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'LV', name: 'Latvia', dialCode: '+371', passportRegex: '^[A-Z0-9]{8}$' },\n { code: 'LB', name: 'Lebanon', dialCode: '+961', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'LS', name: 'Lesotho', dialCode: '+266', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'LR', name: 'Liberia', dialCode: '+231', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'LY', name: 'Libya', dialCode: '+218', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'LI', name: 'Liechtenstein', dialCode: '+423', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'LT', name: 'Lithuania', dialCode: '+370', passportRegex: '^[A-Z0-9]{8}$' },\n { code: 'LU', name: 'Luxembourg', dialCode: '+352', passportRegex: '^[A-Z0-9]{8}$' },\n\n { code: 'MO', name: 'Macau', dialCode: '+853', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'MG', name: 'Madagascar', dialCode: '+261', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'MW', name: 'Malawi', dialCode: '+265', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'MY', name: 'Malaysia', dialCode: '+60', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\n { code: 'MV', name: 'Maldives', dialCode: '+960', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'ML', name: 'Mali', dialCode: '+223', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'MT', name: 'Malta', dialCode: '+356', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'MH', name: 'Marshall Islands', dialCode: '+692', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'MQ', name: 'Martinique', dialCode: '+596', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'MR', name: 'Mauritania', dialCode: '+222', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'MU', name: 'Mauritius', dialCode: '+230', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'MX', name: 'Mexico', dialCode: '+52', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\n { code: 'FM', name: 'Micronesia', dialCode: '+691', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'MD', name: 'Moldova', dialCode: '+373', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'MC', name: 'Monaco', dialCode: '+377', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'MN', name: 'Mongolia', dialCode: '+976', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'ME', name: 'Montenegro', dialCode: '+382', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'MS', name: 'Montserrat', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'MA', name: 'Morocco', dialCode: '+212', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'MZ', name: 'Mozambique', dialCode: '+258', passportRegex: '^[A-Z0-9]{6,10}$' },\n\n { code: 'MM', name: 'Myanmar', dialCode: '+95', passportRegex: '^[A-Z]{1}[0-9]{6,7}$' },\n\n { code: 'NA', name: 'Namibia', dialCode: '+264', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'NR', name: 'Nauru', dialCode: '+674', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'NP', name: 'Nepal', dialCode: '+977', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'NL', name: 'Netherlands', dialCode: '+31', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'NC', name: 'New Caledonia', dialCode: '+687', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'NZ', name: 'New Zealand', dialCode: '+64', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'NI', name: 'Nicaragua', dialCode: '+505', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\n { code: 'NE', name: 'Niger', dialCode: '+227', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'NG', name: 'Nigeria', dialCode: '+234', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'NO', name: 'Norway', dialCode: '+47', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'OM', name: 'Oman', dialCode: '+968', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n\n { code: 'PK', name: 'Pakistan', dialCode: '+92', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'PW', name: 'Palau', dialCode: '+680', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'PS', name: 'Palestine', dialCode: '+970', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'PA', name: 'Panama', dialCode: '+507', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'PG', name: 'Papua New Guinea', dialCode: '+675', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'PY', name: 'Paraguay', dialCode: '+595', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'PE', name: 'Peru', dialCode: '+51', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'PH', name: 'Philippines', dialCode: '+63', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'PL', name: 'Poland', dialCode: '+48', passportRegex: '^[A-Z0-9]{2}[0-9]{7}$' },\n { code: 'PT', name: 'Portugal', dialCode: '+351', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n\n { code: 'RO', name: 'Romania', dialCode: '+40', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'RU', name: 'Russia', dialCode: '+7', passportRegex: '^[0-9]{9}$' },\n { code: 'RW', name: 'Rwanda', dialCode: '+250', passportRegex: '^[A-Z0-9]{6,10}$' },\n\n {\n code: 'KN',\n name: 'Saint Kitts and Nevis',\n dialCode: '+1',\n passportRegex: '^[A-Z]{2}[0-9]{7}$',\n },\n { code: 'LC', name: 'Saint Lucia', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n {\n code: 'VC',\n name: 'Saint Vincent and the Grenadines',\n dialCode: '+1',\n passportRegex: '^[A-Z]{2}[0-9]{7}$',\n },\n\n { code: 'WS', name: 'Samoa', dialCode: '+685', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'SM', name: 'San Marino', dialCode: '+378', passportRegex: '^[A-Z0-9]{6,10}$' },\n {\n code: 'ST',\n name: 'Sao Tome and Principe',\n dialCode: '+239',\n passportRegex: '^[A-Z0-9]{6,10}$',\n },\n\n { code: 'SA', name: 'Saudi Arabia', dialCode: '+966', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'SN', name: 'Senegal', dialCode: '+221', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'RS', name: 'Serbia', dialCode: '+381', passportRegex: '^[A-Z0-9]{9}$' },\n { code: 'SC', name: 'Seychelles', dialCode: '+248', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'SL', name: 'Sierra Leone', dialCode: '+232', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'SG', name: 'Singapore', dialCode: '+65', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'SK', name: 'Slovakia', dialCode: '+421', passportRegex: '^[0-9]{9}$' },\n { code: 'SI', name: 'Slovenia', dialCode: '+386', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'SB', name: 'Solomon Islands', dialCode: '+677', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'SO', name: 'Somalia', dialCode: '+252', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'ZA', name: 'South Africa', dialCode: '+27', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n { code: 'ES', name: 'Spain', dialCode: '+34', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\n { code: 'LK', name: 'Sri Lanka', dialCode: '+94', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'SD', name: 'Sudan', dialCode: '+249', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'SR', name: 'Suriname', dialCode: '+597', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'SE', name: 'Sweden', dialCode: '+46', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'CH', name: 'Switzerland', dialCode: '+41', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'SY', name: 'Syria', dialCode: '+963', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n\n { code: 'TW', name: 'Taiwan', dialCode: '+886', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\n { code: 'TJ', name: 'Tajikistan', dialCode: '+992', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'TZ', name: 'Tanzania', dialCode: '+255', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'TH', name: 'Thailand', dialCode: '+66', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'TL', name: 'Timor-Leste', dialCode: '+670', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'TG', name: 'Togo', dialCode: '+228', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'TO', name: 'Tonga', dialCode: '+676', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'TT', name: 'Trinidad and Tobago', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'TN', name: 'Tunisia', dialCode: '+216', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'TR', name: 'Turkey', dialCode: '+90', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n { code: 'TM', name: 'Turkmenistan', dialCode: '+993', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n {\n code: 'TC',\n name: 'Turks and Caicos Islands',\n dialCode: '+1',\n passportRegex: '^[A-Z0-9]{6,10}$',\n },\n { code: 'TV', name: 'Tuvalu', dialCode: '+688', passportRegex: '^[A-Z0-9]{6,10}$' },\n\n { code: 'UG', name: 'Uganda', dialCode: '+256', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'UA', name: 'Ukraine', dialCode: '+380', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\n {\n code: 'AE',\n name: 'United Arab Emirates',\n dialCode: '+971',\n passportRegex: '^[A-Z]{1}[0-9]{7}$',\n },\n { code: 'GB', name: 'United Kingdom', dialCode: '+44', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'US', name: 'United States', dialCode: '+1', passportRegex: '^[0-9]{9}$' },\n { code: 'UY', name: 'Uruguay', dialCode: '+598', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\n { code: 'UZ', name: 'Uzbekistan', dialCode: '+998', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n\n { code: 'VU', name: 'Vanuatu', dialCode: '+678', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'VA', name: 'Vatican City', dialCode: '+379', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'VE', name: 'Venezuela', dialCode: '+58', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\n { code: 'VN', name: 'Vietnam', dialCode: '+84', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n\n { code: 'YE', name: 'Yemen', dialCode: '+967', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\n\n { code: 'ZM', name: 'Zambia', dialCode: '+260', passportRegex: '^[A-Z0-9]{6,10}$' },\n { code: 'ZW', name: 'Zimbabwe', dialCode: '+263', passportRegex: '^[A-Z0-9]{6,10}$' },\n];\n","import { Language } from '../../types/globalTypes';\nimport { CardTicketSearchLabels } from './CardTicketSearch.types';\n\nexport const DEFAULT_LABELS: Record<Language, CardTicketSearchLabels> = {\n id: {\n fromLabel: 'Dari',\n toLabel: 'Ke',\n departureDateLabel: 'Tanggal Berangkat',\n returnDateLabel: 'Tanggal Pulang',\n serviceClassLabel: 'Kelas Layanan',\n typeOfServiceLabel: 'Jenis Layanan',\n passengerLabel: 'Penumpang',\n roundTripLabel: 'Pulang Pergi',\n searchButton: 'Cari Tiket',\n placeholderPort: 'Pilih Pelabuhan Asal',\n placeholderDestinationPort: 'Pilih Pelabuhan Tujuan',\n placeholderDepartureDate: 'Pilih Tanggal Keberangkatan',\n placeholderReturnDate: 'Pilih Tanggal Kepulangan',\n placeholderTypeClass: 'Pilih Kelas Layanan',\n placeholderTypeService: 'Pilih Jenis Layanan',\n placeholderPassenger: 'Pilih Jumlah Penumpang',\n },\n en: {\n fromLabel: 'From',\n toLabel: 'To',\n departureDateLabel: 'Departure Date',\n returnDateLabel: 'Return Date',\n serviceClassLabel: 'Service Class',\n typeOfServiceLabel: 'Service Type',\n passengerLabel: 'Passenger',\n roundTripLabel: 'Round Trip',\n searchButton: 'Search Ticket',\n placeholderPort: 'Select Origin Port',\n placeholderDestinationPort: 'Select Destination Port',\n placeholderDepartureDate: 'Select Departure Date',\n placeholderReturnDate: 'Select Return Date',\n placeholderTypeClass: 'Select Service Class',\n placeholderTypeService: 'Select Service Type',\n placeholderPassenger: 'Select Number of Passengers',\n },\n};\n\nexport const DEFAULT_MENU_ITEMS = [\n {\n id: 'ferry',\n label: 'Ferry',\n logo: '/assets/images/icons/ferry.svg',\n description: 'ASDP Ferry Crossing Service',\n },\n {\n id: 'ifcs',\n label: 'IFCS',\n logo: '/assets/logo/asdp-default.svg',\n description: 'Integrated Ferry Control System',\n },\n {\n id: 'skpt',\n label: 'SKPT',\n logo: '/assets/logo/asdp-default.svg',\n description: 'Integrated Passenger Ticketing System',\n },\n {\n id: 'hotel',\n label: 'Hotel',\n logo: '/assets/images/icons/hotel.svg',\n description: 'Hotel Booking Service',\n },\n {\n id: 'other',\n label: 'Other',\n logo: '/assets/images/icons/other.svg',\n description: 'Other Services',\n },\n];\n","import React from 'react';\nimport { Button, Divider, makeStyles, tokens } from '@fluentui/react-components';\nimport { Icon } from '@iconify/react/dist/iconify.js';\nimport { Col, Row, Visible } from 'react-grid-system';\nimport { useForm, useWatch } from 'react-hook-form';\n\nimport { BackgroundTicketCard, BackgroundTicketCardVertical } from '../BackgroundTicketCard';\nimport { CardServiceMenu, ServiceId } from '../CardServiceMenu';\nimport { InputDynamic } from '../InputDynamic';\n\nimport {\n CardTicketSearchFormData,\n CardTicketSearchProps,\n} from './CardTicketSearch.types';\nimport { DEFAULT_LABELS } from './CardTicketSearch.constants';\nimport { extendedTokens } from '../../constants';\nimport { Language } from '../../types/globalTypes';\n\n\nconst useStyles = makeStyles({\n card: {\n position: 'relative',\n width: '100%',\n padding: 0,\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n padding: '0',\n },\n [`@media (min-width: ${extendedTokens.breakpointMd})`]: {\n scale: '1',\n },\n marginTop: '5rem',\n },\n svgBackground: {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n zIndex: 0,\n },\n formField: {\n padding: '16px',\n display: 'flex',\n flexDirection: 'column',\n gap: '8px',\n borderRadius: tokens.borderRadiusXLarge,\n border: '1px solid ' + tokens.colorNeutralStroke1,\n height: '100%',\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n padding: '20px',\n borderRadius: tokens.borderRadiusXLarge,\n },\n },\n deviderButton: {\n display: 'flex',\n justifyContent: 'center',\n position: 'absolute',\n left: '18px',\n bottom: '-16px',\n width: '90%',\n },\n buttonSwitch: {\n background: tokens.colorNeutralBackground1,\n boxShadow: `0 1px 2px 0 ${tokens.colorNeutralShadowKey}, 0 0 2px 0 ${tokens.colorNeutralShadowAmbient}`,\n },\n switchIcon: {\n display: 'inline-flex',\n transition: 'transform 0.3s ease',\n },\n switchIconRotate: {\n transform: 'rotate(180deg)',\n },\n searchButton: {\n width: '100%',\n borderRadius: tokens.borderRadiusCircular,\n },\n serviceMenuCard: {\n [`@media (min-width: ${extendedTokens.breakpointMd})`]: {\n margin: tokens.spacingVerticalM,\n },\n [`@media (min-width: ${extendedTokens.breakpointLg})`]: {\n margin: tokens.spacingVerticalL,\n },\n [`@media (min-width: ${extendedTokens.breakpointXl})`]: {\n margin: tokens.spacingVerticalXXXL,\n maxWidth: '70%',\n },\n },\n ticketSearchRow: {\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n padding: '20px !important',\n },\n },\n formContainerCol: {\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n paddingLeft: '20px !important',\n paddingRight: '20px !important',\n marginBottom: '1rem',\n marginTop: '8rem',\n },\n },\n serviceCol: {\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n paddingLeft: '15px !important',\n paddingRight: '15px !important',\n marginTop: '16px',\n },\n },\n formInnerRow: {\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n margin: '0 !important',\n },\n },\n formFieldRow: {\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n gap: '12px !important',\n },\n },\n});\n\nexport const CardTicketSearch: React.FC<CardTicketSearchProps> = ({\n language = 'id',\n from = '',\n to = '',\n startDate = '',\n endDate = '',\n roundTrip = false,\n serviceClass = '',\n typeOfService = '',\n passenger = '',\n toDisabled = false,\n endDateDisabled = false,\n serviceClassDisabled = false,\n typeOfServiceDisabled = false,\n switchDisabled = false,\n roundTripDisabled = false,\n submitDisabled = false,\n onFromClick,\n onToClick,\n onFromChange,\n onStartDateClick,\n onEndDateClick,\n onServiceClassClick,\n onTypeOfServiceClick,\n onPassengerClick,\n onSwitchClick,\n onRoundTripChange,\n onSubmit,\n activeServiceId = 'ferry',\n labels: customLabels,\n className,\n isRotating = false,\n showPassengerField = false,\n showRoundTrip = true,\n}) => {\n const styles = useStyles();\n \n // Merge default labels with custom labels\n const labels = React.useMemo(\n () => ({ ...DEFAULT_LABELS[language as Language], ...customLabels }),\n [language, customLabels]\n );\n const { control, setValue, getValues, handleSubmit } = useForm<CardTicketSearchFormData>({\n defaultValues: {\n from,\n to,\n startDate,\n roundTrip,\n endDate,\n serviceClass,\n typeOfService,\n passenger,\n },\n });\n\n const roundTripValue = useWatch({\n control,\n name: 'roundTrip',\n defaultValue: roundTrip,\n });\n\n // Update form values when props change\n React.useEffect(() => {\n setValue('from', from);\n setValue('to', to);\n setValue('startDate', startDate);\n setValue('endDate', endDate);\n setValue('roundTrip', roundTrip);\n setValue('serviceClass', serviceClass);\n setValue('typeOfService', typeOfService);\n setValue('passenger', passenger);\n }, [from, to, startDate, endDate, roundTrip, serviceClass, typeOfService, passenger, setValue]);\n\n // Handle round trip change\n React.useEffect(() => {\n if (onRoundTripChange) {\n onRoundTripChange(roundTripValue);\n }\n }, [roundTripValue, onRoundTripChange]);\n\n const handleFormSubmit = (data: CardTicketSearchFormData) => {\n if (onSubmit) {\n onSubmit(data);\n }\n };\n\n const handleFromChange = () => {\n setValue('to', '');\n if (onFromChange) {\n onFromChange();\n }\n };\n\n return (\n <div className={`${styles.card} ${className || ''}`}>\n <Visible xl xxl xxxl>\n <BackgroundTicketCard className={styles.svgBackground} />\n </Visible>\n <Visible xs sm md lg>\n <BackgroundTicketCardVertical className={styles.svgBackground} />\n </Visible>\n <Row\n style={{\n paddingTop: '1rem',\n paddingBottom: '2rem',\n }}\n className={styles.ticketSearchRow}\n >\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={3}\n xxl={3}\n xxxl={3}\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n marginBottom: '0px',\n }}\n >\n <CardServiceMenu\n className={styles.serviceMenuCard}\n activeServiceId={activeServiceId}\n language={language as Language}\n />\n </Col>\n <Col xs={12} sm={12} md={12} lg={12} xl={0.4} xxl={0.4} xxxl={0.4} />\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={8.6}\n xxl={8.6}\n xxxl={8.6}\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'column',\n }}\n className={styles.formContainerCol}\n >\n <form onSubmit={handleSubmit(handleFormSubmit)}>\n <Row style={{ width: '100%' }} className={styles.formInnerRow}>\n <Col xs={12} sm={12} lg={12} xl={6} xxl={6} xxxl={6}>\n <Row style={{ gap: '16px' }} className={styles.formFieldRow}>\n <Col xs={12} sm={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <div className={styles.formField}>\n <Row>\n <Col xs={12} sm={12} md={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <InputDynamic\n name=\"from\"\n label={labels.fromLabel}\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:vehicle-ship-16-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder={labels.placeholderPort}\n onClick={onFromClick}\n onChange={handleFromChange}\n validationRules={{\n required: 'Pelabuhan asal wajib diisi',\n }}\n required\n />\n <div className={styles.deviderButton}>\n <Divider />{' '}\n <Button\n onClick={onSwitchClick}\n className={styles.buttonSwitch}\n shape=\"circular\"\n appearance=\"secondary\"\n size=\"large\"\n disabled={switchDisabled}\n icon={\n <div\n className={`${styles.switchIcon} ${isRotating ? styles.switchIconRotate : ''}`}\n >\n <img\n src=\"/assets/images/icons/switch.svg\"\n alt=\"Switch\"\n width={26}\n height={26}\n />\n </div>\n }\n />\n </div>\n </Col>\n <Col xs={12} sm={12} md={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <InputDynamic\n name=\"to\"\n label={labels.toLabel}\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:location-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n disabled={toDisabled}\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder={labels.placeholderDestinationPort}\n onClick={onToClick}\n validationRules={{\n required: 'Pelabuhan tujuan wajib diisi',\n }}\n required\n />\n </Col>\n </Row>\n </div>\n </Col>\n <Col xs={12} sm={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <div className={styles.formField}>\n <Row style={{ height: '100%' }}>\n <Col xs={7} sm={7} md={7} lg={7} xl={7} xxl={7} xxxl={7}>\n <div style={{ position: 'relative', zIndex: 2 }}>\n <InputDynamic\n name=\"startDate\"\n label={labels.departureDateLabel}\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:calendar-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder={labels.placeholderDepartureDate}\n onClick={onStartDateClick}\n required\n validationRules={{\n required: 'Tanggal Berangkat wajib diisi',\n }}\n />\n </div>\n </Col>\n {showRoundTrip && <Col\n xs={5}\n sm={5}\n md={5}\n lg={5}\n xl={5}\n xxl={5}\n xxxl={5}\n style={{ display: 'flex', justifyContent: 'end' }}\n >\n <InputDynamic\n name=\"roundTrip\"\n label={labels.roundTripLabel}\n control={control}\n type=\"switch\"\n disabled={roundTripDisabled}\n size=\"medium\"\n />\n </Col>}\n \n {roundTripValue && (\n <Col xs={12} sm={12} md={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <InputDynamic\n name=\"endDate\"\n label={labels.returnDateLabel}\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:calendar-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder={labels.placeholderReturnDate}\n onClick={onEndDateClick}\n disabled={endDateDisabled}\n style={{ borderColor: 'transparent' }}\n required={roundTripValue}\n validationRules={{\n required: 'Tanggal Pulang wajib diisi',\n }}\n />\n </Col>\n )}\n </Row>\n </div>\n </Col>\n </Row>\n </Col>\n <Visible xl xxl xxxl>\n <Col\n xs={12}\n sm={12}\n lg={12}\n xl={1}\n xxl={1}\n xxxl={1}\n style={{ display: 'flex', alignItems: 'center', justifyContent: 'center' }}\n >\n <Divider vertical style={{ height: '100%' }} />\n </Col>\n </Visible>\n <Col\n xs={12}\n sm={12}\n lg={12}\n xl={5}\n xxl={5}\n xxxl={5}\n style={{\n paddingRight: '2rem',\n paddingLeft: '8px',\n }}\n className={styles.serviceCol}\n >\n <Row style={{ height: '100%', gap: '16px' }}>\n <Col xs={12} sm={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <div className={styles.formField}>\n <Row style={{ height: '100%', gap: '16px' }}>\n <Col xs={12} sm={12} md={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <InputDynamic\n name=\"serviceClass\"\n label={labels.serviceClassLabel}\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:ribbon-star-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder={labels.placeholderTypeClass}\n onClick={onServiceClassClick}\n required\n disabled={serviceClassDisabled}\n />\n </Col>\n <Col xs={12} sm={12} md={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <InputDynamic\n name=\"typeOfService\"\n label={labels.typeOfServiceLabel}\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:apps-list-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder={labels.placeholderTypeService}\n onClick={onTypeOfServiceClick}\n required\n disabled={typeOfServiceDisabled}\n />\n </Col>\n {showPassengerField && (\n <Col xs={12} sm={12} md={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <InputDynamic\n required\n name=\"passenger\"\n label={labels.passengerLabel}\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:people-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder={labels.placeholderPassenger}\n onClick={onPassengerClick}\n />\n </Col>\n )}\n </Row>\n </div>\n </Col>\n <Col xs={12} sm={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <Button\n className={styles.searchButton}\n appearance=\"primary\"\n size=\"large\"\n type=\"submit\"\n icon={<Icon icon=\"fluent:vehicle-ship-20-filled\" />}\n disabled={submitDisabled}\n >\n {labels.searchButton}\n </Button>\n </Col>\n </Row>\n </Col>\n </Row>\n </form>\n </Col>\n </Row>\n </div>\n );\n};\n\nexport default CardTicketSearch;\n","export const DEFAULT_LABELS = {\n originHarbor: 'Pelabuhan Keberangkatan',\n destinationHarbor: 'Pelabuhan Tujuan',\n departureDate: 'Tanggal Keberangkatan',\n serviceClass: 'Kelas Layanan',\n typeOfService: 'Jenis Layanan',\n totalPassengers: 'Jumlah Penumpang',\n changeSearchButton: 'Ganti Pencarian',\n};\n","import React from 'react';\nimport {\n Button,\n Card,\n Field,\n Input,\n Label,\n makeStyles,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport { Row, Col, Visible } from 'react-grid-system';\nimport { CardTicketSearchSummaryProps } from './CardTicketSearchSummary.types';\nimport { DEFAULT_LABELS } from './CardTicketSearchSummary.constants';\nimport { extendedTokens } from '../../constants';\nimport { useWindowSize } from '../../hooks/useWindowSize';\n\nconst useStyles = makeStyles({\n cardSearchTicket: {\n borderRadius: '32px',\n // borderBottomLeftRadius: '0',\n // borderBottomRightRadius: '0',\n padding: '3rem',\n paddingBottom: '8rem',\n position: 'relative',\n overflow: 'visible',\n // boxShadow: '0 0 2px rgba(0,0,0,0.12), 0 -8px 16px rgba(0,0,0,0.14)',\n // boxShadow: 'none',\n borderBottom: 'none',\n [`@media (max-width: ${extendedTokens.breakpointLg})`]: {\n padding: '2rem',\n paddingBottom: '6rem',\n },\n [`@media (max-width: ${extendedTokens.breakpointMd})`]: {\n padding: '1rem',\n paddingBottom: '5rem',\n },\n\n },\n paddingResponsive: {\n [`@media (max-width: ${extendedTokens.breakpointXxxl})`]: {\n padding: '5px',\n },\n },\n formField: {\n padding: '12px',\n display: 'flex',\n flexDirection: 'column',\n gap: '0px',\n borderRadius: tokens.borderRadiusXLarge,\n border: '1px solid ' + tokens.colorNeutralStroke1,\n height: '100%',\n },\n field: {\n display: 'flex',\n flexDirection: 'column',\n gap: tokens.spacingVerticalXS,\n },\n buttonSwitch: {\n background: tokens.colorNeutralBackground1,\n boxShadow: `0 1px 2px 0 ${tokens.colorNeutralShadowKey}, 0 0 2px 0 ${tokens.colorNeutralShadowAmbient}`,\n },\n buttonSearchContainer: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n height: '100%',\n width: '100%',\n },\n filterButtonContainer: {\n marginTop: '1rem',\n display: 'flex',\n gap: '1rem',\n // flexWrap: 'wrap',\n },\n circular: {\n position: 'absolute',\n width: 'clamp(40px, 7vw, 90px)',\n height: 'clamp(40px, 7vw, 90px)',\n borderRadius: '50% 50% 0 0',\n backgroundColor: tokens.colorNeutralBackground1Hover,\n bottom: '-10px',\n boxShadow: 'inset 0 2px 0px rgba(0, 0, 0, 0.1)',\n },\n});\n\nexport const CardTicketSearchSummary: React.FC<CardTicketSearchSummaryProps> = ({\n originHarbor,\n destinationHarbor,\n departureDate,\n serviceClass,\n typeOfService,\n totalPassengers,\n onChangeSearch,\n labels,\n showSwapButton = false,\n children,\n}) => {\n const styles = useStyles();\n const mergedLabels = { ...DEFAULT_LABELS, ...labels };\n const {width} = useWindowSize();\n const getCircularConfig = () => {\n if (width <= parseInt(extendedTokens.breakpointXs))\n return { count: 4, spacing: 65, size: 30, height: 30 };\n if (width <= parseInt(extendedTokens.breakpointSm))\n return { count: 5, spacing: 71, size: 40, height: 40 };\n if (width <= parseInt(extendedTokens.breakpointMd))\n return { count: 8, spacing: 87, size: 50, height: 50 };\n if (width <= parseInt(extendedTokens.breakpointLg))\n return { count: 9, spacing: 100, size: 60, height: 60 };\n if (width <= parseInt(extendedTokens.breakpointXl))\n return { count: 8, spacing: 115, size: 70, height: 70 };\n if (width <= parseInt(extendedTokens.breakpointXxl))\n return { count: 8, spacing: 136, size: 90, height: 90 };\n if (width <= parseInt(extendedTokens.breakpointXxxl))\n return { count: 8, spacing: 136, size: 90, height: 90 };\n return { count: 11, spacing: 136, size: 100, height: 90 };\n };\n\n const circularConfig = getCircularConfig();\n\n return (\n <Card className={styles.cardSearchTicket}>\n <Row>\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={12}\n xxl={5}\n xxxl={5}\n className={styles.paddingResponsive}\n >\n <div className={styles.formField}>\n <Row style={{ padding: '12px' }}>\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={12}\n xxl={5}\n xxxl={5}\n className={styles.paddingResponsive}\n >\n <Field label={mergedLabels.originHarbor} className={styles.field}>\n <Input\n name=\"from\"\n disabled\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:vehicle-ship-16-filled\"\n color={tokens.colorNeutralForegroundDisabled}\n />\n }\n value={originHarbor}\n appearance=\"outline\"\n size=\"medium\"\n />\n </Field>\n </Col>\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={12}\n xxl={1}\n xxxl={1}\n className={styles.paddingResponsive}\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <Visible lg xl xxl xxxl>\n <Button\n className={styles.buttonSwitch}\n shape=\"circular\"\n disabled\n appearance=\"secondary\"\n size=\"medium\"\n icon={<Icon icon=\"fluent:arrow-swap-24-filled\" />}\n />\n </Visible>\n </Col>\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={12}\n xxl={6}\n xxxl={6}\n className={styles.paddingResponsive}\n >\n <Field label={mergedLabels.destinationHarbor} className={styles.field}>\n <Input\n name=\"to\"\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:location-24-filled\"\n color={tokens.colorNeutralForegroundDisabled}\n />\n }\n disabled\n appearance=\"outline\"\n size=\"medium\"\n value={destinationHarbor}\n />\n </Field>\n </Col>\n </Row>\n </div>\n </Col>\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={12}\n xxl={5}\n xxxl={5}\n className={styles.paddingResponsive}\n >\n <div className={styles.formField}>\n <Row style={{ height: '100%', alignItems: 'center' }}>\n <Col\n xs={12}\n sm={12}\n md={6}\n lg={6}\n xl={6}\n xxl={3}\n xxxl={3}\n className={styles.paddingResponsive}\n >\n <Field className={styles.field}>\n <Input\n name=\"startDate\"\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:calendar-24-regular\"\n color={tokens.colorNeutralForegroundDisabled}\n />\n }\n disabled\n appearance=\"outline\"\n size=\"medium\"\n value={departureDate}\n />\n </Field>\n </Col>\n <Col\n xs={12}\n sm={12}\n md={6}\n lg={6}\n xl={6}\n xxl={3}\n xxxl={3}\n className={styles.paddingResponsive}\n >\n <Label className={styles.field}>\n <Input\n name=\"serviceClass\"\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:ribbon-star-24-regular\"\n color={tokens.colorNeutralForegroundDisabled}\n />\n }\n disabled\n appearance=\"outline\"\n size=\"medium\"\n value={serviceClass}\n />\n </Label>\n </Col>\n <Col\n xs={12}\n sm={12}\n md={6}\n lg={6}\n xl={6}\n xxl={3}\n xxxl={3}\n className={styles.paddingResponsive}\n >\n <Field className={styles.field}>\n <Input\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:vehicle-car-24-regular\"\n color={tokens.colorNeutralForegroundDisabled}\n />\n }\n disabled\n appearance=\"outline\"\n size=\"medium\"\n value={typeOfService}\n />\n </Field>\n </Col>\n <Col\n xs={12}\n sm={12}\n md={6}\n lg={6}\n xl={6}\n xxl={3}\n xxxl={3}\n className={styles.paddingResponsive}\n >\n <Field className={styles.field}>\n <Input\n name=\"passenger\"\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:people-24-regular\"\n color={tokens.colorNeutralForegroundDisabled}\n />\n }\n disabled\n appearance=\"outline\"\n size=\"medium\"\n value={totalPassengers}\n />\n </Field>\n </Col>\n </Row>\n </div>\n </Col>\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={12}\n xxl={2}\n xxxl={2}\n className={styles.paddingResponsive}\n >\n <div className={styles.buttonSearchContainer}>\n <Button\n type=\"button\"\n appearance=\"primary\"\n size=\"medium\"\n style={{ width: '100%', borderRadius: tokens.borderRadiusCircular }}\n iconPosition=\"before\"\n icon={<Icon icon=\"fluent:search-24-filled\" />}\n onClick={onChangeSearch}\n >\n {mergedLabels.changeSearchButton}\n </Button>\n </div>\n </Col>\n </Row>\n {children && (\n <div className={styles.filterButtonContainer}>\n {children}\n </div>\n )}\n\n {Array.from({ length: circularConfig.count }).map((_, index) => (\n <div\n key={index}\n className={styles.circular}\n style={{\n left: `${30 + index * circularConfig.spacing}px`,\n }}\n />\n ))}\n </Card>\n );\n};\n\nexport default CardTicketSearchSummary;\n","import React from 'react';\nimport {\n Body1,\n Body1Strong,\n Button,\n Caption1,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n Divider,\n Input,\n makeStyles,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\n\nconst useStyles = makeStyles({\n dialogTitle: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingRight: '8px',\n },\n dialogSurface: {\n maxWidth: '600px',\n width: '100%',\n },\n closeButton: {\n minWidth: '32px',\n minHeight: '32px',\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0px',\n paddingTop: '10px',\n paddingLeft: '10px',\n paddingRight: '10px',\n },\n searchInput: {\n width: '100%',\n marginBottom: '16px',\n },\n resultList: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0px',\n maxHeight: '400px',\n overflowY: 'auto',\n paddingRight: '1rem',\n },\n resultItem: {\n padding: '16px 20px',\n borderBottom: `1px solid ${tokens.colorNeutralStroke2}`,\n cursor: 'pointer',\n transition: 'all 0.2s ease',\n backgroundColor: tokens.colorNeutralBackground1,\n position: 'relative',\n ':hover': {\n backgroundColor: tokens.colorNeutralBackground1Hover,\n borderBottom: `1px solid ${tokens.colorBrandBackground}`,\n },\n },\n resultItemSelected: {\n backgroundColor: tokens.colorNeutralBackground1,\n borderLeft: `4px solid ${tokens.colorBrandBackground}`,\n paddingLeft: '16px',\n },\n harborName: {\n fontSize: tokens.fontSizeBase300,\n fontWeight: tokens.fontWeightRegular,\n color: tokens.colorNeutralForeground1,\n marginBottom: '2px',\n },\n harborLocation: {\n fontSize: tokens.fontSizeBase200,\n color: tokens.colorNeutralForeground3,\n },\n buttonContainer: {\n display: 'flex',\n gap: '1rem',\n marginBottom: '1rem',\n flexWrap: 'wrap',\n },\n circularButton: {\n borderRadius: tokens.borderRadiusCircular,\n },\n headerRow: {\n display: 'flex',\n justifyContent: 'space-between',\n marginTop: '1rem',\n marginBottom: '1rem',\n },\n dangerText: {\n color: tokens.colorStatusDangerForeground1,\n },\n historyItem: {\n display: 'flex',\n justifyContent: 'space-between',\n marginTop: '1rem',\n marginBottom: '1rem',\n },\n iconMargin: {\n marginRight: '0.5rem',\n },\n cursorPointer: {\n cursor: 'pointer',\n },\n sectionTitle: {\n marginTop: '1rem',\n marginBottom: '1rem',\n },\n harborList: {\n display: 'flex',\n flexDirection: 'column',\n gap: '1rem',\n marginBottom: '1rem',\n },\n harborItem: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n emptyState: {\n textAlign: 'center',\n padding: '32px',\n color: tokens.colorNeutralForeground3,\n },\n});\n\n/**\n * Harbor item interface\n */\nexport interface HarborItem {\n /**\n * Unique identifier for the harbor\n */\n id: number;\n \n /**\n * Display name of the harbor\n */\n name: string;\n}\n\n/**\n * Props for ModalSearchHarbor component\n */\nexport interface ModalSearchHarborProps {\n /**\n * Whether the modal is open\n */\n open: boolean;\n \n /**\n * Callback when modal should close\n */\n onClose: () => void;\n \n /**\n * Modal title\n * @default \"Pilih Pelabuhan\"\n */\n title?: string;\n \n /**\n * Type of modal - origin or destination\n * @default \"origin\"\n */\n modalType?: 'origin' | 'destination';\n \n /**\n * List of harbors to display\n */\n harbors: HarborItem[];\n \n /**\n * List of favorite harbors\n */\n favoriteHarbors: HarborItem[];\n \n /**\n * List of last searched harbors\n */\n lastSearchedHarbors: HarborItem[];\n \n /**\n * Loading state\n * @default false\n */\n isLoading?: boolean;\n \n /**\n * Current search query value\n */\n searchQuery: string;\n \n /**\n * Callback when search query changes\n */\n onSearchChange: (query: string) => void;\n \n /**\n * Callback when a harbor is selected\n */\n onSelectHarbor: (harbor: HarborItem) => void;\n \n /**\n * Callback when favorite is toggled\n */\n onToggleFavorite: (harbor: HarborItem) => void;\n \n /**\n * Callback when adding to last searched\n */\n onAddLastSearched: (harbor: HarborItem) => void;\n \n /**\n * Callback when removing from last searched\n */\n onRemoveLastSearched: (harborId: number) => void;\n \n /**\n * Callback when clearing all last searched\n */\n onClearLastSearched: () => void;\n}\n\n/**\n * ModalSearchHarbor - A reusable modal component for searching and selecting harbors\n * \n * This component provides a searchable modal interface for selecting harbors with features like:\n * - Search functionality\n * - Favorite harbors quick access\n * - Last searched history\n * - Loading states\n * \n * @example\n * ```tsx\n * <ModalSearchHarbor\n * open={isOpen}\n * onClose={() => setIsOpen(false)}\n * title=\"Pilih Pelabuhan Asal\"\n * harbors={harborList}\n * favoriteHarbors={favorites}\n * lastSearchedHarbors={history}\n * searchQuery={search}\n * onSearchChange={setSearch}\n * onSelectHarbor={handleSelect}\n * onToggleFavorite={handleToggleFavorite}\n * onAddLastSearched={handleAddHistory}\n * onRemoveLastSearched={handleRemoveHistory}\n * onClearLastSearched={handleClearHistory}\n * />\n * ```\n */\nexport const ModalSearchHarbor: React.FC<ModalSearchHarborProps> = ({\n open,\n onClose,\n title = 'Pilih Pelabuhan',\n modalType = 'origin',\n harbors,\n favoriteHarbors,\n lastSearchedHarbors,\n isLoading = false,\n searchQuery,\n onSearchChange,\n onSelectHarbor,\n onToggleFavorite,\n onAddLastSearched,\n onRemoveLastSearched,\n onClearLastSearched,\n}) => {\n const styles = useStyles();\n\n const handleSelect = (harbor: HarborItem) => {\n onAddLastSearched(harbor);\n onSelectHarbor(harbor);\n onSearchChange('');\n };\n\n const handleClose = () => {\n onClose();\n onSearchChange('');\n };\n\n return (\n <Dialog\n open={open}\n onOpenChange={(_, data) => {\n if (!data.open) {\n onClose();\n }\n }}\n >\n <DialogSurface className={styles.dialogSurface}>\n <DialogBody>\n <DialogTitle\n action={\n <Button\n appearance=\"subtle\"\n aria-label=\"close\"\n icon={<Icon icon=\"fluent:dismiss-24-regular\" />}\n onClick={handleClose}\n className={styles.closeButton}\n />\n }\n >\n {title}\n </DialogTitle>\n <DialogContent className={styles.content}>\n <div>\n <Input\n className={styles.searchInput}\n value={searchQuery}\n onChange={e => onSearchChange(e.target.value)}\n placeholder=\"Cari Pelabuhan...\"\n contentBefore={\n <Icon icon=\"fluent:search-24-regular\" color={tokens.colorNeutralForeground3} />\n }\n size=\"large\"\n />\n </div>\n \n {/* Favorite Harbors */}\n {favoriteHarbors.length > 0 && (\n <div className={styles.buttonContainer}>\n {favoriteHarbors.map(harbor => (\n <Button\n onClick={() => handleSelect(harbor)}\n key={harbor.id}\n size=\"medium\"\n appearance=\"outline\"\n iconPosition=\"before\"\n className={styles.circularButton}\n icon={<Icon icon=\"fluent:ribbon-20-filled\" />}\n >\n <Body1>{harbor.name}</Body1>\n </Button>\n ))}\n </div>\n )}\n \n <Divider />\n\n <div className={styles.resultList}>\n {/* Last Searched Section */}\n {lastSearchedHarbors.length > 0 && (\n <>\n <div className={styles.headerRow}>\n <Body1Strong>Terakhir dicari</Body1Strong>\n <Caption1\n className={`${styles.dangerText} ${styles.cursorPointer}`}\n onClick={onClearLastSearched}\n >\n Hapus Semua\n </Caption1>\n </div>\n\n <div>\n {lastSearchedHarbors.map(harbor => (\n <div className={styles.historyItem} key={harbor.id}>\n <div\n style={{ cursor: 'pointer' }}\n onClick={() => handleSelect(harbor)}\n >\n <Icon icon=\"fluent:vehicle-ship-24-regular\" className={styles.iconMargin} />\n {harbor.name}\n </div>\n <Icon\n onClick={() => onRemoveLastSearched(harbor.id)}\n icon=\"fluent:dismiss-24-regular\"\n color={tokens.colorStatusDangerForeground1}\n className={styles.cursorPointer}\n />\n </div>\n ))}\n </div>\n <Divider />\n </>\n )}\n\n {/* All Harbors Section */}\n <Body1Strong className={styles.sectionTitle}>Semua Pelabuhan</Body1Strong>\n <div className={styles.harborList}>\n {isLoading ? (\n <div className={styles.emptyState}>Memuat data...</div>\n ) : harbors.length > 0 ? (\n harbors.map((harbor, index) => (\n <div key={index} className={styles.harborItem}>\n <div\n className={styles.cursorPointer}\n onClick={() => handleSelect(harbor)}\n >\n <Icon icon=\"fluent:vehicle-ship-24-regular\" className={styles.iconMargin} />\n {harbor.name}\n </div>\n <Icon\n icon={\n favoriteHarbors.find(fav => fav.id === harbor.id)\n ? 'fluent:star-24-filled'\n : 'fluent:star-24-regular'\n }\n color={tokens.colorBrandBackground}\n className={styles.cursorPointer}\n onClick={() => onToggleFavorite(harbor)}\n />\n </div>\n ))\n ) : (\n <div className={styles.emptyState}>Pelabuhan tidak ditemukan</div>\n )}\n </div>\n </div>\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n\nexport default ModalSearchHarbor;\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Calendar, type CalendarDayGridStyles } from '@fluentui/react-calendar-compat';\nimport {\n Button,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n makeStyles,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport moment from 'moment';\nimport \"./modalSelectDate.css\";\n\nconst useStyles = makeStyles({\n dialogSurface: {\n maxWidth: '600px',\n width: '100%',\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0px',\n paddingTop: '10px',\n paddingLeft: '10px',\n paddingRight: '10px',\n paddingBottom: '20px',\n width: '100%',\n overflow: 'hidden',\n },\n closeButton: {\n minWidth: '32px',\n minHeight: '32px',\n },\n tabContainer: {\n display: 'flex',\n gap: '0px',\n marginBottom: '16px',\n borderBottom: `2px solid ${tokens.colorNeutralStroke2}`,\n },\n tab: {\n flex: 1,\n padding: '12px 16px',\n cursor: 'pointer',\n textAlign: 'center',\n fontSize: tokens.fontSizeBase300,\n fontWeight: tokens.fontWeightRegular,\n color: tokens.colorNeutralForeground3,\n borderBottom: '2px solid transparent',\n marginBottom: '-2px',\n transition: 'all 0.2s ease',\n backgroundColor: 'transparent',\n border: 'none',\n ':hover': {\n color: tokens.colorNeutralForeground1,\n backgroundColor: tokens.colorNeutralBackground1Hover,\n },\n },\n tabActive: {\n color: tokens.colorBrandForeground1,\n fontWeight: tokens.fontWeightSemibold,\n borderBottom: `2px solid ${tokens.colorBrandBackground}`,\n },\n calendarContainer: {\n display: 'flex',\n gap: '20px',\n justifyContent: 'center',\n alignItems: 'flex-start',\n width: '100%',\n },\n rangeCalendar: {\n '& .ms-CalendarDay': {\n position: 'relative',\n },\n '& button[class*=\"ms-CalendarDay\"]': {\n borderRadius: '999px',\n transition: 'all 0.15s ease',\n border: 'none',\n '&:hover': {\n backgroundColor: `${tokens.colorBrandBackground} !important`,\n color: tokens.colorNeutralForegroundStaticInverted,\n },\n },\n },\n rangeStart: {\n backgroundColor: `${tokens.colorBrandBackground} !important`,\n color: `${tokens.colorNeutralForegroundStaticInverted} !important`,\n borderTopLeftRadius: '999px !important',\n borderBottomLeftRadius: '999px !important',\n fontWeight: tokens.fontWeightSemibold,\n },\n rangeEnd: {\n backgroundColor: `${tokens.colorBrandBackground} !important`,\n color: `${tokens.colorNeutralForegroundOnBrand} !important`,\n borderTopRightRadius: '999px !important',\n borderBottomRightRadius: '999px !important',\n fontWeight: tokens.fontWeightSemibold,\n },\n rangeMiddle: {\n backgroundColor: `${tokens.colorBrandBackground} !important`,\n color: `${tokens.colorNeutralForegroundStaticInverted} !important`,\n borderRadius: '0px !important',\n },\n rangePreview: {\n backgroundColor: `${tokens.colorBrandBackground} !important`,\n color: tokens.colorNeutralForegroundStaticInverted,\n borderRadius: '0px !important',\n boxShadow: `inset 0 0 0 1px ${tokens.colorBrandStroke1}`,\n },\n rangeSingle: {\n backgroundColor: `${tokens.colorBrandBackground} !important`,\n color: `${tokens.colorNeutralForegroundOnBrand} !important`,\n borderRadius: '999px !important',\n fontWeight: tokens.fontWeightSemibold,\n },\n});\n\n/**\n * Tab type for trip selection\n */\nexport type TabType = 'one-way' | 'round-trip';\n\n/**\n * Props for ModalSelectDate component\n */\nexport interface ModalSelectDateProps {\n /**\n * Whether the modal is open\n */\n open: boolean;\n\n /**\n * Callback when modal should close\n */\n onClose: () => void;\n\n /**\n * Modal title\n * @default \"Pilih Tanggal\"\n */\n title?: string;\n\n /**\n * Initial selected departure date\n */\n selectedDepartureDate?: Date;\n\n /**\n * Initial selected return date (for round trip)\n */\n selectedReturnDate?: Date;\n\n /**\n * Initial tab selection\n * @default \"one-way\"\n */\n initialTab?: TabType;\n\n /**\n * Whether to show tabs for one-way/round-trip selection\n * @default true\n */\n showTabs?: boolean;\n\n /**\n * Callback when departure date is selected\n */\n onSelectDepartureDate: (date: Date) => void;\n\n /**\n * Callback when return date is selected (for round trip)\n */\n onSelectReturnDate?: (date: Date) => void;\n\n /**\n * Callback when tab changes\n */\n onTabChange?: (tab: TabType) => void;\n\n /**\n * Minimum selectable date\n * @default new Date()\n */\n minDate?: Date;\n\n /**\n * Maximum selectable date\n */\n maxDate?: Date;\n\n /**\n * Date format for internal handling\n * @default \"DD MMMM YYYY\"\n */\n dateFormat?: string;\n\n /**\n * Show Roundtrip\n * @default true\n */\n showRoundtrip?: boolean;\n}\n\n/**\n * ModalSelectDate - A reusable modal component for selecting dates\n * \n * This component provides a date selection modal with features like:\n * - Single date selection (one-way)\n * - Date range selection (round-trip)\n * - Visual range preview on hover\n * - Customizable date constraints\n * \n * @example\n * ```tsx\n * <ModalSelectDate\n * open={isOpen}\n * onClose={() => setIsOpen(false)}\n * title=\"Pilih Tanggal Keberangkatan\"\n * selectedDepartureDate={departureDate}\n * selectedReturnDate={returnDate}\n * onSelectDepartureDate={setDepartureDate}\n * onSelectReturnDate={setReturnDate}\n * onTabChange={handleTabChange}\n * />\n * ```\n */\nexport const ModalSelectDate: React.FC<ModalSelectDateProps> = ({\n open,\n onClose,\n title = 'Pilih Tanggal',\n selectedDepartureDate,\n selectedReturnDate,\n initialTab = 'one-way',\n showTabs = true,\n onSelectDepartureDate,\n onSelectReturnDate,\n onTabChange,\n minDate = new Date(),\n maxDate,\n dateFormat = 'DD MMMM YYYY',\n showRoundtrip = true,\n}) => {\n const styles = useStyles();\n\n const [selectedDate, setSelectedDate] = useState<Date | undefined>(selectedDepartureDate);\n const [selectedEndDate, setSelectedEndDate] = useState<Date | undefined>(selectedReturnDate);\n const [hoveredDate, setHoveredDate] = useState<Date | undefined>();\n const [activeTab, setActiveTab] = useState<TabType>(initialTab);\n\n const previewEndDate = useMemo(() => {\n if (selectedEndDate) return selectedEndDate;\n if (selectedDate && hoveredDate && hoveredDate > selectedDate) {\n return hoveredDate;\n }\n return undefined;\n }, [hoveredDate, selectedDate, selectedEndDate]);\n\n const isSameCalendarDay = (first?: Date, second?: Date) => {\n if (!first || !second) return false;\n return moment(first).isSame(second, 'day');\n };\n\n // Reset state when modal opens\n useEffect(() => {\n if (open) {\n setSelectedDate(selectedDepartureDate);\n setSelectedEndDate(selectedReturnDate);\n setActiveTab(initialTab);\n setHoveredDate(undefined);\n }\n }, [open, selectedDepartureDate, selectedReturnDate, initialTab]);\n\n const handleTabChange = (tab: TabType) => {\n setActiveTab(tab);\n setSelectedEndDate(undefined);\n setHoveredDate(undefined);\n\n if (onTabChange) {\n onTabChange(tab);\n }\n };\n\n const handleClose = () => {\n setHoveredDate(undefined);\n onClose();\n };\n\n const handleDateSelect = (date: Date | null | undefined) => {\n if (!date) return;\n\n const currentStart = selectedDate;\n\n if (activeTab === 'round-trip') {\n // Range selection mode\n if (!currentStart || selectedEndDate) {\n // First click or restart selection\n setSelectedDate(date);\n setSelectedEndDate(undefined);\n setHoveredDate(undefined);\n onSelectDepartureDate(date);\n if (onSelectReturnDate) {\n // Clear return date when starting new selection\n }\n } else {\n // Second click - set end date\n if (date < currentStart) {\n // If end date is before start date, swap them\n setSelectedEndDate(currentStart);\n setSelectedDate(date);\n onSelectDepartureDate(date);\n if (onSelectReturnDate) {\n onSelectReturnDate(currentStart);\n }\n } else {\n setSelectedEndDate(date);\n if (onSelectReturnDate) {\n onSelectReturnDate(date);\n }\n }\n setHoveredDate(undefined);\n handleClose();\n }\n } else {\n // Single date selection mode\n setSelectedDate(date);\n onSelectDepartureDate(date);\n handleClose();\n }\n };\n\n const handleCustomDayCellRef = useCallback(\n (element: HTMLElement | null, date: Date, _classNames?: CalendarDayGridStyles) => {\n if (!element) return;\n\n const removeTokens = (className?: string) => {\n className\n ?.split(/\\s+/)\n .filter(Boolean)\n .forEach(token => element.classList.remove(token));\n };\n const addTokens = (className?: string) => {\n className\n ?.split(/\\s+/)\n .filter(Boolean)\n .forEach(token => element.classList.add(token));\n };\n const removableClasses = [\n styles.rangeStart,\n styles.rangeEnd,\n styles.rangeMiddle,\n styles.rangePreview,\n styles.rangeSingle,\n ];\n removableClasses.forEach(removeTokens);\n\n if (activeTab !== 'round-trip' || !selectedDate) {\n element.onmouseenter = null;\n element.onmouseleave = null;\n return;\n }\n\n const endDateForVisual = previewEndDate;\n const startTime = selectedDate.getTime();\n const endTime = endDateForVisual?.getTime();\n const currentTime = date.getTime();\n const isSameStartEnd = isSameCalendarDay(endDateForVisual, selectedDate);\n const isStartDay = isSameCalendarDay(date, selectedDate);\n const isEndDay = isSameCalendarDay(date, endDateForVisual);\n\n if (isStartDay && (!endDateForVisual || isSameStartEnd)) {\n addTokens(styles.rangeSingle);\n } else {\n if (isStartDay) {\n addTokens(styles.rangeStart);\n }\n if (isEndDay && !isSameStartEnd) {\n addTokens(styles.rangeEnd);\n }\n }\n\n if (endTime && currentTime > startTime && currentTime < endTime) {\n addTokens(selectedEndDate ? styles.rangeMiddle : styles.rangePreview);\n }\n\n if (!selectedEndDate) {\n element.onmouseenter = () => {\n if (date < selectedDate) return;\n setHoveredDate(prev => {\n if (isSameCalendarDay(prev, date)) {\n return prev;\n }\n return date;\n });\n };\n element.onmouseleave = () => {\n setHoveredDate(undefined);\n };\n } else {\n element.onmouseenter = null;\n element.onmouseleave = null;\n }\n },\n [\n activeTab,\n previewEndDate,\n selectedDate,\n selectedEndDate,\n styles.rangeEnd,\n styles.rangeMiddle,\n styles.rangePreview,\n styles.rangeSingle,\n styles.rangeStart,\n ],\n );\n\n return (\n <Dialog\n open={open}\n onOpenChange={(_, data) => {\n if (!data.open) {\n onClose();\n }\n }}\n >\n <DialogSurface className={styles.dialogSurface}>\n <DialogBody>\n <DialogTitle\n action={\n <Button\n appearance=\"subtle\"\n aria-label=\"close\"\n icon={<Icon icon=\"fluent:dismiss-24-regular\" />}\n onClick={handleClose}\n className={styles.closeButton}\n />\n }\n >\n {title}\n </DialogTitle>\n <DialogContent className={styles.content}>\n {/* Tabs */}\n {showTabs && (\n <div className={styles.tabContainer}>\n <button\n disabled={activeTab === 'round-trip'}\n className={`${styles.tab} ${activeTab === 'one-way' ? styles.tabActive : ''}`}\n onClick={() => handleTabChange('one-way')}\n >\n Sekali Jalan\n </button>\n {showRoundtrip && (\n <button\n className={`${styles.tab} ${activeTab === 'round-trip' ? styles.tabActive : ''}`}\n onClick={() => handleTabChange('round-trip')}\n disabled={activeTab === 'one-way'}\n >\n Pulang Pergi\n </button>\n )}\n </div>\n )}\n\n {/* Calendar */}\n <div className={styles.calendarContainer}>\n <div style={{ width: '100%' }}>\n <div className={activeTab === 'round-trip' ? styles.rangeCalendar : ''}>\n <Calendar\n minDate={minDate}\n maxDate={maxDate}\n value={selectedDate}\n onSelectDate={handleDateSelect}\n showGoToToday\n highlightSelectedMonth\n showMonthPickerAsOverlay={false}\n allFocusable\n calendarDayProps={{\n customDayCellRef: handleCustomDayCellRef,\n }}\n />\n </div>\n </div>\n </div>\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n\nexport default ModalSelectDate;\n","import React, { useEffect, useState } from 'react';\nimport {\n Body1,\n Button,\n Caption1,\n Checkbox,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n makeStyles,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\n\nconst useStyles = makeStyles({\n dialogSurface: {\n maxWidth: '600px',\n width: '100%',\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0px',\n paddingTop: '10px',\n paddingLeft: '10px',\n paddingRight: '10px',\n },\n closeButton: {\n minWidth: '32px',\n minHeight: '32px',\n },\n headerRow: {\n display: 'flex',\n justifyContent: 'end',\n alignItems: 'center',\n borderBottom: `1px solid ${tokens.colorNeutralStroke2}`,\n },\n serviceList: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0px',\n maxHeight: '400px',\n overflowY: 'auto',\n paddingLeft: '20px',\n },\n serviceItem: {\n padding: '16px 0px',\n borderBottom: `1px solid ${tokens.colorNeutralStroke2}`,\n display: 'flex',\n alignItems: 'flex-start',\n gap: '12px',\n cursor: 'pointer',\n transition: 'background-color 0.2s ease',\n ':hover': {\n backgroundColor: tokens.colorNeutralBackground1Hover,\n },\n },\n serviceContent: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n gap: '4px',\n },\n serviceName: {\n fontSize: tokens.fontSizeBase300,\n fontWeight: tokens.fontWeightSemibold,\n color: tokens.colorNeutralForeground1,\n },\n serviceType: {\n fontSize: tokens.fontSizeBase200,\n fontWeight: tokens.fontWeightRegular,\n color: tokens.colorNeutralForeground2,\n },\n serviceDescription: {\n fontSize: tokens.fontSizeBase200,\n color: tokens.colorNeutralForeground3,\n lineHeight: '1.4',\n },\n footer: {\n padding: '16px 20px',\n borderTop: `1px solid ${tokens.colorNeutralStroke2}`,\n },\n saveButton: {\n width: '100%',\n borderRadius: tokens.borderRadiusCircular,\n },\n});\n\n/**\n * Service item structure\n */\nexport interface ServiceItem {\n /**\n * Unique identifier for the service\n */\n id: number;\n \n /**\n * Display name of the service type\n */\n serviceTypeName: string;\n \n /**\n * Code identifier for the service type\n */\n serviceTypeCode: string;\n \n /**\n * Detailed description of the service\n */\n serviceDescription: string;\n}\n\n/**\n * Props for ModalService component\n */\nexport interface ModalServiceProps {\n /**\n * Whether the modal is open\n */\n open: boolean;\n\n /**\n * Callback when modal should close\n */\n onClose: () => void;\n\n /**\n * Modal title\n * @default \"Pilih Kelas Layanan\"\n */\n title?: string;\n\n /**\n * Array of available services\n */\n services: ServiceItem[];\n\n /**\n * Array of currently selected service IDs\n */\n selectedServiceIds: number[];\n\n /**\n * Callback when save button is clicked\n * @param services - Array of selected service items\n */\n onSave: (services: ServiceItem[]) => void;\n\n /**\n * Loading state for services data\n * @default false\n */\n isLoading?: boolean;\n\n /**\n * Error state for services data\n * @default false\n */\n isError?: boolean;\n}\n\n/**\n * ModalService - A reusable modal component for selecting service classes\n * \n * This component provides a service selection modal with features like:\n * - Multiple service selection with checkboxes\n * - Select all/deselect all functionality\n * - Service details display (name, code, description)\n * - Save validation (requires at least one selection)\n * \n * @example\n * ```tsx\n * <ModalService\n * open={isOpen}\n * onClose={() => setIsOpen(false)}\n * title=\"Pilih Kelas Layanan\"\n * services={servicesList}\n * selectedServiceIds={selectedIds}\n * onSave={handleSave}\n * isLoading={isLoading}\n * isError={isError}\n * />\n * ```\n */\nexport const ModalService: React.FC<ModalServiceProps> = ({\n open,\n onClose,\n title = 'Pilih Kelas Layanan',\n services,\n selectedServiceIds,\n onSave,\n isLoading = false,\n isError = false,\n}) => {\n const styles = useStyles();\n const [selectedServices, setSelectedServices] = useState<number[]>(selectedServiceIds);\n\n // Reset selectedServices when modal opens or selectedServiceIds prop changes\n useEffect(() => {\n if (open) {\n // If selectedServiceIds is provided and not empty, use it\n if (selectedServiceIds && selectedServiceIds.length > 0) {\n // Filter to only include IDs that exist in services list\n const validIds = services\n .filter(s => selectedServiceIds.includes(s.id))\n .map(s => s.id);\n setSelectedServices(validIds);\n } else {\n // If no selection, select all by default\n setSelectedServices(services.map(s => s.id));\n }\n }\n }, [open, services, selectedServiceIds]);\n\n const handleClose = () => {\n onClose();\n };\n\n const handleToggleService = (serviceId: number) => {\n setSelectedServices(prev => {\n if (prev.includes(serviceId)) {\n return prev.filter(id => id !== serviceId);\n } else {\n return [...prev, serviceId];\n }\n });\n };\n\n const handleToggleAll = () => {\n if (selectedServices.length === services.length) {\n setSelectedServices([]);\n } else {\n setSelectedServices(services.map(s => s.id));\n }\n };\n\n const handleSave = () => {\n const selectedServiceItems = services.filter(s => selectedServices.includes(s.id));\n onSave(selectedServiceItems);\n };\n\n return (\n <Dialog\n open={open}\n onOpenChange={(_, data) => !data.open && onClose()}\n >\n <DialogSurface className={styles.dialogSurface}>\n <DialogBody>\n <DialogTitle\n action={\n <Button\n appearance=\"subtle\"\n aria-label=\"close\"\n icon={<Icon icon=\"fluent:dismiss-24-regular\" />}\n onClick={handleClose}\n className={styles.closeButton}\n />\n }\n >\n {title}\n </DialogTitle>\n <DialogContent className={styles.content}>\n {isLoading ? (\n <Body1>Loading...</Body1>\n ) : isError ? (\n <Body1>Error loading services</Body1>\n ) : (\n <>\n <div className={styles.serviceList}>\n <div className={styles.headerRow}>\n <Body1>Pilih Semua</Body1>\n <Checkbox\n checked={selectedServices.length === services.length}\n onChange={handleToggleAll}\n />\n </div>\n {services.map(service => (\n <div\n key={service.id}\n className={styles.serviceItem}\n onClick={() => handleToggleService(service.id)}\n >\n <div className={styles.serviceContent}>\n <Body1 className={styles.serviceName}>{service.serviceTypeName}</Body1>\n <Caption1 className={styles.serviceType}>{service.serviceTypeCode}</Caption1>\n <Caption1 className={styles.serviceDescription}>\n {service.serviceDescription}\n </Caption1>\n </div>\n <Checkbox\n checked={selectedServices.includes(service.id)}\n onChange={() => handleToggleService(service.id)}\n />\n </div>\n ))}\n </div>\n <div className={styles.footer}>\n <Button\n appearance=\"primary\"\n size=\"medium\"\n className={styles.saveButton}\n onClick={handleSave}\n disabled={selectedServices.length === 0}\n >\n Simpan\n </Button>\n </div>\n </>\n )}\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n\nexport default ModalService;\n","/**\n * Service class codes for passenger services\n */\nexport type PassengerServiceCode = 'ECONOMY' | 'BUSINESS' | 'EXECUTIVE';\n\n/**\n * Service class data structure\n */\nexport interface ServiceClass {\n id: number;\n name: string;\n key: string;\n serviceName: PassengerServiceCode;\n}\n\n/**\n * Default service classes available\n */\nexport const DEFAULT_SERVICE_CLASSES: ServiceClass[] = [\n { id: 1, name: 'Ekonomi', key: 'ekonomi', serviceName: 'ECONOMY' },\n { id: 2, name: 'Bisnis', key: 'bisnis', serviceName: 'BUSINESS' },\n { id: 3, name: 'Eksekutif', key: 'eksekutif', serviceName: 'EXECUTIVE' },\n];\n","import {\n Accordion,\n AccordionHeader,\n AccordionItem,\n AccordionPanel,\n Body1,\n Button,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n makeStyles,\n MessageBar,\n MessageBarBody,\n tokens,\n} from \"@fluentui/react-components\";\nimport { Icon } from \"@iconify/react\";\nimport React, { useEffect, useState } from \"react\";\n\nimport {\n DEFAULT_SERVICE_CLASSES,\n type PassengerServiceCode,\n type ServiceClass,\n} from \"./constants\";\n\nconst useStyles = makeStyles({\n dialogSurface: {\n maxWidth: \"600px\",\n width: \"100%\",\n },\n passengerSection: {\n marginTop: tokens.spacingHorizontalM,\n display: \"flex\",\n flexDirection: \"column\",\n },\n accordionHeader: {\n fontSize: tokens.fontSizeBase300,\n fontWeight: tokens.fontWeightBold,\n },\n accordionItem: {\n borderRadius: tokens.borderRadiusXLarge,\n marginBottom: \"1rem\",\n border: `1px solid ${tokens.colorNeutralStroke2}`,\n },\n passengerCount: {\n display: \"flex\",\n alignItems: \"center\",\n gap: \"12px\",\n },\n counterButton: {\n minWidth: \"24px\",\n height: \"24px\",\n padding: \"0\",\n borderRadius: tokens.borderRadiusCircular,\n color: tokens.colorBrandBackground,\n border: `1px solid ${tokens.colorBrandBackground}`,\n \"&:hover\": {\n border: `1px solid ${tokens.colorBrandBackgroundHover}`,\n color: tokens.colorBrandBackgroundHover,\n },\n \"&:disabled\": {\n border: `1px solid ${tokens.colorNeutralStrokeDisabled}`,\n color: tokens.colorNeutralForegroundDisabled,\n },\n },\n countText: {\n minWidth: \"24px\",\n textAlign: \"center\",\n },\n nestedSection: {\n borderTop: `2px solid ${tokens.colorBrandBackground}`,\n display: \"flex\",\n flexDirection: \"column\",\n padding: \"0.6rem\",\n },\n nestedRow: {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n padding: \"4px\",\n borderRadius: tokens.borderRadiusSmall,\n backgroundColor: tokens.colorNeutralBackground1,\n },\n submitButton: {\n marginTop: \"16px\",\n width: \"100%\",\n borderRadius: tokens.borderRadiusCircular,\n },\n accordionPanel: {\n margin: 0,\n },\n});\n\nexport type PassengerTypeCode = \"ADULT\" | \"CHILD\" | \"INFANT\" | \"ELDERLY\";\nexport interface PassengerServiceType {\n id: number;\n code: PassengerServiceCode;\n name: PassengerServiceCode;\n}\n\n/**\n * Passenger object structure\n */\nexport interface Passenger {\n isOrderer?: boolean;\n isCompleted?: boolean;\n id?: number;\n title?: string;\n name: string;\n idType?: string;\n idNumber?: string;\n age?: number;\n date?: string;\n category?: PassengerTypeCode;\n ticketClass: PassengerServiceCode;\n cityId?: string;\n phoneNumber?: {\n countryCode: string;\n phoneNumber: string;\n };\n email?: string;\n}\n\n/**\n * Service with passenger count\n */\nexport interface PassengerService {\n serviceId: number;\n serviceName: PassengerServiceCode;\n count: number;\n passengers: Passenger[];\n}\n\n/**\n * Passenger type from API\n */\nexport interface PassengerType {\n id: number;\n passengerTypeCode: string;\n passengerTypeName: string;\n}\n\n/**\n * Selected passenger item structure\n */\nexport interface SelectedPassengerItem {\n passengerTypeId: number;\n passengerTypeCode: string;\n passengerTypeName: string;\n services: PassengerService[];\n}\n\n/**\n * Props for ModalTotalPassengers component\n */\nexport interface ModalTotalPassengersProps {\n /**\n * Whether the modal is open\n */\n open: boolean;\n\n /**\n * Callback when modal should close\n */\n onClose: () => void;\n\n /**\n * Modal title\n * @default \"Pilih Jumlah Penumpang\"\n */\n title?: string;\n\n /**\n * Array of passenger types from API\n */\n passengerTypes: PassengerType[];\n\n /**\n * Array of service classes\n * @default DEFAULT_SERVICE_CLASSES\n */\n serviceClasses?: ServiceClass[];\n\n /**\n * Currently selected passengers\n */\n selectedPassengers: SelectedPassengerItem[];\n\n /**\n * Callback when save button is clicked\n */\n onSave: (passengers: SelectedPassengerItem[]) => void;\n\n /**\n * Loading state\n * @default false\n */\n isLoading?: boolean;\n\n /**\n * Maximum number of passengers allowed\n * @default 10\n */\n maxPassengers?: number;\n\n /**\n * Message to display in the info bar\n * @default \"Anda dapat menambahkan hingga {maxPassengers} penumpang pada golongan kendaraan ini.\"\n */\n infoMessage?: string;\n}\n\n/**\n * ModalTotalPassengers - A reusable modal component for selecting passenger counts\n *\n * This component provides a passenger selection modal with features like:\n * - Accordion for each passenger type\n * - Counter for each service class (Economy, Business, Executive)\n * - Automatic default selection (1 adult economy)\n * - Validation and save functionality\n *\n * @example\n * ```tsx\n * <ModalTotalPassengers\n * open={isOpen}\n * onClose={() => setIsOpen(false)}\n * title=\"Pilih Jumlah Penumpang\"\n * passengerTypes={passengerTypes}\n * selectedPassengers={selectedPassengers}\n * onSave={handleSave}\n * />\n * ```\n */\nexport const ModalTotalPassengers: React.FC<ModalTotalPassengersProps> = ({\n open,\n onClose,\n title = \"Pilih Jumlah Penumpang\",\n passengerTypes,\n serviceClasses = DEFAULT_SERVICE_CLASSES,\n selectedPassengers,\n onSave,\n isLoading = false,\n maxPassengers = 10,\n infoMessage,\n}) => {\n const styles = useStyles();\n const [passengers, setPassengers] = useState<SelectedPassengerItem[]>([]);\n const [openItems, setOpenItems] = useState<string[]>([]);\n\n const defaultInfoMessage = `Anda dapat menambahkan hingga ${maxPassengers} penumpang pada golongan kendaraan ini.`;\n\n // Initialize passengers state when modal opens or data changes\n useEffect(() => {\n if (passengerTypes.length === 0) return;\n\n // Create default structure for all passenger types\n const defaultPassengers: SelectedPassengerItem[] = passengerTypes.map(\n (passengerType) => ({\n passengerTypeId: passengerType.id,\n passengerTypeCode: passengerType.passengerTypeCode,\n passengerTypeName: passengerType.passengerTypeName,\n services: serviceClasses.map((sc) => ({\n serviceId: sc.id,\n serviceName: sc.serviceName,\n count: 0,\n passengers: [],\n })),\n }),\n );\n\n // If selectedPassengers has data, merge with default structure\n if (selectedPassengers && selectedPassengers.length > 0) {\n const mergedPassengers = defaultPassengers.map((defaultP) => {\n const selectedP = selectedPassengers.find(\n (p) => p.passengerTypeCode === defaultP.passengerTypeCode,\n );\n if (selectedP) {\n // Merge services - update counts and passengers from selected\n const mergedServices = defaultP.services.map((defaultS) => {\n const selectedS = selectedP.services.find(\n (s) => s.serviceName === defaultS.serviceName,\n );\n return selectedS\n ? {\n ...defaultS,\n count: selectedS.count,\n passengers: selectedS.passengers || [],\n }\n : defaultS;\n });\n return { ...defaultP, services: mergedServices };\n }\n return defaultP;\n });\n setPassengers(mergedPassengers);\n\n // Set accordion open items for passenger types that have data\n const itemsWithData = selectedPassengers\n .filter((p) => p.services.some((s) => s.count > 0))\n .map((p) => {\n const passengerType = passengerTypes.find(\n (pt) => pt.passengerTypeCode === p.passengerTypeCode,\n );\n return passengerType ? String(passengerType.id) : \"\";\n })\n .filter((id) => id !== \"\");\n setOpenItems(itemsWithData);\n } else {\n setPassengers(defaultPassengers);\n setOpenItems([]);\n }\n }, [open, passengerTypes, serviceClasses, selectedPassengers]);\n\n // Get service count for a specific passenger type and service\n const getServiceCount = (\n passengerTypeCode: string,\n serviceName: PassengerServiceCode,\n ): number => {\n const passenger = passengers.find(\n (p) => p.passengerTypeCode === passengerTypeCode,\n );\n if (!passenger) return 0;\n const service = passenger.services.find(\n (s) => s.serviceName === serviceName,\n );\n return service?.count || 0;\n };\n\n // Get total description for a passenger type\n const getTotalForType = (passengerTypeCode: string) => {\n const passenger = passengers.find(\n (p) => p.passengerTypeCode === passengerTypeCode,\n );\n if (!passenger) return \"0\";\n\n const parts: string[] = [];\n passenger.services.forEach((service) => {\n if (service.count > 0) {\n const serviceClass = serviceClasses.find(\n (sc) => sc.serviceName === service.serviceName,\n );\n const serviceName = serviceClass?.name || service.serviceName;\n parts.push(`${service.count} ${serviceName}`);\n }\n });\n\n return parts.length > 0 ? parts.join(\", \") : \"0\";\n };\n\n const handleIncrement = (\n passengerTypeCode: string,\n serviceName: PassengerServiceCode,\n ) => {\n setPassengers((prev) =>\n prev.map((passenger) => {\n if (passenger.passengerTypeCode === passengerTypeCode) {\n return {\n ...passenger,\n services: passenger.services.map((service) => {\n if (service.serviceName === serviceName) {\n const newCount = service.count + 1;\n const newPassengers = [...(service.passengers || [])];\n\n // Add new empty passenger objects until we reach newCount\n while (newPassengers.length < newCount) {\n newPassengers.push({} as Passenger);\n }\n\n return {\n ...service,\n count: newCount,\n passengers: newPassengers,\n };\n }\n return service;\n }),\n };\n }\n return passenger;\n }),\n );\n };\n\n const handleDecrement = (\n passengerTypeCode: string,\n serviceName: PassengerServiceCode,\n ) => {\n setPassengers((prev) =>\n prev.map((passenger) => {\n if (passenger.passengerTypeCode === passengerTypeCode) {\n return {\n ...passenger,\n services: passenger.services.map((service) => {\n if (service.serviceName === serviceName && service.count > 0) {\n const newCount = service.count - 1;\n const newPassengers = (service.passengers || []).slice(\n 0,\n newCount,\n );\n return {\n ...service,\n count: newCount,\n passengers: newPassengers,\n };\n }\n return service;\n }),\n };\n }\n return passenger;\n }),\n );\n };\n\n const handleSave = () => {\n // Filter out passengers with all services at count 0\n const filteredPassengers = passengers\n .map((passenger) => ({\n ...passenger,\n services: passenger.services.filter((service) => service.count > 0),\n }))\n .filter((passenger) => passenger.services.length > 0);\n\n onSave(filteredPassengers);\n };\n\n return (\n <Dialog open={open} onOpenChange={(_, data) => !data.open && onClose()}>\n <DialogSurface>\n <DialogBody>\n <DialogTitle\n action={\n <Button\n appearance=\"subtle\"\n aria-label=\"close\"\n icon={<Icon icon=\"fluent:dismiss-12-regular\" />}\n onClick={onClose}\n />\n }\n >\n {title}\n </DialogTitle>\n <DialogContent>\n <MessageBar shape=\"rounded\">\n <MessageBarBody>\n {infoMessage || defaultInfoMessage}\n </MessageBarBody>\n </MessageBar>\n {isLoading ? (\n <Body1>Loading...</Body1>\n ) : (\n <>\n <Accordion\n collapsible\n multiple\n openItems={openItems}\n onToggle={(_, data) =>\n setOpenItems(data.openItems as string[])\n }\n className={styles.passengerSection}\n >\n {passengerTypes.map((passengerType) => {\n return (\n <AccordionItem\n key={passengerType.id}\n value={String(passengerType.id)}\n className={styles.accordionItem}\n >\n <AccordionHeader\n className={styles.accordionHeader}\n expandIconPosition=\"end\"\n >\n {passengerType.passengerTypeName} (\n {getTotalForType(passengerType.passengerTypeCode)})\n </AccordionHeader>\n <AccordionPanel className={styles.accordionPanel}>\n <div className={styles.nestedSection}>\n {serviceClasses.map((service) => (\n <div\n key={service.key}\n className={styles.nestedRow}\n >\n <Body1>{service.name}</Body1>\n <div className={styles.passengerCount}>\n <Button\n appearance=\"outline\"\n className={styles.counterButton}\n size=\"small\"\n icon={\n <Icon icon=\"fluent:subtract-12-regular\" />\n }\n onClick={(e) => {\n e.stopPropagation();\n handleDecrement(\n passengerType.passengerTypeCode,\n service.serviceName,\n );\n }}\n disabled={\n getServiceCount(\n passengerType.passengerTypeCode,\n service.serviceName,\n ) === 0\n }\n />\n <Body1 className={styles.countText}>\n {getServiceCount(\n passengerType.passengerTypeCode,\n service.serviceName,\n )}\n </Body1>\n <Button\n appearance=\"outline\"\n className={styles.counterButton}\n size=\"small\"\n icon={<Icon icon=\"fluent:add-12-regular\" />}\n onClick={(e) => {\n e.stopPropagation();\n handleIncrement(\n passengerType.passengerTypeCode,\n service.serviceName,\n );\n }}\n />\n </div>\n </div>\n ))}\n </div>\n </AccordionPanel>\n </AccordionItem>\n );\n })}\n </Accordion>\n\n <Button\n appearance=\"primary\"\n size=\"medium\"\n className={styles.submitButton}\n onClick={handleSave}\n >\n Simpan\n </Button>\n </>\n )}\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n\nexport default ModalTotalPassengers;\n","import {\n Accordion,\n AccordionHeader,\n AccordionItem,\n AccordionPanel,\n Body1,\n Button,\n Caption1,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n makeStyles,\n mergeClasses,\n Radio,\n RadioGroup,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport React, { ReactNode, useEffect, useState } from 'react';\n\nconst useStyles = makeStyles({\n dialogSurface: {\n maxWidth: '600px',\n width: '100%',\n },\n closeButton: {\n minWidth: '32px',\n minHeight: '32px',\n },\n passengerSection: {\n marginTop: tokens.spacingHorizontalM,\n display: 'flex',\n flexDirection: 'column',\n },\n accordionItem: {\n borderBottom: `1px solid ${tokens.colorNeutralStroke2}`,\n width: '100%',\n },\n accordionHeader: {\n fontSize: tokens.fontSizeBase300,\n fontWeight: tokens.fontWeightBold,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n },\n accordionTitleAndInfo: {\n display: 'flex',\n flexDirection: 'column',\n gap: '2px',\n marginLeft: tokens.spacingHorizontalM,\n flex: 1,\n },\n accordionBody: {\n marginLeft: '100px',\n },\n footer: {\n marginTop: tokens.spacingVerticalL,\n display: 'flex',\n gap: tokens.spacingHorizontalM,\n justifyContent: 'flex-end',\n },\n});\n\n/**\n * Service type item structure\n */\nexport interface TypeOfService {\n id: number;\n image: string;\n title: string;\n info: string;\n price: number;\n type: string;\n parentId?: number;\n parentTitle?: string;\n child: TypeOfService[];\n typeOfPassanger: string;\n}\n\n/**\n * Props for ModalTypeOfService component\n */\nexport interface ModalTypeOfServiceProps {\n /**\n * Whether the modal is open\n */\n open: boolean;\n\n /**\n * Callback when modal should close\n */\n onClose: () => void;\n\n /**\n * Modal title\n * @default \"Pilih Tipe Layanan\"\n */\n title?: string;\n\n /**\n * Array of service types\n */\n serviceTypes: TypeOfService[];\n\n /**\n * Currently selected service\n */\n selectedService?: TypeOfService | null;\n\n /**\n * Callback when save button is clicked\n */\n onSave: (service: TypeOfService) => void;\n\n /**\n * Optional custom image renderer\n * Useful for Next.js Image component or other custom renderers\n */\n renderImage?: (props: { src: string; alt: string; width: number; height: number }) => ReactNode;\n}\n\n/**\n * ModalTypeOfService - A reusable modal component for selecting service types\n * \n * This component provides a service type selection modal with features like:\n * - Accordion for categories with children (vehicles, goods, etc.)\n * - Radio buttons for individual selections\n * - Image display for each service type\n * - Customizable image renderer for framework-specific components\n * \n * @example\n * ```tsx\n * <ModalTypeOfService\n * open={isOpen}\n * onClose={() => setIsOpen(false)}\n * title=\"Pilih Tipe Layanan\"\n * serviceTypes={serviceTypes}\n * selectedService={selectedService}\n * onSave={handleSave}\n * renderImage={(props) => <Image {...props} />}\n * />\n * ```\n */\nexport const ModalTypeOfService: React.FC<ModalTypeOfServiceProps> = ({\n open,\n onClose,\n title = 'Pilih Tipe Layanan',\n serviceTypes,\n selectedService,\n onSave,\n renderImage,\n}) => {\n const styles = useStyles();\n const [selectedServiceTitle, setSelectedServiceTitle] = useState<string>(\n selectedService?.title || '',\n );\n const [openItems, setOpenItems] = useState<number | undefined>(() => {\n // Initialize openItems based on selected service\n if (!selectedService) return undefined;\n for (const item of serviceTypes) {\n if (item.type === 'accordion' && item.child.length > 0) {\n const hasSelectedChild = item.child.some(\n child => child.title === selectedService.title,\n );\n if (hasSelectedChild) {\n return item.id;\n }\n }\n }\n return undefined;\n });\n\n // Default image renderer using standard img tag\n const defaultRenderImage = ({ src, alt, width, height }: { src: string; alt: string; width: number; height: number }) => (\n <img src={src} alt={alt} width={width} height={height} style={{ objectFit: 'contain' }} />\n );\n\n const imageRenderer = renderImage || defaultRenderImage;\n\n // Reset local state when modal opens or selected service changes\n useEffect(() => {\n const newTitle = selectedService?.title || '';\n\n // Only update if the value actually changed\n if (newTitle !== selectedServiceTitle) {\n setSelectedServiceTitle(newTitle);\n }\n\n // Find and open the parent accordion if selected service is a child\n if (selectedService) {\n for (const item of serviceTypes) {\n if (item.type === 'accordion' && item.child.length > 0) {\n const hasSelectedChild = item.child.some(\n child => child.title === selectedService.title,\n );\n if (hasSelectedChild && openItems !== item.id) {\n setOpenItems(item.id);\n break;\n }\n }\n }\n } else if (openItems !== undefined) {\n setOpenItems(undefined);\n }\n }, [open, selectedService?.title]);\n\n const handleConfirm = () => {\n if (selectedServiceTitle) {\n // Find the selected service item from serviceTypes\n let selectedItem: TypeOfService | null = null;\n\n for (const item of serviceTypes) {\n if (item.title === selectedServiceTitle) {\n // Top level item selected\n selectedItem = {\n id: item.id,\n image: item.image,\n title: item.title,\n info: item.info,\n price: item.price,\n parentTitle: '',\n parentId: 0,\n type: item.type,\n typeOfPassanger: item.typeOfPassanger,\n child: [],\n };\n break;\n }\n if (item.child && item.child.length > 0) {\n const childItem = item.child.find(child => child.title === selectedServiceTitle);\n if (childItem) {\n selectedItem = {\n id: childItem.id,\n image: childItem.image,\n title: childItem.title,\n info: childItem.info,\n price: childItem.price,\n parentTitle: childItem.parentTitle,\n parentId: childItem.parentId,\n type: childItem.type,\n typeOfPassanger: childItem.typeOfPassanger,\n child: [],\n };\n break;\n }\n }\n }\n\n if (selectedItem) {\n onSave(selectedItem);\n }\n }\n };\n\n return (\n <Dialog\n open={open}\n onOpenChange={(_, data) => !data.open && onClose()}\n >\n <DialogSurface className={styles.dialogSurface}>\n <DialogBody>\n <DialogTitle\n action={\n <Button\n appearance=\"subtle\"\n aria-label=\"close\"\n icon={<Icon icon=\"fluent:dismiss-24-regular\" />}\n onClick={onClose}\n className={styles.closeButton}\n />\n }\n >\n {title}\n </DialogTitle>\n <DialogContent>\n <Accordion\n collapsible\n openItems={openItems}\n onToggle={(_, data) => setOpenItems(data.openItems[0] as number)}\n className={styles.passengerSection}\n >\n <RadioGroup\n value={selectedServiceTitle}\n onChange={(_, data) => setSelectedServiceTitle(data.value)}\n >\n {serviceTypes.map((item, index) => {\n if (item.type === 'accordion') {\n return (\n <AccordionItem key={index} value={item.id} className={styles.accordionItem}>\n <AccordionHeader\n className={styles.accordionHeader}\n expandIconPosition=\"end\"\n >\n <div>\n {imageRenderer({ src: item.image, alt: 'vehicles', width: 74, height: 74 })}\n </div>\n <div className={styles.accordionTitleAndInfo}>\n <Body1>{item.title}</Body1>\n <Caption1>{item.info}</Caption1>\n </div>\n </AccordionHeader>\n <AccordionPanel className={styles.accordionBody}>\n {item.child.length > 0 &&\n item.child.map((childItem, childIndex) => (\n <div\n key={childIndex}\n className={mergeClasses(\n styles.accordionHeader,\n styles.accordionItem,\n )}\n style={{ padding: tokens.spacingHorizontalXS }}\n >\n <div>\n {imageRenderer({\n src: childItem.image,\n alt: childItem.title,\n width: 48,\n height: 48,\n })}\n </div>\n <div className={styles.accordionTitleAndInfo}>\n <Body1>{childItem.title}</Body1>\n <Caption1>{childItem.info}</Caption1>\n </div>\n <Radio value={childItem.title} />\n </div>\n ))}\n </AccordionPanel>\n </AccordionItem>\n );\n } else if (item.type === 'radio') {\n return (\n <div\n key={index}\n className={mergeClasses(styles.accordionHeader, styles.accordionItem)}\n style={{ padding: tokens.spacingHorizontalXS }}\n >\n <div style={{ marginLeft: 2 }}>\n {imageRenderer({ src: item.image, alt: item.title, width: 74, height: 74 })}\n </div>\n <div className={styles.accordionTitleAndInfo} style={{ marginLeft: 18 }}>\n <Body1>{item.title}</Body1>\n <Caption1>{item.info}</Caption1>\n </div>\n <Radio value={item.title} />\n </div>\n );\n }\n return null;\n })}\n </RadioGroup>\n </Accordion>\n <div className={styles.footer}>\n <Button appearance=\"secondary\" shape=\"circular\" onClick={onClose}>\n Batal\n </Button>\n <Button\n appearance=\"primary\"\n shape=\"circular\"\n onClick={handleConfirm}\n disabled={!selectedServiceTitle}\n >\n Simpan\n </Button>\n </div>\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n\nexport default ModalTypeOfService;\n","/**\n * Default paths for vehicle icon images\n * These images are bundled with the library in the assets directory\n */\nexport const DEFAULT_VEHICLE_ICONS = {\n pedestrian: '/assets/images/icons/pedestrian.webp',\n roadbike: '/assets/images/icons/roadbike.webp',\n motorbike1: '/assets/images/icons/motorbike-1.webp',\n motorbike2: '/assets/images/icons/motorbike-2.svg',\n smallCar: '/assets/images/icons/small-car.webp',\n smallBus: '/assets/images/icons/small-bus.webp',\n bigBus: '/assets/images/icons/big-bus.webp',\n truck: '/assets/images/icons/truck.webp',\n bigTruck: '/assets/images/icons/big-truck.webp',\n looseLoad: '/assets/images/icons/loose-load.webp',\n} as const;\n\n/**\n * Helper function to get asset URL\n * Can be overridden by consuming applications\n */\nexport const getAssetUrl = (path: string): string => {\n return path;\n};\n","export const DEFAULT_SORT_OPTIONS = [\n { value: 'rekomendasi', label: 'Rekomendasi' },\n { value: 'harga-tertinggi', label: 'Harga Tertinggi' },\n { value: 'harga-terendah', label: 'Harga Terendah' },\n { value: 'keberangkatan-paling-awal', label: 'Keberangkatan Paling Awal' },\n { value: 'keberangkatan-paling-akhir', label: 'Keberangkatan Paling Akhir' },\n];\n\nexport const getSortLabel = (value: string): string => {\n const option = DEFAULT_SORT_OPTIONS.find(opt => opt.value === value);\n return option?.label || 'Rekomendasi';\n};\n","import React from 'react';\nimport {\n Button,\n Divider,\n makeStyles,\n Menu,\n MenuList,\n MenuPopover,\n MenuTrigger,\n Radio,\n RadioGroup,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport { SortMenuProps } from './SortMenu.types';\nimport { DEFAULT_SORT_OPTIONS, getSortLabel } from './SortMenu.constants';\n\nconst useStyles = makeStyles({\n container: {\n display: 'flex',\n width: '100%',\n gap: tokens.spacingHorizontalM,\n '@media (max-width: 768px)': {\n flexDirection: 'column',\n gap: tokens.spacingVerticalS,\n },\n },\n divider: {\n width: '100%',\n maxWidth: 'min-content',\n '@media (max-width: 768px)': {\n display: 'none',\n },\n },\n button: {\n borderRadius: tokens.borderRadiusCircular,\n color: tokens.colorBrandBackground,\n border: '1px solid ' + tokens.colorBrandBackground,\n },\n});\n\nexport const SortMenu: React.FC<SortMenuProps> = ({\n value,\n onChange,\n totalActiveFilters = 0,\n onFilterClick,\n onClearFilters,\n sortOptions = DEFAULT_SORT_OPTIONS,\n filterButtonText = 'Filter',\n sortButtonText = 'Urutkan Berdasarkan',\n clearFiltersText = '{count} Filter Dipilih',\n}) => {\n const styles = useStyles();\n\n const handleReset = () => {\n onChange('rekomendasi');\n };\n\n return (\n <div className={styles.container}>\n {onFilterClick && (\n <Button\n icon={<Icon icon=\"fluent:filter-16-regular\" />}\n size=\"medium\"\n type=\"button\"\n appearance=\"outline\"\n shape=\"circular\"\n className={styles.button}\n onClick={onFilterClick}\n >\n {filterButtonText}\n </Button>\n )}\n\n <Menu>\n <MenuTrigger disableButtonEnhancement>\n <Button\n icon={<Icon icon=\"fluent:arrow-sort-16-regular\" />}\n size=\"medium\"\n type=\"button\"\n shape=\"circular\"\n className={styles.button}\n >\n {sortButtonText}\n </Button>\n </MenuTrigger>\n <MenuPopover>\n <MenuList>\n <RadioGroup value={value} onChange={(_, data) => onChange(data.value)}>\n {sortOptions.map(option => (\n <Radio key={option.value} value={option.value} label={option.label} />\n ))}\n </RadioGroup>\n </MenuList>\n </MenuPopover>\n </Menu>\n\n <Divider vertical className={styles.divider} />\n\n <Button\n icon={<Icon icon=\"fluent:dismiss-32-regular\" />}\n size=\"medium\"\n iconPosition=\"after\"\n onClick={handleReset}\n type=\"button\"\n shape=\"circular\"\n className={styles.button}\n >\n {getSortLabel(value)}\n </Button>\n\n {totalActiveFilters > 0 && onClearFilters && (\n <>\n <Divider vertical className={styles.divider} />\n <Button\n icon={<Icon icon=\"fluent:dismiss-32-regular\" />}\n size=\"medium\"\n iconPosition=\"after\"\n type=\"button\"\n onClick={onClearFilters}\n shape=\"circular\"\n className={styles.button}\n >\n {clearFiltersText.replace('{count}', totalActiveFilters.toString())}\n </Button>\n </>\n )}\n </div>\n );\n};\n\nexport default SortMenu;\n","import { ModalFilterTicketLabels } from './ModalFilterTicket.types';\n\nexport const DEFAULT_LABELS: ModalFilterTicketLabels = {\n title: 'Filter dengan',\n serviceTypeLabel: 'Jenis Layanan',\n departureTimeLabel: 'Waktu pergi',\n arrivalTimeLabel: 'Waktu tiba',\n priceLabel: 'Harga',\n priceRangeText: (min: number, max: number) => {\n const formatPrice = (price: number) => new Intl.NumberFormat('id-ID').format(price);\n return `Mulai dari IDR ${formatPrice(min)} - ${formatPrice(max)}`;\n },\n durationLabel: 'Durasi perjalanan',\n durationRangeText: (min: number, max: number) => `Perjalanan ${min} - ${max} jam`,\n resetButton: 'Reset',\n applyButton: 'Terapkan',\n};\n\nexport const DEFAULT_SERVICE_TYPES = [\n { value: 'ropax-regular', label: 'Ropax Regular' },\n { value: 'ropax-express', label: 'Ropax Express' },\n { value: 'fast-ferry', label: 'Fast Ferry' },\n { value: 'bus-air', label: 'Bus Air' },\n { value: 'water-taxi', label: 'Water Taxi' },\n { value: 'pctc', label: 'PCTC' },\n { value: 'pcc', label: 'PCC' },\n];\n\nexport const DEFAULT_TIME_SLOTS = [\n { value: '00:00 - 06:00', label: '00:00 - 06:00' },\n { value: '06:00 - 12:00', label: '06:00 - 12:00' },\n { value: '12:00 - 18:00', label: '12:00 - 18:00' },\n { value: '18:00 - 24:00', label: '18:00 - 24:00' },\n];\n\nexport const DEFAULT_PRICE_RANGE = {\n min: 200000,\n max: 800000,\n};\n\nexport const DEFAULT_DURATION_RANGE = {\n min: 0,\n max: 8,\n};\n","import React, { useCallback, useState, useEffect } from 'react';\nimport {\n Body1,\n Button,\n Checkbox,\n Dialog,\n DialogActions,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n Divider,\n makeStyles,\n shorthands,\n Subtitle2,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport { Row, Col } from 'react-grid-system';\nimport { Range } from 'react-range';\n\nimport { ModalFilterTicketProps } from './ModalFilterTicket.types';\nimport {\n DEFAULT_LABELS,\n DEFAULT_SERVICE_TYPES,\n DEFAULT_TIME_SLOTS,\n DEFAULT_PRICE_RANGE,\n DEFAULT_DURATION_RANGE,\n} from './ModalFilterTicket.constants';\nimport { extendedTokens } from '../../constants';\n\nconst useStyles = makeStyles({\n dialogSurface: {\n maxWidth: '600px',\n width: '100%',\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n gap: tokens.spacingHorizontalXXL,\n paddingTop: tokens.spacingVerticalMNudge,\n paddingLeft: tokens.spacingHorizontalSNudge,\n paddingRight: tokens.spacingHorizontalSNudge,\n paddingBottom: tokens.spacingHorizontalXL,\n maxHeight: '70vh',\n overflowY: 'auto',\n },\n closeButton: {\n minWidth: '32px',\n minHeight: '32px',\n },\n section: {\n display: 'flex',\n flexDirection: 'column',\n gap: '12px',\n },\n containerRange: {\n display: 'flex',\n flexDirection: 'column',\n gap: tokens.spacingVerticalM,\n },\n spaceText: {\n display: 'flex',\n flexDirection: 'column',\n gap: tokens.spacingHorizontalXXS,\n },\n sliderContainer: {\n display: 'flex',\n flexDirection: 'column',\n gap: tokens.spacingVerticalS,\n ...shorthands.padding(tokens.spacingHorizontalNone, tokens.spacingHorizontalSNudge),\n },\n sliderValues: {\n display: 'flex',\n justifyContent: 'space-between',\n fontSize: tokens.fontSizeBase200,\n color: tokens.colorNeutralForeground2,\n marginTop: tokens.spacingVerticalXS,\n },\n footerButtons: {\n display: 'flex',\n gap: tokens.spacingVerticalM,\n justifyContent: 'flex-end',\n paddingTop: tokens.spacingVerticalL,\n },\n checkboxWrapper: {\n '& label': {\n whiteSpace: 'nowrap',\n },\n },\n buttonGrid: {\n display: 'grid',\n gridTemplateColumns: 'repeat(2, 1fr)',\n gap: '0.5rem',\n },\n outlinePrimary: {\n color: tokens.colorBrandBackground,\n ...shorthands.border('1px', 'solid', tokens.colorBrandBackground),\n ':hover': {\n backgroundColor: tokens.colorBrandBackgroundHover,\n ...shorthands.borderColor(tokens.colorBrandBackgroundHover),\n color: tokens.colorNeutralForegroundOnBrand,\n },\n },\n outlineDanger: {\n color: tokens.colorPaletteRedForeground1,\n ...shorthands.border('1px', 'solid', tokens.colorPaletteRedForeground1),\n ':hover': {\n backgroundColor: tokens.colorPaletteRedBackground1,\n ...shorthands.borderColor(tokens.colorPaletteRedForeground1),\n },\n },\n});\n\nexport const ModalFilterTicket: React.FC<ModalFilterTicketProps> = ({\n open,\n onOpenChange,\n selectedServiceTypes,\n onServiceTypesChange,\n departureTime,\n onDepartureTimeChange,\n arrivalTime,\n onArrivalTimeChange,\n priceRange,\n onPriceRangeChange,\n durationRange,\n onDurationRangeChange,\n onReset,\n onApply,\n labels,\n serviceTypes = DEFAULT_SERVICE_TYPES,\n timeSlots = DEFAULT_TIME_SLOTS,\n minPrice = DEFAULT_PRICE_RANGE.min,\n maxPrice = DEFAULT_PRICE_RANGE.max,\n minDuration = DEFAULT_DURATION_RANGE.min,\n maxDuration = DEFAULT_DURATION_RANGE.max,\n}) => {\n const styles = useStyles();\n const mergedLabels = { ...DEFAULT_LABELS, ...labels };\n const [rangeReady, setRangeReady] = useState(false);\n\n // Delay range slider rendering to prevent errors\n useEffect(() => {\n if (open) {\n const timer = setTimeout(() => {\n setRangeReady(true);\n }, 200);\n\n return () => {\n clearTimeout(timer);\n setRangeReady(false);\n };\n }\n }, [open]);\n\n\n const handleServiceTypeToggle = (value: string) => {\n if (selectedServiceTypes.includes(value)) {\n onServiceTypesChange(selectedServiceTypes.filter(s => s !== value));\n } else {\n onServiceTypesChange([...selectedServiceTypes, value]);\n }\n };\n\n const handleDepartureTimeChange = (value: string, checked: boolean) => {\n if (checked) {\n onDepartureTimeChange([...departureTime, value]);\n } else {\n onDepartureTimeChange(departureTime.filter(t => t !== value));\n }\n };\n\n const handleArrivalTimeChange = (value: string, checked: boolean) => {\n if (checked) {\n onArrivalTimeChange([...arrivalTime, value]);\n } else {\n onArrivalTimeChange(arrivalTime.filter(t => t !== value));\n }\n };\n\n const formatPrice = (price: number) => {\n return new Intl.NumberFormat('id-ID').format(price);\n };\n\n const renderPriceTrack = useCallback(\n ({ props, children }: any) => {\n const [value1, value2] = priceRange;\n const percent1 = ((value1 - minPrice) / (maxPrice - minPrice)) * 100;\n const percent2 = ((value2 - minPrice) / (maxPrice - minPrice)) * 100;\n\n return (\n <div\n {...props}\n ref={props.ref}\n style={{\n ...props.style,\n height: '4px',\n width: '100%',\n backgroundColor: tokens.colorNeutralStroke2,\n borderRadius: tokens.borderRadiusSmall,\n position: 'relative',\n }}\n >\n <div\n style={{\n position: 'absolute',\n height: '100%',\n left: `${percent1}%`,\n right: `${100 - percent2}%`,\n backgroundColor: tokens.colorBrandBackground,\n borderRadius: tokens.borderRadiusSmall,\n }}\n />\n {children}\n </div>\n );\n },\n [priceRange, minPrice, maxPrice],\n );\n\n const renderDurationTrack = useCallback(\n ({ props, children }: any) => {\n const [value1, value2] = durationRange;\n const percent1 = ((value1 - minDuration) / (maxDuration - minDuration)) * 100;\n const percent2 = ((value2 - minDuration) / (maxDuration - minDuration)) * 100;\n\n return (\n <div\n {...props}\n ref={props.ref}\n style={{\n ...props.style,\n height: '4px',\n width: '100%',\n backgroundColor: tokens.colorNeutralStroke2,\n borderRadius: tokens.borderRadiusSmall,\n position: 'relative',\n }}\n >\n <div\n style={{\n position: 'absolute',\n height: '100%',\n left: `${percent1}%`,\n right: `${100 - percent2}%`,\n backgroundColor: tokens.colorBrandBackground,\n borderRadius: tokens.borderRadiusSmall,\n }}\n />\n {children}\n </div>\n );\n },\n [durationRange, minDuration, maxDuration],\n );\n\n const renderThumb = ({ props }: any) => (\n <div\n {...props}\n ref={props.ref}\n style={{\n ...props.style,\n height: '15px',\n width: '15px',\n borderRadius: '50%',\n backgroundColor: tokens.colorBrandBackground,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n boxShadow: tokens.shadow4,\n }}\n />\n );\n\n return (\n <Dialog open={open} onOpenChange={(_, data) => onOpenChange(data.open)}>\n <DialogSurface className={styles.dialogSurface}>\n <DialogBody>\n <DialogTitle\n action={\n <Button\n appearance=\"subtle\"\n aria-label=\"close\"\n icon={<Icon icon=\"fluent:dismiss-24-regular\" />}\n className={styles.closeButton}\n onClick={() => onOpenChange(false)}\n />\n }\n >\n {mergedLabels.title}\n </DialogTitle>\n <DialogContent className={styles.content}>\n <Divider />\n \n {/* Jenis Layanan */}\n <div className={styles.section}>\n <Body1>{mergedLabels.serviceTypeLabel}</Body1>\n <div className={styles.buttonGrid}>\n {serviceTypes.map(service => {\n const isSelected = selectedServiceTypes.includes(service.value);\n return (\n <Button\n key={service.value}\n appearance={isSelected ? 'primary' : 'outline'}\n className={isSelected ? '' : styles.outlinePrimary}\n size=\"large\"\n onClick={() => handleServiceTypeToggle(service.value)}\n style={{ width: '100%' }}\n >\n {service.label}\n </Button>\n );\n })}\n </div>\n </div>\n \n <Divider />\n \n {/* Waktu Pergi */}\n <div className={styles.section}>\n <Body1>{mergedLabels.departureTimeLabel}</Body1>\n <Row>\n {timeSlots.map(slot => (\n <Col key={slot.value} xs={6} sm={6} md={6} lg={3} xl={3} xxl={3} xxxl={3}>\n <div className={styles.checkboxWrapper}>\n <Checkbox\n label={slot.label}\n checked={departureTime.includes(slot.value)}\n onChange={(_, data) =>\n handleDepartureTimeChange(slot.value, data.checked as boolean)\n }\n />\n </div>\n </Col>\n ))}\n </Row>\n </div>\n \n <Divider />\n \n {/* Waktu Tiba */}\n <div className={styles.section}>\n <Body1>{mergedLabels.arrivalTimeLabel}</Body1>\n <Row>\n {timeSlots.map(slot => (\n <Col key={slot.value} xs={6} sm={6} md={6} lg={3} xl={3} xxl={3} xxxl={3}>\n <div className={styles.checkboxWrapper}>\n <Checkbox\n label={slot.label}\n checked={arrivalTime.includes(slot.value)}\n onChange={(_, data) =>\n handleArrivalTimeChange(slot.value, data.checked as boolean)\n }\n />\n </div>\n </Col>\n ))}\n </Row>\n </div>\n \n <Divider />\n \n {/* Harga */}\n <div className={styles.containerRange}>\n <div className={styles.spaceText}>\n <Subtitle2>{mergedLabels.priceLabel}</Subtitle2>\n <Body1>{mergedLabels.priceRangeText(priceRange[0], priceRange[1])}</Body1>\n </div>\n <div className={styles.sliderContainer}>\n {rangeReady && (\n <Range\n key={open ? 'open' : 'closed'}\n min={minPrice}\n max={maxPrice}\n values={priceRange}\n onChange={(values: number[]) => onPriceRangeChange(values as [number, number])}\n renderTrack={renderPriceTrack}\n renderThumb={renderThumb}\n />\n )}\n <div className={styles.sliderValues}>\n <span>{formatPrice(minPrice)}</span>\n <span>{formatPrice(maxPrice)}</span>\n </div>\n </div>\n </div>\n \n <Divider />\n \n {/* Durasi Perjalanan */}\n <div className={styles.containerRange}>\n <div className={styles.spaceText}>\n <Subtitle2>{mergedLabels.durationLabel}</Subtitle2>\n <Body1>{mergedLabels.durationRangeText(durationRange[0], durationRange[1])}</Body1>\n </div>\n <div className={styles.sliderContainer}>\n {rangeReady && (\n <Range\n key={open ? 'open' : 'closed'}\n step={1}\n min={minDuration}\n max={maxDuration}\n values={durationRange}\n onChange={(values: number[]) => onDurationRangeChange(values as [number, number])}\n renderTrack={renderDurationTrack}\n renderThumb={renderThumb}\n />\n )}\n <div className={styles.sliderValues}>\n <span>{minDuration} jam</span>\n <span>{maxDuration} jam</span>\n </div>\n </div>\n </div>\n </DialogContent>\n \n <DialogActions className={styles.footerButtons}>\n <Button\n className={styles.outlineDanger}\n appearance=\"outline\"\n shape=\"circular\"\n onClick={onReset}\n >\n {mergedLabels.resetButton}\n </Button>\n <Button appearance=\"primary\" onClick={onApply} shape=\"circular\">\n {mergedLabels.applyButton}\n </Button>\n </DialogActions>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n","import { DateFilterLabels } from './DateFilter.types';\n\nexport const DEFAULT_LABELS: DateFilterLabels = {\n prevButtonAriaLabel: 'Previous dates',\n nextButtonAriaLabel: 'Next dates',\n calendarButtonAriaLabel: 'Open calendar',\n};\n\nexport const DEFAULT_SCROLL_AMOUNT = 150;\n","import React, { useRef } from 'react';\nimport { Button, Caption2Strong, makeStyles, mergeClasses, shorthands, tokens } from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport { Visible } from 'react-grid-system';\n\nimport { DateFilterProps } from './DateFilter.types';\nimport { DEFAULT_LABELS, DEFAULT_SCROLL_AMOUNT } from './DateFilter.constants';\n\nconst useStyles = makeStyles({\n container: {\n display: 'flex',\n alignItems: 'stretch',\n gap: '8px',\n overflowX: 'auto',\n maxWidth: '95vw',\n boxSizing: 'border-box',\n },\n compoundHeight: {\n // height: '63px',\n },\n item: {\n minWidth: 'clamp(50px, 10vw, 140px)',\n scrollSnapAlign: 'start',\n flexShrink: 0,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n height: '63px',\n '@media (min-width: 1600px)': {\n flexGrow: 1,\n flexShrink: 1,\n minWidth: '120px',\n },\n },\n scrollContainer: {\n display: 'flex',\n overflowX: 'auto',\n scrollSnapType: 'x mandatory',\n gap: '12px',\n scrollbarWidth: 'none',\n msOverflowStyle: 'none',\n minWidth: 0,\n flexGrow: 1,\n '@media (min-width: 1600px)': {\n overflowX: 'visible',\n justifyContent: 'stretch',\n },\n '::-webkit-scrollbar': {\n display: 'none',\n },\n },\n compoundButton: {\n width: '100%',\n textAlign: 'center',\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n gap: '4px',\n backgroundColor: 'white',\n },\n button: {\n minWidth: '48px',\n height: '100%',\n },\n buttonCalendar: {\n minWidth: '65px',\n height: '100%',\n },\n selected: {\n color: tokens.colorBrandBackground,\n ...shorthands.borderColor(tokens.colorBrandBackground),\n ':hover': {\n backgroundColor: tokens.colorBrandBackgroundHover,\n ...shorthands.borderColor(tokens.colorBrandBackgroundHover),\n color: tokens.colorNeutralForegroundOnBrand,\n },\n },\n});\n\nexport const DateFilter: React.FC<DateFilterProps> = ({\n dates,\n selectedDate,\n onDateClick,\n onCalendarClick,\n showNavigation = true,\n showCalendarButton = true,\n scrollAmount = DEFAULT_SCROLL_AMOUNT,\n labels,\n}) => {\n const styles = useStyles();\n const scrollRef = useRef<HTMLDivElement>(null);\n const mergedLabels = { ...DEFAULT_LABELS, ...labels };\n\n const handlePrev = () => {\n scrollRef.current?.scrollBy({ left: -scrollAmount, behavior: 'smooth' });\n };\n\n const handleNext = () => {\n scrollRef.current?.scrollBy({ left: scrollAmount, behavior: 'smooth' });\n };\n\n return (\n <div className={styles.container}>\n {showNavigation && (\n <Visible lg xl xxl xxxl>\n <div className={styles.compoundHeight}>\n <Button\n icon={<Icon icon=\"fluent:chevron-left-32-regular\" />}\n size=\"small\"\n onClick={handlePrev}\n className={styles.button}\n aria-label={mergedLabels.prevButtonAriaLabel}\n />\n </div>\n </Visible>\n )}\n\n {/* Date Carousel */}\n <div ref={scrollRef} className={styles.scrollContainer}>\n {dates.map((date, index) => (\n <div key={index} className={styles.item}>\n <Button\n appearance=\"outline\"\n type=\"button\"\n className={mergeClasses(\n styles.compoundButton,\n selectedDate === date.label ? styles.selected : '',\n )}\n onClick={() => onDateClick(date.label)}\n >\n <Caption2Strong truncate>{date.label}</Caption2Strong>\n <Caption2Strong truncate>{date.price}</Caption2Strong>\n </Button>\n </div>\n ))}\n </div>\n\n {showNavigation && (\n <Visible lg xl xxl xxxl>\n <div className={styles.compoundHeight}>\n <Button\n icon={<Icon icon=\"fluent:chevron-right-32-filled\" />}\n onClick={handleNext}\n className={styles.button}\n size=\"small\"\n aria-label={mergedLabels.nextButtonAriaLabel}\n />\n </div>\n </Visible>\n )}\n\n {showCalendarButton && (\n <div className={styles.compoundHeight}>\n <Button\n size=\"small\"\n icon={<Icon icon=\"fluent:calendar-32-regular\" />}\n className={styles.buttonCalendar}\n onClick={onCalendarClick}\n aria-label={mergedLabels.calendarButtonAriaLabel}\n />\n </div>\n )}\n </div>\n );\n};\n","/**\n * Default labels for ModalSearchTicket\n */\nexport const DEFAULT_LABELS = {\n title: 'Cari Jadwal Lainnya',\n fromLabel: 'Dari',\n toLabel: 'Ke',\n departureDateLabel: 'Tanggal Berangkat',\n returnDateLabel: 'Tanggal Pulang',\n roundTripLabel: 'Pulang Pergi',\n serviceClassLabel: 'Kelas Layanan',\n typeOfServiceLabel: 'Jenis penumpang',\n passengerLabel: 'Penumpang',\n searchButton: 'Cari Tiket',\n fromPlaceholder: 'Pilih pelabuhan asal',\n toPlaceholder: 'Pilih pelabuhan tujuan',\n departureDatePlaceholder: 'Pilih Tanggal Berangkat',\n returnDatePlaceholder: 'Pilih Tanggal Pulang',\n serviceClassPlaceholder: 'Pilih Kelas Layanan',\n typeOfServicePlaceholder: 'Pilih Jenis penumpang',\n passengerPlaceholder: 'Pilih Penumpang',\n};\n\n/**\n * Default form values\n */\nexport const DEFAULT_FORM_VALUES = {\n from: '',\n to: '',\n startDate: '',\n roundTrip: false,\n endDate: '',\n serviceClass: '',\n typeOfService: '',\n passenger: '',\n};\n","import {\n Button,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n Divider,\n makeStyles,\n tokens,\n} from \"@fluentui/react-components\";\nimport { Icon } from \"@iconify/react\";\nimport React, { useEffect, useRef } from \"react\";\nimport { Col, Row, Visible } from \"react-grid-system\";\nimport { useForm, useWatch } from \"react-hook-form\";\nimport { InputDynamic } from \"../InputDynamic\";\nimport {\n ModalSearchTicketProps,\n SearchTicketFormData,\n} from \"./ModalSearchTicket.types\";\nimport { DEFAULT_FORM_VALUES } from \"./ModalSearchTicket.constants\";\nimport { extendedTokens } from \"../../constants\";\n\nconst useStyles = makeStyles({\n dialogSurface: {\n maxWidth: \"900px\",\n width: \"100%\",\n },\n closeButton: {\n minWidth: \"32px\",\n minHeight: \"32px\",\n },\n content: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"24px\",\n paddingTop: \"10px\",\n paddingLeft: \"10px\",\n paddingRight: \"10px\",\n paddingBottom: \"20px\",\n },\n formInnerRow: {\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n margin: \"0 !important\",\n },\n },\n formFieldRow: {\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n gap: \"12px !important\",\n },\n },\n formField: {\n padding: \"16px\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"8px\",\n borderRadius: tokens.borderRadiusXLarge,\n border: \"1px solid \" + tokens.colorNeutralStroke1,\n height: \"100%\",\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n padding: \"20px\",\n borderRadius: tokens.borderRadiusXLarge,\n },\n },\n deviderButton: {\n display: \"flex\",\n justifyContent: \"center\",\n position: \"absolute\",\n left: \"18px\",\n bottom: \"-10px\",\n width: \"90%\",\n },\n serviceCol: {\n [`@media (max-width: ${extendedTokens.breakpointXl})`]: {\n paddingLeft: \"15px !important\",\n paddingRight: \"15px !important\",\n marginTop: \"16px\",\n },\n },\n searchButton: {\n width: \"100%\",\n borderRadius: tokens.borderRadiusCircular,\n },\n buttonSwitch: {\n background: tokens.colorNeutralBackground1,\n boxShadow: `0 1px 2px 0 ${tokens.colorNeutralShadowKey}, 0 0 2px 0 ${tokens.colorNeutralShadowAmbient}`,\n },\n switchIcon: {\n display: \"inline-flex\",\n transition: \"transform 0.3s ease\",\n },\n switchIconRotate: {\n transform: \"rotate(180deg)\",\n },\n});\n\n/**\n * ModalSearchTicket - A reusable modal component for searching ferry tickets\n *\n * This component provides a comprehensive form interface for searching ferry tickets with features like:\n * - Origin and destination harbor selection\n * - Departure and return date selection\n * - Round trip toggle\n * - Service class selection\n * - Type of service selection\n * - Passenger count selection\n * - Harbor switching functionality\n *\n * @example\n * ```tsx\n * <ModalSearchTicket\n * open={isOpen}\n * onClose={() => setIsOpen(false)}\n * defaultValues={{\n * from: 'Merak',\n * to: 'Bakauheni',\n * startDate: '12 Januari 2026',\n * roundTrip: false,\n * endDate: '',\n * serviceClass: '2 Kelas Layanan',\n * typeOfService: 'Pejalan Kaki',\n * passenger: '2 Penumpang',\n * }}\n * onSelectOrigin={() => openOriginModal()}\n * onSelectDestination={() => openDestinationModal()}\n * onSelectDepartureDate={() => openDateModal()}\n * onSelectReturnDate={() => openReturnDateModal()}\n * onSelectServiceClass={() => openServiceClassModal()}\n * onSelectTypeOfService={() => openTypeOfServiceModal()}\n * onSelectPassenger={() => openPassengerModal()}\n * onSwitchHarbor={() => switchHarbors()}\n * onSubmit={(data) => handleSearch(data)}\n * isSubmitDisabled={!isFormValid}\n * />\n * ```\n */\nexport const ModalSearchTicket: React.FC<ModalSearchTicketProps> = ({\n open,\n onClose,\n defaultValues,\n onSelectOrigin,\n onSelectDestination,\n onFromChange,\n onSelectDepartureDate,\n onSelectReturnDate,\n onSelectServiceClass,\n onSelectTypeOfService,\n onSelectPassenger,\n onSwitchHarbor,\n onSwitchClick,\n onRoundTripChange,\n onSubmit,\n toDisabled = false,\n endDateDisabled = false,\n serviceClassDisabled = false,\n typeOfServiceDisabled = false,\n roundTripDisabled = false,\n isSubmitDisabled = false,\n switchDisabled = false,\n isRotating = false,\n showPassengerField = false,\n showRoundTrip = true,\n ...props\n}) => {\n const styles = useStyles();\n\n const { control, setValue, handleSubmit, watch } =\n useForm<SearchTicketFormData>({\n defaultValues: {\n ...DEFAULT_FORM_VALUES,\n ...defaultValues,\n },\n });\n\n const roundTripValue = useWatch({\n control,\n name: \"roundTrip\",\n defaultValue: defaultValues?.roundTrip || false,\n });\n\n // Track if we're updating from props to prevent infinite loop\n const isUpdatingFromProps = useRef(false);\n\n // Update form values when props change\n useEffect(() => {\n if (defaultValues) {\n isUpdatingFromProps.current = true;\n Object.entries(defaultValues).forEach(([key, value]) => {\n setValue(key as keyof SearchTicketFormData, value as any);\n });\n // Reset flag after a tick to allow user interactions\n setTimeout(() => {\n isUpdatingFromProps.current = false;\n }, 0);\n }\n }, [defaultValues, setValue]);\n\n // Handle round trip change - only call callback if change is from user interaction\n useEffect(() => {\n if (onRoundTripChange && !isUpdatingFromProps.current) {\n onRoundTripChange(roundTripValue);\n }\n }, [roundTripValue, onRoundTripChange]);\n\n const handleFromChange = () => {\n setValue('to', '');\n if (onFromChange) {\n onFromChange();\n }\n };\n\n const onFormSubmit = (data: SearchTicketFormData) => {\n if (onSubmit) {\n onSubmit(data);\n }\n };\n\n return (\n <Dialog\n open={open}\n onOpenChange={(_, data) => !data.open && onClose()}\n {...props}\n >\n <DialogSurface className={styles.dialogSurface}>\n <DialogBody>\n <DialogTitle\n action={\n <Button\n appearance=\"subtle\"\n aria-label=\"close\"\n className={styles.closeButton}\n icon={<Icon icon=\"fluent:dismiss-24-regular\" />}\n onClick={onClose}\n />\n }\n >\n Cari Jadwal Lainnya\n </DialogTitle>\n <DialogContent className={styles.content}>\n <form onSubmit={handleSubmit(onFormSubmit)}>\n <Row style={{ width: \"100%\" }} className={styles.formInnerRow}>\n <Col xs={12} sm={12} lg={12} xl={6} xxl={6} xxxl={6}>\n <Row style={{ gap: \"16px\" }} className={styles.formFieldRow}>\n <Col xs={12} sm={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <div className={styles.formField}>\n <Row>\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={12}\n xxl={12}\n xxxl={12}\n >\n <InputDynamic\n name=\"from\"\n label=\"Dari\"\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:vehicle-ship-16-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder=\"Pilih pelabuhan asal\"\n onClick={onSelectOrigin}\n onChange={handleFromChange}\n validationRules={{\n required: 'Pelabuhan asal wajib diisi',\n }}\n required\n />\n <div className={styles.deviderButton}>\n <Divider />{\" \"}\n <Button\n onClick={onSwitchClick}\n className={styles.buttonSwitch}\n shape=\"circular\"\n appearance=\"secondary\"\n size=\"large\"\n disabled={switchDisabled}\n icon={\n <div\n className={`${styles.switchIcon} ${isRotating ? styles.switchIconRotate : \"\"}`}\n >\n <img\n src=\"/assets/images/icons/switch.svg\"\n alt=\"Switch\"\n width={26}\n height={26}\n />\n </div>\n }\n />\n </div>\n </Col>\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={12}\n xxl={12}\n xxxl={12}\n >\n <InputDynamic\n name=\"to\"\n label=\"Ke\"\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:location-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n disabled={toDisabled}\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder=\"Pilih pelabuhan tujuan\"\n onClick={onSelectDestination}\n validationRules={{\n required: 'Pelabuhan tujuan wajib diisi',\n }}\n required\n />\n </Col>\n </Row>\n </div>\n </Col>\n <Col xs={12} sm={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <div className={styles.formField}>\n <Row style={{ height: \"100%\" }}>\n <Col\n xs={6}\n sm={6}\n md={6}\n lg={6}\n xl={6}\n xxl={6}\n xxxl={6}\n >\n <div style={{ position: \"relative\", zIndex: 2 }}>\n <InputDynamic\n name=\"startDate\"\n label=\"Tanggal Berangkat\"\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:calendar-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder=\"Pilih Tanggal Berangkat\"\n onClick={onSelectDepartureDate}\n required\n validationRules={{\n required: 'Tanggal Berangkat wajib diisi',\n }}\n />\n </div>\n </Col>\n {showRoundTrip && <Col\n xs={6}\n sm={6}\n md={6}\n lg={6}\n xl={6}\n xxl={6}\n xxxl={6}\n style={{ display: \"flex\", justifyContent: \"end\" }}\n >\n <InputDynamic\n name=\"roundTrip\"\n label=\"Pulang Pergi\"\n control={control}\n type=\"switch\"\n disabled={roundTripDisabled}\n size=\"medium\"\n />\n </Col>}\n \n {roundTripValue && (\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={12}\n xxl={12}\n xxxl={12}\n >\n <InputDynamic\n name=\"endDate\"\n label=\"Tanggal Pulang\"\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:calendar-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder=\"Pilih Tanggal Pulang\"\n onClick={onSelectReturnDate}\n disabled={endDateDisabled}\n style={{ borderColor: \"transparent\" }}\n required={roundTripValue}\n validationRules={{\n required: 'Tanggal Pulang wajib diisi',\n }}\n />\n </Col>\n )}\n </Row>\n </div>\n </Col>\n </Row>\n </Col>\n <Visible xl xxl xxxl>\n <Col\n xs={12}\n sm={12}\n lg={12}\n xl={1}\n xxl={1}\n xxxl={1}\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n >\n <Divider vertical style={{ height: \"100%\" }} />\n </Col>\n </Visible>\n <Col\n xs={12}\n sm={12}\n lg={12}\n xl={5}\n xxl={5}\n xxxl={5}\n className={styles.serviceCol}\n >\n <Row style={{ height: \"100%\", gap: \"16px\" }}>\n <Col xs={12} sm={12} lg={12} xl={12} xxl={12} xxxl={12}>\n <div className={styles.formField}>\n <Row style={{ height: \"100%\", gap: \"16px\" }}>\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={12}\n xxl={12}\n xxxl={12}\n >\n <InputDynamic\n name=\"serviceClass\"\n label=\"Kelas Layanan\"\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:ribbon-star-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder=\"Pilih Kelas Layanan\"\n onClick={onSelectServiceClass}\n required\n disabled={serviceClassDisabled}\n />\n </Col>\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={12}\n xxl={12}\n xxxl={12}\n >\n <InputDynamic\n name=\"typeOfService\"\n label=\"Jenis penumpang\"\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:apps-list-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder=\"Pilih Jenis penumpang\"\n onClick={onSelectTypeOfService}\n required\n disabled={typeOfServiceDisabled}\n />\n </Col>\n {showPassengerField && (\n <Col\n xs={12}\n sm={12}\n md={12}\n lg={12}\n xl={12}\n xxl={12}\n xxxl={12}\n >\n <InputDynamic\n required\n name=\"passenger\"\n label=\"Penumpang\"\n control={control}\n type=\"text\"\n contentBefore={\n <Icon\n icon=\"fluent:people-24-filled\"\n color={tokens.colorBrandBackground}\n />\n }\n appearance=\"filled-lighter\"\n size=\"medium\"\n placeholder=\"Pilih Penumpang\"\n onClick={onSelectPassenger}\n />\n </Col>\n )}\n </Row>\n </div>\n </Col>\n </Row>\n </Col>\n <Col\n xs={12}\n sm={12}\n lg={12}\n xl={12}\n xxl={12}\n xxxl={12}\n style={{ paddingTop: \"2rem\" }}\n >\n <Button\n className={styles.searchButton}\n appearance=\"primary\"\n size=\"large\"\n type=\"submit\"\n icon={<Icon icon=\"fluent:vehicle-ship-20-filled\" />}\n disabled={isSubmitDisabled}\n >\n Cari Tiket\n </Button>\n </Col>\n </Row>\n </form>\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n\nexport default ModalSearchTicket;\n","import React, { Fragment, useMemo } from 'react';\nimport { makeStyles, mergeClasses } from '@fluentui/react-components';\n\nimport type { StepperProps, StepStatus } from './Stepper.types';\nimport { extendedTokens } from '../../constants';\n\n// Create styles with media queries matching original ferizy implementation\nconst useStyles = makeStyles({\n stepperWrapper: {\n position: 'relative',\n width: '100%',\n maxWidth: '988px',\n margin: '0 auto',\n [`@media (max-width: ${extendedTokens.breakpointMd})`]: {\n maxWidth: '100%',\n },\n },\n stepperContainer: {\n position: 'relative',\n width: '100%',\n height: '78px',\n display: 'flex',\n flexDirection: 'column',\n [`@media (max-width: ${extendedTokens.breakpointMd})`]: {\n height: '60px',\n },\n },\n stepperBackground: {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n zIndex: 0,\n pointerEvents: 'none',\n },\n stepsRow: {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-around',\n padding: '0 60px',\n height: '50%',\n zIndex: 2,\n [`@media (max-width: ${extendedTokens.breakpointMd})`]: {\n padding: '0 30px',\n },\n },\n stepCircleWrapper: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n position: 'relative',\n zIndex: 3,\n },\n stepCircle: {\n width: '24px',\n height: '24px',\n borderRadius: '25%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '16px',\n fontWeight: 'bold',\n transition: 'all 0.3s ease',\n [`@media (max-width: ${extendedTokens.breakpointMd})`]: {\n width: '16px',\n height: '16px',\n fontSize: '14px',\n },\n },\n stepCircleActive: {\n backgroundColor: '#FFFFFF',\n color: '#00AEEF',\n boxShadow: '0 2px 8px rgba(0, 174, 239, 0.3)',\n },\n stepCircleCompleted: {\n backgroundColor: '#8DC63F',\n color: '#FFFFFF',\n border: 'none',\n },\n stepCircleInactive: {\n backgroundColor: '#FFFFFF',\n color: '#999999',\n },\n stepLabel: {\n position: 'absolute',\n top: '50%',\n marginTop: '28px',\n left: '50%',\n transform: 'translateX(-50%)',\n fontSize: '12px',\n fontWeight: '600',\n textAlign: 'center',\n whiteSpace: 'nowrap',\n color: '#FFFFFF',\n [`@media (max-width: ${extendedTokens.breakpointMd})`]: {\n marginTop: '20px',\n fontSize: '9px',\n },\n },\n ferryIcon: {\n width: '40px',\n height: '40px',\n [`@media (max-width: ${extendedTokens.breakpointMd})`]: {\n width: '30px',\n height: '30px',\n },\n },\n stepConnector: {\n flex: 1,\n height: '4px',\n backgroundColor: '#CCCCCC',\n margin: '0 8px',\n alignSelf: 'center',\n [`@media (max-width: ${extendedTokens.breakpointMd})`]: {\n height: '3px',\n margin: '0 4px',\n },\n },\n stepConnectorCompleted: {\n backgroundColor: '#8DC63F',\n },\n});\n\nexport const Stepper: React.FC<StepperProps> = ({\n steps,\n currentStep,\n className,\n}) => {\n const styles = useStyles();\n\n // Find current step index\n const currentStepIndex = useMemo(() => {\n if (typeof currentStep === 'number') {\n return steps.findIndex((step) => step.number === currentStep);\n }\n return steps.findIndex((step) => step.id === currentStep);\n }, [steps, currentStep]);\n\n const activeStepNumber = useMemo(() => {\n return currentStepIndex >= 0 ? steps[currentStepIndex].number : 1;\n }, [currentStepIndex, steps]);\n\n const getStepStatus = (stepNumber: number): StepStatus => {\n if (stepNumber < activeStepNumber) return 'completed';\n if (stepNumber === activeStepNumber) return 'active';\n return 'inactive';\n };\n\n const getCircleClass = (stepNumber: number) => {\n const status = getStepStatus(stepNumber);\n const baseClass = styles.stepCircle;\n if (status === 'active') return `${baseClass} ${styles.stepCircleActive}`;\n if (status === 'completed') return `${baseClass} ${styles.stepCircleCompleted}`;\n return `${baseClass} ${styles.stepCircleInactive}`;\n };\n\n const getConnectorClass = (currentStepNumber: number) => {\n if (currentStepNumber < activeStepNumber) {\n return `${styles.stepConnector} ${styles.stepConnectorCompleted}`;\n }\n return styles.stepConnector;\n };\n\n return (\n <div className={mergeClasses(styles.stepperWrapper, className)}>\n <div className={styles.stepperContainer}>\n {/* Background SVG */}\n <img\n src=\"/assets/images/reservation/stepper_bg.svg\"\n alt=\"Stepper Background\"\n className={styles.stepperBackground}\n />\n\n {/* Step circles row */}\n <div className={styles.stepsRow}>\n {steps.map((step, index) => (\n <Fragment key={step.id}>\n <div className={styles.stepCircleWrapper}>\n {getStepStatus(step.number) === 'active' ? (\n <img\n src=\"/assets/images/reservation/ferry_step.svg\"\n alt=\"Ferry\"\n className={styles.ferryIcon}\n />\n ) : (\n <div className={getCircleClass(step.number)}>{step.number}</div>\n )}\n <span className={styles.stepLabel}>{step.label}</span>\n </div>\n {/* Add connector line between steps (except after last step) */}\n {index < steps.length - 1 && (\n <div className={getConnectorClass(step.number)} />\n )}\n </Fragment>\n ))}\n </div>\n </div>\n </div>\n );\n};\n\n","import React from 'react';\nimport {\n Card,\n Title3,\n Subtitle2,\n Body1,\n makeStyles,\n tokens,\n} from '@fluentui/react-components';\n\nimport type { CardOrdererInfoProps } from './CardOrdererInfo.types';\nimport tokensV2 from '../../constants/generated/tokensV2';\n\nconst useStyles = makeStyles({\n card: {\n padding: '1.5rem',\n borderRadius: tokens.borderRadiusXLarge,\n boxShadow: tokens.shadow4,\n zIndex: 3,\n },\n container: {\n display: 'flex',\n justifyContent: 'space-between',\n marginTop: '1rem',\n },\n fieldGroup: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0.25rem',\n },\n label: {\n color: tokens.colorNeutralForeground2,\n },\n value: {\n color: tokensV2.lightModeColors.Neutral_Foreground_Disabled_Rest,\n },\n});\n\nexport const CardOrdererInfo: React.FC<CardOrdererInfoProps> = ({\n orderer,\n className,\n}) => {\n const styles = useStyles();\n\n return (\n <Card className={className || styles.card}>\n <Title3>Informasi Pemesan</Title3>\n\n <div className={styles.container}>\n <div className={styles.fieldGroup}>\n <Subtitle2 className={styles.label}>Nama Pemesan</Subtitle2>\n <Body1 className={styles.value}>{orderer?.name || '-'}</Body1>\n </div>\n\n <div className={styles.fieldGroup}>\n <Subtitle2 className={styles.label}>Nomor Handphone</Subtitle2>\n <Body1 className={styles.value}>{orderer?.phoneNumber || '-'}</Body1>\n </div>\n\n <div className={styles.fieldGroup}>\n <Subtitle2 className={styles.label}>Email</Subtitle2>\n <Body1 className={styles.value}>{orderer?.email || '-'}</Body1>\n </div>\n </div>\n </Card>\n );\n};\n","import React from 'react';\nimport {\n Button,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n Input,\n makeStyles,\n Subtitle1,\n Subtitle2,\n Switch,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\n\nimport type { ModalListPassengerProps } from './ModalListPassenger.types';\n\nconst useStyles = makeStyles({\n dialogSurface: {\n maxWidth: '600px',\n width: '100%',\n borderRadius: tokens.borderRadiusXLarge,\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n gap: '1.5rem',\n padding: '1.5rem',\n },\n searchInput: {\n width: '100%',\n },\n passengerList: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5rem',\n },\n passengerItem: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '1rem',\n borderRadius: tokens.borderRadiusMedium,\n border: `1px solid ${tokens.colorNeutralStroke2}`,\n cursor: 'pointer',\n transition: 'all 0.2s ease',\n ':hover': {\n backgroundColor: tokens.colorNeutralBackground1Hover,\n },\n },\n actions: {\n display: 'flex',\n gap: '1rem',\n justifyContent: 'flex-end',\n marginTop: '1rem',\n },\n});\n\n/**\n * ModalListPassenger - A reusable modal component for selecting passengers from a list\n * \n * This component provides a modal interface for selecting passengers with features like:\n * - Search functionality\n * - \"Sama Dengan Pemesan\" toggle\n * - Edit passenger option\n * - Add new passenger option\n * \n * @example\n * ```tsx\n * <ModalListPassenger\n * open={isOpen}\n * onClose={() => setIsOpen(false)}\n * passengers={passengerList}\n * searchQuery={search}\n * onSearchChange={setSearch}\n * onSelectPassenger={handleSelect}\n * onEditPassenger={handleEdit}\n * onAddPassenger={handleAdd}\n * sameAsOrderer={sameAsOrderer}\n * onSameAsOrdererChange={setSameAsOrderer}\n * />\n * ```\n */\nexport const ModalListPassenger: React.FC<ModalListPassengerProps> = ({\n open,\n onClose,\n title = 'Detail Penumpang',\n passengers,\n searchQuery,\n onSearchChange,\n onSelectPassenger,\n onEditPassenger,\n onAddPassenger,\n sameAsOrderer,\n onSameAsOrdererChange,\n}) => {\n const styles = useStyles();\n\n const handleClose = () => {\n onClose();\n onSearchChange('');\n };\n\n const handleSelectPassenger = (passenger: any) => {\n onSelectPassenger(passenger);\n handleClose();\n };\n\n // Filter passengers by search query\n const filteredPassengers = passengers.filter((passenger) => {\n if (!searchQuery) return true;\n const query = searchQuery.toLowerCase();\n return (\n passenger.name?.toLowerCase().includes(query) ||\n passenger.category?.toLowerCase().includes(query)\n );\n });\n\n return (\n <Dialog\n open={open}\n onOpenChange={(_, data) => {\n if (!data.open) {\n handleClose();\n }\n }}\n >\n <DialogSurface className={styles.dialogSurface}>\n <DialogBody>\n <DialogTitle\n action={\n <Switch\n label=\"Sama Dengan Pemesan\"\n checked={sameAsOrderer}\n onChange={(_, data) => onSameAsOrdererChange(data.checked)}\n />\n }\n >\n <Subtitle1>{title}</Subtitle1>\n </DialogTitle>\n <DialogContent className={styles.content}>\n <Input\n className={styles.searchInput}\n contentBefore={<Icon icon=\"fluent:search-24-regular\" />}\n placeholder=\"Cari Penumpang\"\n value={searchQuery}\n onChange={(_, data) => onSearchChange(data.value)}\n size=\"large\"\n />\n\n <div className={styles.passengerList}>\n {filteredPassengers.map((passenger, index) => (\n <div\n key={passenger.id || `passenger-${index}`}\n className={styles.passengerItem}\n onClick={() => handleSelectPassenger(passenger)}\n role=\"button\"\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n handleSelectPassenger(passenger);\n }\n }}\n >\n <div>\n <Subtitle2>\n {passenger.name} ({passenger.category})\n </Subtitle2>\n </div>\n <Icon\n icon=\"fluent:chevron-right-24-regular\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n onEditPassenger(passenger);\n }}\n width={20}\n height={20}\n />\n </div>\n ))}\n </div>\n\n <div className={styles.actions}>\n <Button\n appearance=\"primary\"\n size=\"large\"\n shape=\"circular\"\n onClick={onAddPassenger}\n >\n Tambah Penumpang\n </Button>\n <Button\n appearance=\"secondary\"\n size=\"large\"\n shape=\"circular\"\n onClick={handleClose}\n >\n Batal\n </Button>\n </div>\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n\nexport default ModalListPassenger;\n","import React, { useEffect } from 'react';\nimport {\n Button,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n Divider,\n makeStyles,\n Subtitle1,\n tokens,\n} from '@fluentui/react-components';\nimport { useForm } from 'react-hook-form';\n\nimport { InputDynamic } from '../InputDynamic';\nimport type { ModalPassengerFormProps, PassengerFormData } from './ModalPassengerForm.types';\n\nconst useStyles = makeStyles({\n dialogSurface: {\n maxWidth: '600px',\n width: '100%',\n borderRadius: tokens.borderRadiusXLarge,\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n gap: '1.5rem',\n },\n actions: {\n display: 'flex',\n gap: '1rem',\n justifyContent: 'flex-end',\n marginTop: '1rem',\n },\n});\n\n/**\n * ModalPassengerForm - A reusable modal component for adding/editing passenger details\n * \n * This component provides a form interface for passenger information with features like:\n * - Different fields for adult vs child/infant passengers\n * - Form validation\n * - Support for add and edit modes\n * \n * @example\n * ```tsx\n * <ModalPassengerForm\n * open={isOpen}\n * onClose={() => setIsOpen(false)}\n * onSubmit={handleSubmit}\n * defaultValues={passengerData}\n * isAdultForm={true}\n * titleOptions={titleOpts}\n * idTypeOptions={idTypeOpts}\n * cityOptions={cityOpts}\n * ticketClassOptions={ticketClassOpts}\n * />\n * ```\n */\nexport const ModalPassengerForm: React.FC<ModalPassengerFormProps> = ({\n open,\n onClose,\n title = 'Detail Penumpang',\n onSubmit,\n defaultValues,\n isAdultForm = true,\n titleOptions,\n idTypeOptions,\n cityOptions,\n ticketClassOptions,\n}) => {\n const styles = useStyles();\n\n const { control, handleSubmit, reset } = useForm<PassengerFormData>({\n defaultValues,\n });\n\n // Reset form when defaultValues change\n useEffect(() => {\n reset(defaultValues);\n }, [defaultValues, reset]);\n\n const handleFormSubmit = (data: PassengerFormData) => {\n onSubmit(data);\n reset();\n };\n\n const handleClose = () => {\n onClose();\n reset();\n };\n\n return (\n <Dialog\n open={open}\n onOpenChange={(_, data) => {\n if (!data.open) {\n handleClose();\n }\n }}\n >\n <DialogSurface className={styles.dialogSurface}>\n <DialogBody>\n <DialogTitle>\n <Subtitle1>{title}</Subtitle1>\n </DialogTitle>\n <DialogContent className={styles.content}>\n <form onSubmit={handleSubmit(handleFormSubmit)}>\n {/* Title Field */}\n <InputDynamic\n name=\"title\"\n control={control}\n type=\"select\"\n label=\"Title\"\n placeholder=\"Pilih\"\n options={titleOptions}\n size=\"large\"\n required\n validationRules={{\n required: 'Title harus dipilih',\n }}\n />\n\n {/* Nama Lengkap Field */}\n <InputDynamic\n name=\"name\"\n control={control}\n type=\"text\"\n label=\"Nama Lengkap\"\n placeholder=\"Masukkan Nama\"\n size=\"large\"\n required\n validationRules={{\n required: 'Nama lengkap harus diisi',\n minLength: {\n value: 3,\n message: 'Nama minimal 3 karakter',\n },\n }}\n />\n\n {/* Conditional Fields Based on Passenger Type */}\n {isAdultForm ? (\n <>\n {/* Jenis ID Field */}\n <InputDynamic\n name=\"idType\"\n control={control}\n type=\"select\"\n label=\"Jenis ID\"\n placeholder=\"Pilih\"\n options={idTypeOptions}\n size=\"large\"\n required\n validationRules={{\n required: 'Jenis ID harus dipilih',\n }}\n />\n\n {/* Nomor Identitas Field */}\n <InputDynamic\n name=\"idNumber\"\n control={control}\n type=\"text\"\n label=\"Nomor Identitas\"\n placeholder=\"Masukkan Nomor Identitas\"\n size=\"large\"\n required\n validationRules={{\n required: 'Nomor identitas harus diisi',\n minLength: {\n value: 6,\n message: 'Nomor identitas minimal 6 karakter',\n },\n }}\n />\n\n {/* Usia Field */}\n <InputDynamic\n name=\"age\"\n control={control}\n type=\"number\"\n label=\"Usia\"\n placeholder=\"Masukkan Usia\"\n size=\"large\"\n required\n validationRules={{\n required: 'Usia harus diisi',\n min: {\n value: 1,\n message: 'Usia minimal 1 tahun',\n },\n max: {\n value: 150,\n message: 'Usia maksimal 150 tahun',\n },\n }}\n />\n </>\n ) : (\n <>\n {/* Tanggal Lahir Field */}\n <InputDynamic\n name=\"date\"\n control={control}\n type=\"date\"\n label=\"Tanggal Lahir\"\n placeholder=\"Masukkan Tanggal Lahir\"\n size=\"large\"\n required\n validationRules={{\n required: 'Tanggal lahir harus diisi',\n }}\n />\n </>\n )}\n\n {/* Kota Kabupaten Field */}\n <InputDynamic\n name=\"cityId\"\n control={control}\n type=\"select\"\n label=\"Kota Kabupaten\"\n options={cityOptions}\n placeholder=\"Masukkan Nama Kota/Kabupaten\"\n size=\"large\"\n required\n validationRules={{\n required: 'Kota/Kabupaten harus diisi',\n }}\n />\n <br />\n <Divider />\n <br />\n\n {/* Kelas Penumpang Field */}\n <InputDynamic\n name=\"ticketClass\"\n control={control}\n type=\"radiobutton\"\n label=\"Kelas penumpang\"\n options={ticketClassOptions}\n required\n disabled\n />\n\n <div className={styles.actions}>\n <Button appearance=\"primary\" size=\"large\" shape=\"circular\" type=\"submit\">\n Simpan\n </Button>\n <Button\n appearance=\"secondary\"\n size=\"large\"\n shape=\"circular\"\n type=\"button\"\n onClick={handleClose}\n >\n Batal\n </Button>\n </div>\n </form>\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n\nexport default ModalPassengerForm;\n","import { tokens } from '@fluentui/react-components';\n\nexport interface BadgeConfig {\n color: string;\n icon: string;\n}\n\n/**\n * Get badge configuration based on ticket class\n * @param ticketClass - The ticket class (ECONOMY, BUSINESS, EXECUTIVE)\n * @returns Badge configuration with color and icon path\n */\nexport const getBadgeConfig = (ticketClass?: string): BadgeConfig => {\n const normalizedClass = ticketClass?.toUpperCase();\n switch (normalizedClass) {\n case 'EKONOMI':\n case 'ECONOMY':\n return {\n color: '#A74109',\n icon: '/assets/images/class/shield_badge_ekonomi.svg',\n };\n case 'BISNIS':\n case 'BUSINESS':\n return {\n color: '#859599',\n icon: '/assets/images/class/ribbon_badge_bisnis.svg',\n };\n case 'EKSEKUTIF':\n case 'EXECUTIVE':\n return {\n color: '#C19C00',\n icon: '/assets/images/class/crown_badge_eksekutif.svg',\n };\n default:\n return {\n color: tokens.colorNeutralBackground3,\n icon: '',\n };\n }\n};\n","import React from 'react';\nimport {\n Card,\n Title3,\n Subtitle2,\n makeStyles,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\n\nimport type { CardPassengerListProps } from './CardPassengerList.types';\nimport { getBadgeConfig } from '../../utils/badge';\n\nconst useStyles = makeStyles({\n card: {\n padding: '1.5rem',\n borderRadius: tokens.borderRadiusXLarge,\n boxShadow: tokens.shadow4,\n zIndex: 3,\n },\n headerContainer: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: '1rem',\n gap: '1rem',\n },\n headerTitle: {\n whiteSpace: 'nowrap',\n },\n headerLine: {\n height: '1px',\n flexGrow: 1,\n backgroundColor: tokens.colorNeutralStroke2,\n },\n passengerList: {\n display: 'flex',\n flexDirection: 'column',\n },\n passengerItem: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '1rem 0',\n cursor: 'pointer',\n borderBottom: `1px solid ${tokens.colorNeutralStroke2}`,\n ':last-child': {\n borderBottom: 'none',\n },\n ':hover': {\n backgroundColor: tokens.colorNeutralBackground1Hover,\n paddingLeft: '0.5rem',\n paddingRight: '0.5rem',\n margin: '0 -0.5rem',\n },\n transition: 'all 0.2s ease',\n },\n passengerInfo: {\n display: 'flex',\n alignItems: 'center',\n gap: '0.75rem',\n },\n passengerText: {\n color: '#00B8D4',\n },\n badgeContainer: {\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n },\n badgeContent: {\n display: 'flex',\n alignItems: 'center',\n padding: '0.25rem 0.75rem 0.25rem 1.5rem',\n borderTopRightRadius: '9999px',\n borderBottomRightRadius: '9999px',\n color: 'white',\n fontSize: tokens.fontSizeBase200,\n fontWeight: tokens.fontWeightMedium,\n marginLeft: '-14px',\n minHeight: '24px',\n },\n badgeIcon: {\n width: '28px',\n height: '32px',\n zIndex: 1,\n filter: 'drop-shadow(0px 2px 2px rgba(0, 0, 0, 0.1))',\n },\n});\n\n/**\n * CardPassengerList - A reusable card component for displaying passenger list\n * \n * This component provides a card interface for showing passengers with features like:\n * - Header with title and divider line\n * - List of passengers with service class badges\n * - Clickable passenger items\n * - Badge with overlapping icon design\n * \n * @example\n * ```tsx\n * <CardPassengerList\n * title=\"Data Penumpang\"\n * passengers={passengerList}\n * onPassengerClick={handleClick}\n * />\n * ```\n */\nexport const CardPassengerList: React.FC<CardPassengerListProps> = ({\n title = 'Data Penumpang',\n passengers,\n onPassengerClick,\n className,\n}) => {\n const styles = useStyles();\n\n return (\n <Card className={className || styles.card}>\n <div className={styles.headerContainer}>\n <Title3 className={styles.headerTitle}>{title}</Title3>\n <div className={styles.headerLine} />\n </div>\n\n <div className={styles.passengerList}>\n {passengers.map((passenger, index) => {\n const badgeConfig = getBadgeConfig(passenger.serviceName);\n \n return (\n <div\n key={passenger.id || `passenger-${index}`}\n className={styles.passengerItem}\n onClick={() => onPassengerClick(passenger)}\n role=\"button\"\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onPassengerClick(passenger);\n }\n }}\n >\n <div className={styles.passengerInfo}>\n <Subtitle2 className={styles.passengerText}>\n {passenger.name || `Penumpang ${index + 1}`} ({passenger.passengerType})\n </Subtitle2>\n </div>\n\n <div style={{ display: 'flex', alignItems: 'center', gap: '1rem' }}>\n <div className={styles.badgeContainer}>\n {badgeConfig.icon && (\n <img\n src={badgeConfig.icon}\n alt={passenger.serviceName}\n className={styles.badgeIcon}\n />\n )}\n <div\n className={styles.badgeContent}\n style={{ backgroundColor: badgeConfig.color }}\n >\n {passenger.serviceName}\n </div>\n </div>\n <Icon icon=\"fluent:chevron-right-24-regular\" width={20} height={20} />\n </div>\n </div>\n );\n })}\n </div>\n </Card>\n );\n};\n\nexport default CardPassengerList;\n","import React from 'react';\nimport {\n Body1,\n Body1Strong,\n Card,\n Divider,\n makeStyles,\n Radio,\n RadioGroup,\n Subtitle1,\n tokens,\n} from '@fluentui/react-components';\nimport { CardVehicleDetailProps } from './CardVehicleDetail.types';\nimport { InputDynamic } from '../InputDynamic';\n\nconst useStyles = makeStyles({\n card: {\n padding: '1.5rem',\n borderRadius: tokens.borderRadiusXLarge,\n boxShadow: tokens.shadow4,\n zIndex: 3,\n width: '100%',\n },\n vehicleType: {\n display: 'flex',\n alignItems: 'center',\n gap: '0.75rem',\n marginTop: '1rem',\n marginBottom: '1.5rem',\n },\n radioGroup: {\n marginTop: '1rem',\n },\n question: {\n color: tokens.colorNeutralForeground1,\n marginBottom: '0.5rem',\n },\n headerTitle: {\n color: tokens.colorNeutralForeground3,\n fontWeight: '500',\n width: '250px',\n }\n});\n\nexport const CardVehicleDetail: React.FC<CardVehicleDetailProps> = ({\n serviceTitle,\n serviceImage,\n control,\n vehicleNumberName = 'vehicleNumber',\n showLoadOption = false,\n hasLoad,\n onHasLoadChange,\n}) => {\n const styles = useStyles();\n\n return (\n <Card className={styles.card}>\n <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>\n <Subtitle1 className={styles.headerTitle}>\n Detail Kendaraan\n </Subtitle1>\n <div style={{ flex: 1, marginLeft: '1rem' }}>\n <Divider />\n </div>\n </div>\n <div className={styles.vehicleType}>\n <img\n alt={serviceTitle}\n src={serviceImage}\n height={75}\n width={75}\n style={{ objectFit: 'contain' }}\n />\n <Body1Strong>{serviceTitle}</Body1Strong>\n </div>\n\n <div style={{ display: 'flex', flexDirection: 'column', gap: '0.25rem' }}>\n <Body1 style={{ color: tokens.colorNeutralForeground1 }}>\n Nomor Kendaraan\n </Body1>\n <InputDynamic\n control={control}\n name={vehicleNumberName}\n placeholder=\"Contoh: B1234CD\"\n type=\"text\"\n />\n </div>\n\n {showLoadOption && (\n <div className={styles.radioGroup}>\n <Body1 className={styles.question}>Apakah kendaraan membawa muatan?</Body1>\n <RadioGroup\n value={hasLoad}\n onChange={(_, data) => onHasLoadChange?.(data.value as 'true' | 'false')}\n layout=\"horizontal\"\n >\n <Radio value=\"true\" label=\"Ya\" />\n <Radio value=\"false\" label=\"Tidak\" />\n </RadioGroup>\n </div>\n )}\n </Card>\n );\n};\n","import React from 'react';\nimport {\n Accordion,\n AccordionHeader,\n AccordionItem,\n AccordionPanel,\n Body1,\n Body1Strong,\n Button,\n Caption1,\n Card,\n Divider,\n makeStyles,\n Radio,\n RadioGroup,\n shorthands,\n Title3,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport { Col, Row } from 'react-grid-system';\nimport { Controller } from 'react-hook-form';\nimport { InputDynamic } from '../InputDynamic';\nimport { CardVehicleOwnerFormProps } from './CardVehicleOwnerForm.types';\n\nconst useStyles = makeStyles({\n card: {\n padding: '1.5rem',\n borderRadius: tokens.borderRadiusXLarge,\n boxShadow: tokens.shadow4,\n zIndex: 3,\n marginTop: '1.5rem',\n },\n header: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: '1rem',\n },\n accordion: {\n ...shorthands.border('1px', 'solid', tokens.colorNeutralStroke1),\n borderRadius: tokens.borderRadiusLarge,\n marginTop: '1rem',\n },\n accordionHeader: {\n backgroundColor: tokens.colorNeutralBackground2,\n },\n form: {\n display: 'flex',\n flexDirection: 'column',\n gap: '1rem',\n padding: '1rem',\n },\n label: {\n color: tokens.colorNeutralForeground2,\n marginBottom: '0.25rem',\n display: 'block',\n },\n link: {\n color: tokens.colorBrandForeground1,\n textDecorationLine: 'none',\n ':hover': {\n textDecorationLine: 'underline',\n },\n },\n});\n\nexport const CardVehicleOwnerForm: React.FC<CardVehicleOwnerFormProps> = ({\n owners,\n hasLoad,\n control,\n watch,\n setValue,\n getValues,\n onAddOwner,\n onDeleteOwner,\n onUpdateOwner,\n onAddCargo,\n onDeleteCargo,\n onUpdateCargoQuantity,\n companyOptions = [],\n cityOptions = [],\n}) => {\n const styles = useStyles();\n\n return (\n <Card className={styles.card}>\n <div className={styles.header}>\n <div style={{ display: 'flex', alignItems: 'center', flex: 1 }}>\n <Title3 style={{ marginRight: '1rem' }}>Informasi Pemilik & Muatan</Title3>\n <Divider style={{ flex: 1 }} />\n </div>\n <Button\n appearance=\"transparent\"\n icon={<Icon icon=\"fluent:add-24-regular\" />}\n style={{ color: tokens.colorNeutralForeground2 }}\n onClick={onAddOwner}\n >\n Tambah Pemilik\n </Button>\n </div>\n\n <Accordion collapsible defaultOpenItems={owners.map(o => String(o.id))} multiple>\n {owners.map((owner, index) => (\n <AccordionItem\n value={String(owner.id)}\n key={owner.id}\n className={styles.accordion}\n >\n <AccordionHeader className={styles.accordionHeader} expandIconPosition=\"end\">\n <div\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n }}\n >\n <Body1Strong>Informasi Pemilik {index + 1}</Body1Strong>\n {owners.length > 1 && (\n <Button\n appearance=\"transparent\"\n icon={<Icon icon=\"fluent:delete-24-regular\" />}\n onClick={e => {\n e.stopPropagation();\n onDeleteOwner(owner.id);\n }}\n style={{ color: tokens.colorPaletteRedForeground1 }}\n />\n )}\n </div>\n </AccordionHeader>\n <AccordionPanel>\n <div className={styles.form}>\n <Row>\n <Col lg={12}>\n <Body1 className={styles.label}>Nama Pengirim</Body1>\n </Col>\n <Col lg={6}>\n <div style={{ display: 'flex', gap: '2rem', marginBottom: '0.5rem' }}>\n <RadioGroup\n layout=\"horizontal\"\n value={owner.senderType}\n onChange={(_, data) =>\n onUpdateOwner(owner.id, {\n senderType: data.value as 'Perusahaan' | 'Perseorangan',\n })\n }\n >\n <Radio value=\"Perusahaan\" label=\"Perusahaan\" />\n <Radio value=\"Perseorangan\" label=\"Perseorangan\" />\n </RadioGroup>\n </div>\n <InputDynamic\n control={control}\n name={`owners.${index}.senderName`}\n placeholder={\n owner.senderType === 'Perusahaan'\n ? 'Pilih Nama Perusahaan'\n : 'Masukkan Nama Pengirim'\n }\n size=\"large\"\n type={owner.senderType === 'Perusahaan' ? 'select' : 'text'}\n options={owner.senderType === 'Perusahaan' ? companyOptions : []}\n />\n </Col>\n <Col lg={6}>\n <div style={{ height: '1rem' }} />\n <Body1 className={styles.label}>\n Data Estimasi Berat Muatan dan Kendaraan (Ton){' '}\n <span style={{ color: 'red' }}>*</span>\n </Body1>\n <InputDynamic\n control={control}\n name={`owners.${index}.estimatedWeight`}\n placeholder=\"Masukkan Angka\"\n size=\"large\"\n type=\"number\"\n />\n </Col>\n </Row>\n <Row>\n <Col>\n <Body1 className={styles.label}>Kota Asal</Body1>\n <InputDynamic\n control={control}\n name={`looseCargoOwners.${index}.originCity`}\n placeholder=\"Pilih\"\n type=\"select\"\n options={cityOptions}\n />\n </Col>\n <Col>\n <Body1 className={styles.label}>Kota Tujuan</Body1>\n <InputDynamic\n control={control}\n name={`looseCargoOwners.${index}.destinationCity`}\n placeholder=\"Pilih\"\n type=\"select\"\n options={cityOptions}\n />\n </Col>\n </Row>\n\n {hasLoad && (\n <>\n <Row>\n <Col>\n <Body1 className={styles.label}>\n Nama Perusahaan Pemilik Barang <span style={{ color: 'red' }}>*</span>\n </Body1>\n <div style={{ display: 'flex', gap: '2rem', marginBottom: '0.5rem' }}>\n <RadioGroup\n layout=\"horizontal\"\n value={owner.cargoOwnerType || 'Perusahaan'}\n onChange={(_, data) =>\n onUpdateOwner(owner.id, {\n cargoOwnerType: data.value as 'Perusahaan' | 'Perseorangan',\n })\n }\n >\n <Radio value=\"Perusahaan\" label=\"Perusahaan\" />\n <Radio value=\"Perseorangan\" label=\"Perseorangan\" />\n </RadioGroup>\n </div>\n <InputDynamic\n control={control}\n name={`looseCargoOwners.${index}.cargoOwnerName`}\n placeholder={\n owner.cargoOwnerType === 'Perusahaan'\n ? 'Pilih Nama Perusahaan Pemilik Barang'\n : 'Masukkan Nama Pemilik Barang'\n }\n size=\"large\"\n type={owner.cargoOwnerType === 'Perusahaan' ? 'select' : 'text'}\n options={owner.cargoOwnerType === 'Perusahaan' ? companyOptions : []}\n />\n <Caption1\n style={{\n color: tokens.colorNeutralForeground3,\n marginTop: '0.25rem',\n }}\n >\n Apabila nama perusahaan belum tersedia dapat memilih\n "Lainnya" dan silakan isi nama perusahaan\n </Caption1>\n </Col>\n\n <Col>\n <Body1 className={styles.label}>\n Nama Perusahaan Logistik <span style={{ color: 'red' }}>*</span>\n </Body1>\n <div style={{ display: 'flex', gap: '2rem', marginBottom: '0.5rem' }}>\n <RadioGroup\n layout=\"horizontal\"\n value={owner.logisticsCompanyType || 'Perseorangan'}\n onChange={(_, data) =>\n onUpdateOwner(owner.id, {\n logisticsCompanyType: data.value as\n | 'Perusahaan'\n | 'Perseorangan',\n })\n }\n >\n <Radio value=\"Perusahaan\" label=\"Perusahaan\" />\n <Radio value=\"Perseorangan\" label=\"Perseorangan\" />\n </RadioGroup>\n </div>\n <InputDynamic\n control={control}\n name={`looseCargoOwners.${index}.logisticsCompanyName`}\n placeholder={\n owner.logisticsCompanyType === 'Perusahaan'\n ? 'Pilih Nama Perusahaan Logistik'\n : 'Masukkan Nama Logistik'\n }\n size=\"large\"\n type={owner.logisticsCompanyType === 'Perusahaan' ? 'select' : 'text'}\n options={\n owner.logisticsCompanyType === 'Perusahaan' ? companyOptions : []\n }\n />\n <Caption1\n style={{\n color: tokens.colorNeutralForeground3,\n marginTop: '0.25rem',\n }}\n >\n Apabila nama perusahaan belum tersedia dapat memilih\n "Lainnya" dan silakan isi nama perusahaan\n </Caption1>\n </Col>\n </Row>\n\n <Row>\n <Col xs={12} md={12} lg={12}>\n <Body1 className={styles.label}>\n Nama Perusahaan Penerima Barang\n </Body1>\n </Col>\n <Col>\n <RadioGroup\n layout=\"horizontal\"\n value={owner.cargoReceiverType || 'Perusahaan'}\n onChange={(_, data) =>\n onUpdateOwner(owner.id, {\n cargoReceiverType: data.value as\n | 'Perusahaan'\n | 'Perseorangan',\n })\n }\n >\n <Radio value=\"Perusahaan\" label=\"Perusahaan\" />\n <Radio value=\"Perseorangan\" label=\"Perseorangan\" />\n </RadioGroup>\n <InputDynamic\n control={control}\n name={`looseCargoOwners.${index}.cargoReceiverName`}\n placeholder={\n owner.cargoReceiverType === 'Perusahaan'\n ? 'Pilih Nama Perusahaan Penerima Barang'\n : 'Masukkan Nama Penerima Barang'\n }\n size=\"large\"\n type={owner.cargoReceiverType === 'Perusahaan' ? 'select' : 'text'}\n options={owner.cargoReceiverType === 'Perusahaan' ? companyOptions : []}\n />\n <Caption1\n style={{\n color: tokens.colorNeutralForeground3,\n marginTop: '0.25rem',\n }}\n >\n Apabila nama perusahaan belum tersedia dapat memilih\n "Lainnya" dan silakan isi nama perusahaan\n </Caption1>\n </Col>\n <Col>\n <div style={{ height: '.5rem' }} />\n <Body1 className={styles.label}>\n Berat Muatan dan Kendaraan (Ton){' '}\n <span style={{ color: 'red' }}>*</span>\n </Body1>\n <InputDynamic\n control={control}\n name={`looseCargoOwners.${index}.cargoWeight`}\n placeholder=\"Masukkan Angka\"\n type=\"number\"\n size=\"large\"\n />\n </Col>\n </Row>\n <Row>\n <Col xs={12}>\n <Body1 className={styles.label}>Daftar Muatan</Body1>\n </Col>\n </Row>\n <Row>\n <Col xs={12}>\n <Accordion\n collapsible\n defaultOpenItems={\n owner.cargoItems?.map(cargo => `cargo-${cargo.id}`) || []\n }\n multiple\n >\n {owner.cargoItems?.map((cargo, cargoIndex) => (\n <AccordionItem\n value={`cargo-${cargo.id}`}\n key={cargo.id}\n className={styles.accordion}\n >\n <AccordionHeader\n className={styles.accordionHeader}\n expandIconPosition=\"end\"\n >\n <div\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n }}\n >\n <Body1Strong>Muatan {cargoIndex + 1}</Body1Strong>\n </div>\n </AccordionHeader>\n <AccordionPanel>\n <div className={styles.form}>\n <Row>\n <Col md={3}>\n <Body1 className={styles.label}>\n Data Komoditas <span style={{ color: 'red' }}>*</span>\n </Body1>\n <InputDynamic\n control={control}\n name={`looseCargoOwners.${index}.cargo.${cargoIndex}.commodity`}\n placeholder=\"Pilih\"\n type=\"select\"\n options={[]}\n />\n <Caption1\n style={{\n color: tokens.colorNeutralForeground3,\n marginTop: '0.25rem',\n }}\n >\n Pahami definisi, jenis dan contoh komoditas{' '}\n <a href=\"#\" className={styles.link}>\n disini\n </a>\n </Caption1>\n </Col>\n\n <Col md={3}>\n <Body1 className={styles.label}>\n Data Jenis Muatan{' '}\n <span style={{ color: 'red' }}>*</span>\n </Body1>\n <InputDynamic\n control={control}\n name={`looseCargoOwners.${index}.cargo.${cargoIndex}.cargoType`}\n placeholder=\"Pilih\"\n type=\"select\"\n options={[\n { value: 'karung', label: 'Karung' },\n { value: 'kg', label: 'Kg' },\n { value: 'ton', label: 'Ton' },\n { value: 'unit', label: 'Unit' },\n ]}\n />\n <Caption1\n style={{\n color: tokens.colorNeutralForeground3,\n marginTop: '0.25rem',\n }}\n >\n Apabila jenis muatan belum tersedia dapat memilih\n "Lainnya" dan silakan isi jenis muatannya.\n </Caption1>\n </Col>\n\n <Col md={3}>\n <Body1 className={styles.label}>Jumlah Muatan</Body1>\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n borderRadius: tokens.borderRadiusMedium,\n height: '40px',\n padding: '0 12px',\n backgroundColor: tokens.colorNeutralBackground1,\n }}\n >\n <div style={{ flex: 0.5 }} />\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '12px',\n }}\n >\n <Button\n appearance=\"transparent\"\n icon={\n <Icon\n icon=\"fluent:subtract-circle-24-regular\"\n style={{\n fontSize: '24px',\n color: tokens.colorNeutralForeground4,\n }}\n />\n }\n size=\"small\"\n onClick={() => {\n const currentVal =\n getValues(\n `looseCargoOwners.${index}.cargo.${cargoIndex}.quantity`,\n ) || 0;\n const currentQty = Number(currentVal);\n if (currentQty > 0) {\n const newVal = currentQty - 1;\n setValue(\n `looseCargoOwners.${index}.cargo.${cargoIndex}.quantity`,\n newVal,\n );\n onUpdateCargoQuantity(owner.id, cargo.id, newVal);\n }\n }}\n style={{ minWidth: '32px', padding: '0' }}\n />\n <div style={{ width: '40px' }}>\n <Controller\n name={`looseCargoOwners.${index}.cargo.${cargoIndex}.quantity`}\n control={control}\n render={({ field }) => (\n <input\n {...field}\n type=\"number\"\n style={{\n border: 'none',\n width: '100%',\n textAlign: 'center',\n outline: 'none',\n backgroundColor: 'transparent',\n color: tokens.colorNeutralForeground1,\n fontSize: tokens.fontSizeBase400,\n fontFamily: tokens.fontFamilyBase,\n }}\n onWheel={e =>\n (e.target as HTMLInputElement).blur()\n }\n />\n )}\n />\n </div>\n <Button\n appearance=\"transparent\"\n icon={\n <Icon\n icon=\"fluent:add-circle-24-regular\"\n style={{\n fontSize: '24px',\n color: tokens.colorBrandStroke1,\n }}\n />\n }\n size=\"small\"\n onClick={() => {\n const currentVal =\n getValues(\n `looseCargoOwners.${index}.cargo.${cargoIndex}.quantity`,\n ) || 0;\n const currentQty = Number(currentVal);\n const newVal = currentQty + 1;\n setValue(\n `looseCargoOwners.${index}.cargo.${cargoIndex}.quantity`,\n newVal,\n );\n onUpdateCargoQuantity(owner.id, cargo.id, newVal);\n }}\n style={{ minWidth: '32px', padding: '0' }}\n />\n </div>\n <div\n style={{\n flex: 1,\n textAlign: 'left',\n color: tokens.colorNeutralForeground1,\n fontSize: tokens.fontSizeBase300,\n paddingRight: '8px',\n }}\n >\n {(() => {\n const type = watch(\n `looseCargoOwners.${index}.cargo.${cargoIndex}.cargoType`,\n );\n if (type === 'karung') return 'Karung';\n if (type === 'kg') return 'Kg';\n if (type === 'ton') return 'Ton';\n if (type === 'unit') return 'Unit';\n return '';\n })()}\n </div>\n </div>\n </Col>\n\n <Col md={3}>\n <Body1 className={styles.label}>Harga</Body1>\n <InputDynamic\n control={control}\n name={`owners.${index}.price`}\n placeholder=\"Rp. 0\"\n disabled\n size=\"large\"\n type=\"text\"\n />\n </Col>\n </Row>\n\n <Row>\n <Col md={6}>\n <Body1 className={styles.label}>\n Data Jenis Industri{' '}\n <span style={{ color: 'red' }}>*</span>\n </Body1>\n <InputDynamic\n control={control}\n name={`looseCargoOwners.${index}.cargo.${cargoIndex}.industryType`}\n placeholder=\"Pilih\"\n type=\"select\"\n options={[]}\n />\n <Caption1\n style={{\n color: tokens.colorNeutralForeground3,\n marginTop: '0.25rem',\n }}\n >\n Apabila jenis industri belum tersedia dapat memilih\n "Lainnya" dan silakan isi jenis muatannya.\n </Caption1>\n </Col>\n\n <Col md={6}>\n <Body1 className={styles.label}>\n Kategori Muatan <span style={{ color: 'red' }}>*</span>\n </Body1>\n <InputDynamic\n control={control}\n name={`looseCargoOwners.${index}.cargo.${cargoIndex}.cargoCategory`}\n placeholder=\"Pilih\"\n type=\"select\"\n options={[]}\n />\n <Caption1\n style={{\n color: tokens.colorNeutralForeground3,\n marginTop: '0.25rem',\n }}\n >\n Pahami definisi, jenis dan contoh kategori muatan{' '}\n <a href=\"#\" className={styles.link}>\n disini\n </a>\n </Caption1>\n </Col>\n </Row>\n <Row>\n <Col>\n {(owner.cargoItems?.length || 0) > 1 && (\n <Button\n icon={<Icon icon=\"fluent:delete-24-regular\" />}\n onClick={e => {\n e.stopPropagation();\n onDeleteCargo(owner.id, cargo.id);\n }}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.stopPropagation();\n onDeleteCargo(owner.id, cargo.id);\n }\n }}\n size=\"medium\"\n shape=\"circular\"\n style={{\n border: `1px solid ${tokens.colorPaletteRedForeground1}`,\n color: tokens.colorPaletteRedForeground1,\n width: '100%',\n }}\n >\n Hapus Muatan\n </Button>\n )}\n </Col>\n </Row>\n </div>\n </AccordionPanel>\n </AccordionItem>\n ))}\n </Accordion>\n\n <Button\n appearance=\"secondary\"\n icon={<Icon icon=\"fluent:add-24-regular\" />}\n shape=\"circular\"\n style={{\n borderColor: tokens.colorBrandStroke1,\n color: tokens.colorBrandBackground,\n marginTop: '1rem',\n width: '100%',\n }}\n onClick={() => onAddCargo(owner.id)}\n >\n Tambah Muatan\n </Button>\n </Col>\n </Row>\n </>\n )}\n </div>\n </AccordionPanel>\n </AccordionItem>\n ))}\n </Accordion>\n </Card>\n );\n};\n","import React from 'react';\nimport {\n Badge,\n Body1,\n Body1Strong,\n Body1Stronger,\n Button,\n Caption2,\n Card,\n makeStyles,\n Subtitle1,\n Title3,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport { CardBookingTicketProps } from './CardBookingTicket.types';\n\nconst useStyles = makeStyles({\n container: {\n display: 'flex',\n flexDirection: 'column',\n gap: '2rem',\n },\n bookingDetail: {\n overflow: 'visible',\n borderRadius: tokens.borderRadiusXLarge,\n boxShadow: tokens.shadow4,\n },\n bookingDetailTop: {\n padding: '2rem',\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n boxShadow: 'none',\n borderTopLeftRadius: tokens.borderRadiusXLarge,\n borderTopRightRadius: tokens.borderRadiusXLarge,\n borderBottom: '0.7em dashed ' + tokens.colorNeutralBackground1Hover,\n overflow: 'visible',\n paddingBottom: '4rem',\n position: 'relative',\n },\n bookingDetailBottom: {\n padding: '2rem',\n paddingTop: '4rem',\n borderTopLeftRadius: 0,\n borderTopRightRadius: 0,\n boxShadow: 'none',\n borderBottomLeftRadius: tokens.borderRadiusXLarge,\n borderBottomRightRadius: tokens.borderRadiusXLarge,\n overflow: 'visible',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '1.5rem',\n },\n circularLeft: {\n position: 'absolute',\n width: '100px',\n height: '50px',\n borderRadius: '50%',\n backgroundColor: tokens.colorNeutralBackground1Hover,\n left: '-50px',\n bottom: '-30px',\n zIndex: 2,\n boxShadow: 'inset -3px 0px 1px rgba(0, 0, 0, 0.1)',\n },\n circularRight: {\n position: 'absolute',\n width: '100px',\n height: '50px',\n borderRadius: '50%',\n backgroundColor: tokens.colorNeutralBackground1Hover,\n right: '-50px',\n bottom: '-30px',\n zIndex: 2,\n boxShadow: 'inset 3px 0px 1px rgba(0, 0, 0, 0.1)',\n },\n headerBookingDetail: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n shipInfo: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: '1rem',\n },\n ticketInfo: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n gap: '0.5em',\n },\n ticketTime: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'start',\n gap: '0.5em',\n },\n ticketDuration: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '0.5rem',\n },\n totalPrice: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '1rem',\n width: '100%',\n },\n gapButton: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n gap: tokens.spacingHorizontalM,\n },\n priceText: {\n color: tokens.colorPaletteRedForeground1,\n },\n secondaryButton: {\n border: '1px solid ' + tokens.colorBrandStroke1,\n color: tokens.colorBrandBackground,\n width: '100%',\n }\n});\n\nexport const CardBookingTicket: React.FC<CardBookingTicketProps> = ({\n shipName = 'KMP PORTLINK',\n shipType = 'Water Taxi',\n shipTypeColor = 'success',\n departureDay = 'Kamis, 25 Sep',\n departureTime = '18:15',\n departureLocation = 'Merak, Banten',\n arrivalDay = 'Jumat, 26 Sep',\n arrivalTime = '19:25',\n arrivalLocation = 'Bakauheni, Lampung',\n duration = '1 jam 10 menit',\n totalPrice,\n reservationStep,\n paymentStep,\n onPriceDetailClick,\n onNext,\n onPrevious,\n className,\n}) => {\n const styles = useStyles();\n\n return (\n <div className={`${styles.container} ${className || ''}`}>\n <div className={styles.bookingDetail}>\n <Card className={styles.bookingDetailTop}>\n <Subtitle1>Booking Details</Subtitle1>\n <div className={styles.headerBookingDetail}>\n <div className={styles.shipInfo}>\n <img src=\"/assets/logo/asdp-default.svg\" width={81} height={54} alt=\"asdp\" />\n <Body1>{shipName}</Body1>\n </div>\n <Badge\n size=\"extra-large\"\n appearance=\"filled\"\n color={shipTypeColor}\n iconPosition=\"before\"\n shape=\"rounded\"\n icon={<Icon icon=\"fluent:info-24-regular\" />}\n >\n {shipType}\n </Badge>\n </div>\n <Body1Strong>Rute Perjalanan</Body1Strong>\n <div>\n <div className={styles.ticketInfo}>\n <div className={styles.ticketTime}>\n <Caption2>{departureDay}</Caption2>\n <Body1Stronger>{departureTime} WIB</Body1Stronger>\n <Caption2>{departureLocation}</Caption2>\n </div>\n <div className={styles.ticketDuration}>\n <Icon icon=\"fluent:vehicle-ship-24-regular\" />\n <Caption2>Estimasi {duration}</Caption2>\n </div>\n <div className={styles.ticketTime}>\n <Caption2>{arrivalDay}</Caption2>\n <Body1Stronger>{arrivalTime} WIB</Body1Stronger>\n <Caption2>{arrivalLocation}</Caption2>\n </div>\n </div>\n </div>\n <div className={styles.circularLeft} />\n <div className={styles.circularRight} />\n </Card>\n <Card className={styles.bookingDetailBottom}>\n <div className={styles.totalPrice}>\n <Subtitle1>Total Harga</Subtitle1>\n <Title3 className={styles.priceText}>\n IDR {totalPrice}\n </Title3>\n <Icon\n icon=\"fluent:chevron-down-24-filled\"\n onClick={onPriceDetailClick}\n style={{ cursor: 'pointer' }}\n />\n </div>\n <div className={styles.gapButton}>\n {!(paymentStep === 'pay') && (\n <Button\n appearance=\"primary\"\n onClick={onNext}\n shape=\"circular\"\n size=\"large\"\n style={{ width: '100%' }}\n icon={<Icon icon=\"fluent:chevron-right-20-regular\" />}\n iconPosition=\"after\"\n >\n Lanjutkan\n </Button>\n )}\n {['addon', 'meals', 'review', 'payment', 'eticket'].includes(reservationStep) &&\n !['pay'].includes(paymentStep) && (\n <Button\n appearance=\"secondary\"\n onClick={onPrevious}\n shape=\"circular\"\n size=\"large\"\n className={styles.secondaryButton}\n icon={<Icon icon=\"fluent:chevron-left-20-regular\" />}\n iconPosition=\"before\"\n >\n Sebelumnya\n </Button>\n )}\n </div>\n\n {paymentStep === 'pay' && (\n <div className={styles.gapButton}>\n <Button\n appearance=\"primary\"\n shape=\"circular\"\n size=\"large\"\n style={{ width: '100%' }}\n onClick={onNext}\n >\n Lihat Pemesanan\n </Button>\n <Button\n appearance=\"secondary\"\n shape=\"circular\"\n size=\"large\"\n className={styles.secondaryButton}\n onClick={onPrevious}\n >\n Ubah Metode Pembayaran\n </Button>\n </div>\n )}\n </Card>\n </div>\n </div>\n );\n};\n","import React from 'react';\nimport {\n Accordion,\n AccordionHeader,\n AccordionItem,\n AccordionPanel,\n Card,\n makeStyles,\n Subtitle1,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport { CardFAQProps } from './CardFAQ.types';\n\nconst useStyles = makeStyles({\n faqSection: {\n // marginTop: '2rem', // Let parent control spacing if needed, or keep consistent\n },\n faqCard: {\n padding: '2rem',\n borderRadius: tokens.borderRadiusXLarge,\n boxShadow: tokens.shadow4,\n },\n accordionItem: {\n borderBottom: `1px solid ${tokens.colorNeutralStroke2}`,\n padding: tokens.spacingVerticalS,\n },\n accordionHeader: {\n fontSize: tokens.fontSizeBase300,\n fontWeight: tokens.fontWeightBold,\n },\n});\n\nconst FAQ_ITEMS = [\n {\n value: '1',\n question: 'FAQ 1',\n answer:\n 'Lorem ipsum dolor, sit amet consectetur adipisicing elit. Minus saepe repudiandae dolore pariatur veniam! Aliquam nesciunt saepe, optio inventore fuga quam dignissimos possimus, dolorem alias, blanditiis veniam voluptatibus eaque ex?',\n },\n {\n value: '2',\n question: 'FAQ 2',\n answer:\n 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Quae dolor consequatur, sit facere ex, ullam quos natus sapiente nihil cum libero velit, labore necessitatibus rem? Tenetur omnis tempora alias totam.',\n },\n {\n value: '3',\n question: 'FAQ 3',\n answer:\n 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Recusandae officiis modi quaerat eum illo, consectetur aperiam atque? Corrupti cupiditate sequi iusto reiciendis dignissimos, eius, nihil temporibus eaque delectus, saepe ullam!',\n },\n {\n value: '4',\n question: 'FAQ 4',\n answer:\n 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sint maiores debitis, earum animi dolorum unde asperiores accusantium nemo consectetur nulla reiciendis eveniet pariatur autem rerum adipisci sequi officia vero ipsam!',\n },\n];\n\nexport const CardFAQ: React.FC<CardFAQProps> = ({ className }) => {\n const styles = useStyles();\n\n return (\n <Card className={styles.faqCard}>\n <Subtitle1>FAQ</Subtitle1>\n <Accordion collapsible>\n {FAQ_ITEMS.map((item) => (\n <AccordionItem key={item.value} value={item.value} className={styles.accordionItem}>\n <AccordionHeader className={styles.accordionHeader} expandIconPosition=\"end\">\n <Icon\n icon=\"fluent:question-circle-28-regular\"\n style={{ marginRight: '5px' }}\n />{' '}\n {item.question}\n </AccordionHeader>\n <AccordionPanel>{item.answer}</AccordionPanel>\n </AccordionItem>\n ))}\n </Accordion>\n </Card>\n );\n};\n","import React from 'react';\nimport {\n Body1,\n Body1Strong,\n Button,\n Caption1,\n Caption1Stronger,\n Card,\n Divider,\n makeStyles,\n Subtitle1,\n Subtitle2,\n Title3,\n Badge,\n shorthands,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport { AddRegular, DeleteRegular, SubtractRegular } from '@fluentui/react-icons';\nimport { CardAddonProps } from './CardAddon.types';\n\n// Use a subset of tokens or hardcoded values if tokens aren't available for everything\n// But try to stick to tokens.\n\nconst useStyles = makeStyles({\n card: {\n backgroundColor: tokens.colorNeutralBackground1,\n boxShadow: tokens.shadow4,\n ...shorthands.padding(tokens.spacingVerticalL, tokens.spacingHorizontalXXL),\n borderRadius: tokens.borderRadiusXLarge,\n zIndex: 3,\n },\n gapRow: {\n display: 'flex',\n flexDirection: 'column',\n rowGap: tokens.spacingVerticalXXL,\n },\n titleDivider: {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n },\n textTitle: {\n fontWeight: tokens.fontWeightRegular,\n whiteSpace: 'nowrap',\n marginRight: tokens.spacingHorizontalM,\n },\n sizeDivider: {\n flexGrow: 1,\n },\n card1: {\n display: 'flex',\n flexDirection: 'column',\n ...shorthands.padding(tokens.spacingHorizontalL, tokens.spacingVerticalL),\n rowGap: tokens.spacingHorizontalM,\n },\n horizontalContainer: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n itemFlexCard1: {\n display: 'flex',\n columnGap: tokens.spacingHorizontalM,\n alignItems: 'center',\n },\n textContainerCard1: {\n display: 'flex',\n flexDirection: 'column',\n },\n img: {\n objectFit: 'contain',\n },\n // Footer\n footerContainer: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n },\n footerColRight: {\n display: 'flex',\n alignItems: 'center',\n },\n detailToogle: {\n color: tokens.colorBrandForeground1,\n },\n // Assurance Styles\n badge: {\n ...shorthands.padding(tokens.spacingVerticalNone, tokens.spacingHorizontalL),\n backgroundColor: tokens.colorPaletteBlueBackground2, // Approximate for Shared_Dark_blue_Primary if not avail\n color: tokens.colorNeutralForegroundOnBrand, \n width: 'fit-content',\n },\n breakdownContainer: {\n display: 'flex',\n flexDirection: 'column',\n gap: tokens.spacingVerticalM,\n },\n breakdownRow: {\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n },\n // Meal Styles\n mealListContainer: {\n display: 'flex',\n flexDirection: 'column',\n rowGap: tokens.spacingVerticalXL,\n marginTop: tokens.spacingVerticalM,\n },\n mealItem: {\n display: 'flex',\n alignItems: 'flex-start',\n columnGap: tokens.spacingHorizontalL,\n gap: '12px',\n ...shorthands.padding(tokens.spacingVerticalS, 0),\n },\n mealImage: {\n borderRadius: tokens.borderRadiusMedium,\n objectFit: 'cover',\n flexShrink: 0,\n },\n mealContent: {\n display: 'flex',\n flexDirection: 'column',\n flexGrow: 1,\n rowGap: tokens.spacingVerticalXS,\n },\n mealDescription: {\n color: tokens.colorNeutralForeground3,\n display: '-webkit-box',\n WebkitLineClamp: '2',\n WebkitBoxOrient: 'vertical',\n overflow: 'hidden',\n },\n mealPriceInfo: {\n color: tokens.colorBrandBackground,\n },\n mealActions: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-end',\n rowGap: tokens.spacingVerticalM,\n flexShrink: 0,\n },\n qtySelector: {\n display: 'flex',\n alignItems: 'center',\n columnGap: tokens.spacingHorizontalM,\n },\n qtyButton: {\n minWidth: '32px',\n height: '32px',\n ...shorthands.padding(0),\n },\n deleteMealButton: {\n display: 'flex',\n alignItems: 'center',\n columnGap: tokens.spacingHorizontalS,\n color: tokens.colorPaletteRedForeground1,\n ...shorthands.border('1px', 'solid', tokens.colorPaletteRedForeground1),\n ...shorthands.padding(tokens.spacingVerticalXS, tokens.spacingHorizontalS),\n backgroundColor: 'transparent',\n cursor: 'pointer',\n fontSize: tokens.fontSizeBase300,\n ':hover': {\n backgroundColor: tokens.colorPaletteRedBackground1,\n },\n },\n totalContainer: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginTop: tokens.spacingVerticalL,\n paddingTop: tokens.spacingVerticalM,\n },\n});\n\nexport const CardAddon: React.FC<CardAddonProps> = ({\n title,\n itemTitle,\n itemSubtitle,\n iconUrl,\n description,\n rightAction,\n footerData,\n assuranceData,\n mealData,\n children,\n className,\n}) => {\n const styles = useStyles();\n\n return (\n <Card className={`${styles.card} ${className || ''}`}>\n <div className={styles.gapRow}>\n {/* Header */}\n <div className={styles.titleDivider}>\n <Title3 className={styles.textTitle}>{title}</Title3>\n <Divider className={styles.sizeDivider} />\n </div>\n\n {/* Content */}\n <div className={styles.card1}>\n {/* Top Row: Icon + Texts + RightAction */}\n <div className={styles.horizontalContainer}>\n <div className={styles.itemFlexCard1}>\n {iconUrl && (\n <img\n src={iconUrl}\n alt=\"icon\"\n width={81}\n height={56}\n className={styles.img}\n />\n )}\n <div className={styles.textContainerCard1}>\n <Subtitle2>{itemTitle}</Subtitle2>\n <Caption1>{itemSubtitle}</Caption1>\n </div>\n </div>\n {rightAction}\n </div>\n\n {/* Description */}\n {description && (\n <div style={{ paddingRight: '20%' }}>\n <Body1>{description}</Body1>\n </div>\n )}\n\n {/* Footer (Price + Button) */}\n {footerData && (\n <>\n {footerData.actionType === 'detail-link' && (\n <div className={styles.footerContainer}>\n <div>\n <Caption1>\n {footerData.priceLabel} <Caption1Stronger>Rp{footerData.price.toLocaleString('id-ID')}{footerData.priceUnit}</Caption1Stronger>\n </Caption1>\n </div>\n <div className={styles.footerColRight}>\n <Button\n appearance=\"transparent\"\n size=\"small\"\n style={{\n color: tokens.colorBrandForeground1,\n }}\n onClick={footerData.onActionClick}\n icon={<Icon icon=\"fluent:chevron-down-12-regular\" />}\n iconPosition=\"after\"\n >\n <Caption1 className={styles.detailToogle}>{footerData.actionLabel || 'Lihat detail'}</Caption1>\n </Button>\n </div>\n </div>\n )}\n </>\n )}\n\n {/* Assurance Breakdown */}\n {assuranceData && (\n <>\n <div style={{ width: '100%' }}>\n <Badge\n size=\"large\"\n appearance=\"filled\"\n icon={<Icon icon=\"fluent:ticket-diagonal-16-regular\" />}\n iconPosition=\"after\"\n className={styles.badge}\n style={{ backgroundColor: 'rgb(30, 57, 141)' }} // Hardcoded ASDP Blue for now to match tokens\n >\n {assuranceData.totalPassenger} Asuransi Penumpang\n </Badge>\n </div>\n <div className={styles.breakdownContainer}>\n {assuranceData.items.map((item, idx) => (\n <div key={idx} className={styles.breakdownRow}>\n <Body1>{item.label} ({item.priceDetails})</Body1>\n <Body1>Rp{item.totalPrice.toLocaleString('id-ID')}</Body1>\n </div>\n ))}\n {/* Assurance Total */}\n <div className={styles.breakdownRow}>\n <Subtitle2>Total Harga</Subtitle2>\n <Subtitle2>Rp{assuranceData.totalPrice.toLocaleString('id-ID')}</Subtitle2>\n </div>\n </div>\n </>\n )}\n\n {/* Meal List */}\n {mealData && (\n <>\n <div className={styles.mealListContainer}>\n {mealData.items.map((item) => (\n <div key={item.id} className={styles.mealItem}>\n <img\n src={item.image}\n alt={item.name}\n width={119}\n height={119}\n className={styles.mealImage}\n />\n <div className={styles.mealContent}>\n <Body1Strong>{item.name}</Body1Strong>\n <Caption1 className={styles.mealDescription}>{item.description}</Caption1>\n <Body1Strong className={styles.mealPriceInfo}>\n Rp{item.price.toLocaleString('id-ID')} x {item.quantity} = Rp{(item.price * item.quantity).toLocaleString('id-ID')}\n </Body1Strong>\n </div>\n <div className={styles.mealActions}>\n <div className={styles.qtySelector}>\n <Button\n appearance=\"subtle\"\n shape=\"circular\"\n className={styles.qtyButton}\n disabled={item.quantity <= 1}\n icon={<SubtractRegular />}\n onClick={() => mealData.onUpdateQuantity(item.id, -1)}\n style={{\n border: `1px solid ${item.quantity <= 1 ? tokens.colorNeutralForegroundDisabled : tokens.colorBrandBackground}`, \n color: item.quantity <= 1 ? tokens.colorNeutralForegroundDisabled : tokens.colorBrandBackground\n }}\n />\n <Body1>{item.quantity}</Body1>\n <Button\n appearance=\"subtle\"\n className={styles.qtyButton}\n shape=\"circular\"\n icon={<AddRegular />}\n onClick={() => mealData.onUpdateQuantity(item.id, 1)}\n style={{\n border: `1px solid ${tokens.colorBrandBackground}`, \n color: tokens.colorBrandBackground\n }}\n />\n </div>\n <Button\n appearance=\"subtle\"\n className={styles.deleteMealButton}\n shape=\"rounded\"\n onClick={() => mealData.onDelete(item.id)}\n >\n <DeleteRegular fontSize={18} />\n Hapus Pesanan\n </Button>\n </div>\n </div>\n ))}\n </div>\n </>\n )}\n\n {/* Meal Footer (Special case because it's at the bottom of the list) */}\n {footerData && footerData.actionType === 'primary-button' && (\n <>\n <div className={styles.totalContainer}>\n <Subtitle2>{footerData.priceLabel}</Subtitle2>\n <Subtitle1 style={{ fontSize: tokens.fontSizeBase600 }}>\n Rp. {footerData.price.toLocaleString('id-ID')}\n </Subtitle1>\n </div>\n <div style={{ width: '100%' }}>\n <Button\n // color=\"soft\" // Fluent UI v9 doesn't have 'soft' color in default props, emulating\n appearance=\"secondary\"\n shape=\"circular\"\n onClick={footerData.onActionClick}\n style={{\n width: '100%',\n borderColor: tokens.colorBrandStroke1,\n color: tokens.colorBrandBackground,\n }}\n >\n {footerData.actionLabel}\n </Button>\n </div>\n </>\n )}\n\n {/* Fallback Children */}\n {children}\n </div>\n </div>\n </Card>\n );\n};\n","import React from 'react';\nimport {\n Body1,\n Button,\n Caption1,\n Card,\n Display,\n Image,\n makeStyles,\n shorthands,\n Subtitle2,\n Title2,\n Title3,\n tokens,\n} from '@fluentui/react-components';\nimport { AddRegular, InfoRegular, SubtractRegular } from '@fluentui/react-icons';\nimport { CardMealCatalogProps } from './CardMealCatalog.types';\n\nconst useStyles = makeStyles({\n container: {\n display: 'flex',\n flexDirection: 'column',\n gap: tokens.spacingVerticalXXL,\n },\n banner: {\n position: 'relative',\n height: '240px',\n width: '100%',\n borderRadius: tokens.borderRadiusXLarge,\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n color: 'white',\n textAlign: 'center',\n ...shorthands.padding(tokens.spacingVerticalXXL),\n },\n bannerOverlay: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.4)',\n zIndex: 1,\n },\n bannerBg: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n objectFit: 'cover',\n zIndex: 0,\n width: '100%',\n height: '100%',\n },\n bannerContent: {\n position: 'relative',\n zIndex: 2,\n },\n bannerTitle: {\n fontSize: '48px',\n fontWeight: tokens.fontWeightBold,\n marginBottom: tokens.spacingVerticalS,\n color: 'white', // Ensure text is white on banner\n },\n bannerSubtitle: {\n color: 'white',\n },\n disclaimer: {\n display: 'flex',\n alignItems: 'center',\n gap: tokens.spacingHorizontalS,\n backgroundColor: tokens.colorNeutralBackground2,\n ...shorthands.padding(tokens.spacingVerticalS, tokens.spacingHorizontalM),\n ...shorthands.border('1px', 'solid', tokens.colorNeutralStroke2),\n borderRadius: tokens.borderRadiusMedium,\n },\n sectionTitle: {\n marginBottom: tokens.spacingVerticalL,\n },\n grid: {\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fill, minmax(280px, 1fr))',\n columnGap: tokens.spacingHorizontalL,\n rowGap: tokens.spacingVerticalL,\n },\n productCard: {\n display: 'flex',\n flexDirection: 'row',\n ...shorthands.padding(tokens.spacingVerticalM),\n gap: tokens.spacingHorizontalM,\n height: '100%',\n },\n productImage: {\n width: '100px',\n height: '100px',\n borderRadius: tokens.borderRadiusMedium,\n objectFit: 'cover',\n flexShrink: 0,\n },\n productInfo: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n flexGrow: 1,\n },\n productDescription: {\n color: tokens.colorNeutralForeground3,\n display: '-webkit-box',\n WebkitLineClamp: '2',\n WebkitBoxOrient: 'vertical',\n overflow: 'hidden',\n marginBottom: tokens.spacingVerticalS,\n },\n productFooter: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginTop: 'auto',\n },\n price: {\n color: '#D13438', // Or use a token if available/consistent\n fontWeight: tokens.fontWeightSemibold,\n },\n quantitySelector: {\n display: 'flex',\n alignItems: 'center',\n gap: tokens.spacingHorizontalS,\n },\n addButton: {\n // We'll use color=\"brand\" or similar from Fluent v9 if possible, or fallback to custom styles\n // ...shorthands.border('1px', 'solid', tokens.colorBrandStroke1),\n // color: tokens.colorBrandForeground1,\n },\n // Replicating the custom add button style from original\n customAddButton: {\n border: '1px solid rgb(30, 57, 141)', // tokensV2.lightModeColors.Brand_Stroke_1_Rest\n color: 'rgb(30, 57, 141)', // tokensV2.lightModeColors.Brand_Foreground_1_Rest\n }\n});\n\nexport const CardMealCatalog: React.FC<CardMealCatalogProps> = ({\n banner,\n disclaimerText,\n categories,\n onAdd,\n onUpdateQuantity,\n className,\n}) => {\n const styles = useStyles();\n\n return (\n <div className={`${styles.container} ${className || ''}`}>\n {/* Banner */}\n <div className={styles.banner}>\n <div className={styles.bannerOverlay} />\n {/* Using standard img or fluent image for library component */}\n <img\n src={banner.imageUrl}\n alt={banner.title}\n className={styles.bannerBg}\n />\n <div className={styles.bannerContent}>\n <Display className={styles.bannerTitle}>{banner.title}</Display>\n <br />\n <Title2 className={styles.bannerSubtitle}>{banner.subtitle}</Title2>\n </div>\n </div>\n\n {/* Disclaimer */}\n <div className={styles.disclaimer}>\n <InfoRegular />\n <Caption1>{disclaimerText}</Caption1>\n </div>\n\n {/* Categories */}\n {categories.map((cat, index) => (\n <section key={index}>\n <Title3 className={styles.sectionTitle} style={{ textTransform: 'capitalize' }}>\n {cat.category}\n </Title3>\n <br />\n <br />\n <div className={styles.grid}>\n {cat.list.map((item) => (\n <Card key={item.id} className={styles.productCard}>\n <Image src={item.image} alt={item.name} className={styles.productImage} />\n <div className={styles.productInfo}>\n <div>\n <Subtitle2>{item.name}</Subtitle2>\n <Caption1 className={styles.productDescription}>{item.description}</Caption1>\n </div>\n <div className={styles.productFooter}>\n <Body1 className={styles.price}>Rp{item.price.toLocaleString('id-ID')}</Body1>\n {item.quantity > 0 ? (\n <div className={styles.quantitySelector}>\n <Button\n size=\"small\"\n shape=\"circular\"\n icon={<SubtractRegular />}\n onClick={() => onUpdateQuantity(item.id, -1)}\n />\n <Body1>{item.quantity}</Body1>\n <Button\n size=\"small\"\n shape=\"circular\"\n icon={<AddRegular />}\n onClick={() => onUpdateQuantity(item.id, 1)}\n />\n </div>\n ) : (\n <Button\n size=\"small\"\n shape=\"rounded\"\n className={styles.customAddButton}\n onClick={() => onAdd(item)}\n >\n Tambah\n </Button>\n )}\n </div>\n </div>\n </Card>\n ))}\n </div>\n </section>\n ))}\n </div>\n );\n};\n","import React from 'react';\nimport {\n Body1,\n Caption1,\n Card,\n makeStyles,\n Subtitle1,\n tokens,\n} from '@fluentui/react-components';\nimport { CardReviewProps } from './CardReview.types';\n\nconst useStyles = makeStyles({\n card: {\n padding: '1.5rem',\n borderRadius: tokens.borderRadiusXLarge,\n boxShadow: tokens.shadow4,\n zIndex: 3,\n },\n headerContainer: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: '1rem',\n gap: '1rem',\n },\n headerTitle: {\n whiteSpace: 'nowrap',\n fontWeight: tokens.fontWeightSemibold,\n },\n headerLine: {\n height: '1px',\n flexGrow: 1,\n backgroundColor: tokens.colorNeutralStroke2,\n },\n contentContainer: {\n display: 'flex',\n flexDirection: 'column',\n gap: tokens.spacingVerticalM,\n },\n row: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n defaultLabel: {\n color: tokens.colorNeutralForeground2,\n },\n defaultValue: {\n // color: tokens.colorNeutralForegroundDisabled, // In ferizy: tokensV2.lightModeColors.Neutral_Foreground_Disabled_Rest\n color: '#bdbdbd', // Approximate fallback or use token if available in ferryui context\n textAlign: 'right',\n },\n});\n\nexport const CardReview: React.FC<CardReviewProps> = ({\n title,\n items,\n children,\n className,\n headerAction,\n}) => {\n const styles = useStyles();\n\n return (\n <Card className={`${styles.card} ${className || ''}`}>\n <div className={styles.headerContainer}>\n <Subtitle1 className={styles.headerTitle}>{title}</Subtitle1>\n <div className={styles.headerLine} />\n {headerAction && <div>{headerAction}</div>}\n </div>\n\n <div className={styles.contentContainer}>\n {items?.map((item, index) => (\n <div key={index} className={`${styles.row} ${item.className || ''}`}>\n {/* Render Label */}\n {typeof item.label === 'string' ? (\n <Caption1 className={`${styles.defaultLabel} ${item.labelClassName || ''}`}>\n {item.label}\n </Caption1>\n ) : (\n // Clone element to append className if it's a valid React element\n React.isValidElement(item.label) ? \n React.cloneElement(item.label as React.ReactElement, {\n className: `${styles.defaultLabel} ${item.labelClassName || ''}${(item.label as React.ReactElement).props.className ? ' ' + (item.label as React.ReactElement).props.className : ''}`\n }) : \n <div className={`${styles.defaultLabel} ${item.labelClassName || ''}`}>{item.label}</div>\n )}\n\n {/* Render Value */}\n {typeof item.value === 'string' || typeof item.value === 'number' ? (\n <Body1 className={`${styles.defaultValue} ${item.valueClassName || ''}`}>\n {item.value}\n </Body1>\n ) : (\n <div className={`${styles.defaultValue} ${item.valueClassName || ''}`}>{item.value}</div>\n )}\n </div>\n ))}\n\n {children}\n </div>\n </Card>\n );\n};\n","import React from 'react';\nimport {\n Body1,\n Card,\n Field,\n makeStyles,\n Subtitle1,\n Subtitle2,\n tokens,\n Image,\n} from '@fluentui/react-components';\nimport { CardReviewPassengerProps } from './CardReviewPassenger.types';\nimport { getBadgeConfig } from '../../utils/badge';\n\nconst useStyles = makeStyles({\n card: {\n padding: '1.5rem',\n borderRadius: tokens.borderRadiusXLarge,\n boxShadow: tokens.shadow4,\n zIndex: 3,\n },\n headerContainer: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: '1rem',\n gap: '1rem',\n },\n headerTitle: {\n whiteSpace: 'nowrap',\n fontWeight: tokens.fontWeightSemibold,\n },\n headerLine: {\n height: '1px',\n flexGrow: 1,\n backgroundColor: tokens.colorNeutralStroke2,\n },\n contentContainer: {\n display: 'flex',\n flexDirection: 'column',\n },\n passengerItem: {\n display: 'flex',\n flexDirection: 'column',\n gap: tokens.spacingVerticalS,\n paddingBottom: tokens.spacingVerticalL,\n paddingTop: tokens.spacingVerticalM,\n borderBottom: `1px solid ${tokens.colorNeutralStroke2}`,\n ':last-child': {\n borderBottom: 'none',\n paddingBottom: 0,\n },\n // Matches styles.passengerItem in Review.tsx\n },\n itemHeader: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: tokens.spacingVerticalS,\n },\n name: {\n color: '#00B8D4', // Cyan color from design\n fontSize: tokens.fontSizeBase400,\n },\n // Badge Styles\n badgeContainer: {\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n },\n badgeContent: {\n display: 'flex',\n alignItems: 'center',\n padding: '0.25rem 0.75rem 0.25rem 1.5rem', // Extra left padding for the icon overlap\n borderRadius: '0 4px 4px 0',\n borderTopRightRadius: '9999px',\n borderBottomRightRadius: '9999px',\n color: 'white',\n fontSize: tokens.fontSizeBase200,\n fontWeight: tokens.fontWeightMedium,\n marginLeft: '-14px', // Pull the text container under the icon\n minHeight: '24px',\n },\n badgeIcon: {\n width: '28px',\n height: '32px',\n zIndex: 1,\n filter: 'drop-shadow(0px 2px 2px rgba(0, 0, 0, 0.1))',\n },\n fields: {\n display: 'grid',\n gridTemplateColumns: '1fr 1fr',\n gap: tokens.spacingHorizontalL,\n },\n inputBox: {\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n borderRadius: tokens.borderRadiusMedium,\n padding: `${tokens.spacingVerticalS} ${tokens.spacingHorizontalM}`,\n display: 'flex',\n alignItems: 'center',\n height: '32px', \n },\n});\n\nexport const CardReviewPassenger: React.FC<CardReviewPassengerProps> = ({\n title = 'Penumpang',\n passengers,\n className,\n}) => {\n const styles = useStyles();\n\n return (\n <Card className={`${styles.card} ${className || ''}`}>\n <div className={styles.headerContainer}>\n <Subtitle1 className={styles.headerTitle}>{title}</Subtitle1>\n <div className={styles.headerLine} />\n </div>\n\n <div className={styles.contentContainer}>\n {passengers.map((passenger, index) => {\n const badgeConfig = getBadgeConfig(passenger.serviceClass);\n return (\n <div key={passenger.id || index} className={styles.passengerItem}>\n <div className={styles.itemHeader}>\n <Subtitle2 className={styles.name}>{passenger.name}</Subtitle2>\n <div className={styles.badgeContainer}>\n {badgeConfig.icon && (\n <Image\n src={badgeConfig.icon}\n alt={passenger.ticketClass}\n className={styles.badgeIcon}\n height={28}\n width={24}\n />\n )}\n <div\n className={styles.badgeContent}\n style={{ backgroundColor: badgeConfig.color }}\n >\n {passenger.ticketClass}\n </div>\n </div>\n </div>\n \n <div className={styles.fields}>\n <Field label=\"Nomor ID\" size=\"small\">\n <div className={styles.inputBox}>\n <Body1>{passenger.identityNumber}</Body1>\n </div>\n </Field>\n <Field\n label={passenger.ageLabel}\n size=\"small\"\n >\n <div className={styles.inputBox}>\n <Body1>{passenger.ageValue}</Body1>\n </div>\n </Field>\n </div>\n </div>\n );\n })}\n </div>\n </Card>\n );\n};\n","import React from 'react';\nimport { Body1, Divider, Link, tokens, makeStyles } from '@fluentui/react-components';\n\nconst useStyles = makeStyles({\n list: {\n margin: 0,\n padding: 0,\n listStyle: 'none',\n counterReset: 'list-counter',\n },\n listItem: {\n counterIncrement: 'list-counter',\n display: 'flex',\n marginBottom: tokens.spacingVerticalS,\n '&::before': {\n content: 'counter(list-counter) \".\"',\n marginRight: tokens.spacingHorizontalS,\n fontWeight: tokens.fontWeightRegular,\n },\n },\n});\n\nexport const PriceDetailsTerms: React.FC = () => {\n const styles = useStyles();\n const linkColor = tokens.colorBrandBackground;\n\n const bookingTerms = [\n \"Transaksi booking akan dibatalkan secara otomatis apabila Anda tidak menyelesaikan pembayaran pada periode waktu yang telah ditentukan.\",\n \"Setelah pembyaran berhasil, dikumen E-Tiket dapat di unduh melailui E-Mail atau menu “Pesanan Saya” di Web Reservation atau Mobile Application Ferizy.\",\n \"Dokumen E-Tiket wajib ditunjukan saat melakukan proses Masuk Pelabuhan (Check-In)\",\n \"Anda sudah dapat Masuk Pelabuhan (Check-In) mulai dari 2 (dua) jam sebelum jadwal masukpelabuhan yang Anda pilih.\",\n \"Tiket akan hangus (expired) apabila Anda belum Masuk Pelabuhan (Check-In) hingga melewati batas waktu jadwal Masuk Pelabuhan yang Anda pilih.\"\n ];\n\n const agreementTerms = [\n (\n <>\n <Link href=\"/terms-and-conditions\" style={{ color: linkColor }}>Syarat & Ketentuan</Link> Ferizy.\n </>\n ),\n (\n <>\n Ketentuan persyaratan menyeberang sesuai dengan <Link href=\"/surat-edaran-satgas-covid-19\" style={{ color: linkColor }}>Surat Edaran Satgas Covid-19 Nomor 23 Tahun 2002.</Link>\n </>\n ),\n \"Bahwa apabila saya didapati tidak memenuhi ketentuan persyaratan menyeberang pada butir 2 (dua) diatas yang mengakibatkan saya terlambat atau tidaj dapat melakukan Check-In di pelabuhan tepat waktu, maka saya menerima dan menyetujui untuk diproses sesuai dengan Syarat & Ketentuan Ferizy sebagaimana tersebut pada butir 1 (satu) di atas.\"\n ];\n\n return (\n <>\n <Body1>\n <ul className={styles.list}>\n {bookingTerms.map((term, index) => (\n <li key={index} className={styles.listItem}>\n {term}\n </li>\n ))}\n </ul>\n </Body1>\n\n <Divider />\n\n <Body1>\n Dengan menekan tombol “Lanjutkan Pembayaran”, maka saya telah membaca dan menyetujuii :\n <ul className={styles.list}>\n {agreementTerms.map((term, index) => (\n <li key={index} className={styles.listItem}>\n {term}\n </li>\n ))}\n </ul>\n </Body1>\n </>\n );\n};\n","import React from \"react\";\nimport {\n Body1,\n Body1Strong,\n Caption1,\n Card,\n Divider,\n makeStyles,\n mergeClasses,\n Subtitle1,\n tokens,\n} from \"@fluentui/react-components\";\nimport { CardPriceDetailsProps } from \"./CardPriceDetails.types\";\nimport { PriceDetailsTerms } from \"./PriceDetailsTerms\";\n\nconst useStyles = makeStyles({\n card: {\n padding: \"1.5rem\",\n borderRadius: tokens.borderRadiusXLarge,\n boxShadow: tokens.shadow4,\n zIndex: 3,\n },\n headerContainer: {\n display: \"flex\",\n alignItems: \"center\",\n marginBottom: \"1rem\",\n gap: \"1rem\",\n },\n headerTitle: {\n whiteSpace: \"nowrap\",\n fontWeight: tokens.fontWeightSemibold,\n },\n headerLine: {\n height: \"1px\",\n flexGrow: 1,\n backgroundColor: tokens.colorNeutralStroke2,\n },\n container: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: tokens.spacingVerticalM,\n },\n row: {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n },\n label: {\n color: tokens.colorNeutralForeground2,\n },\n value: {\n // Standard value color - using token or fallback\n color: \"#bdbdbd\",\n textAlign: \"right\",\n },\n textCritical: {\n color: tokens.colorPaletteRedBackground3,\n },\n textMuted: {\n color: tokens.colorNeutralForegroundDisabled,\n },\n subSection: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: tokens.spacingVerticalS,\n marginTop: tokens.spacingVerticalS,\n },\n totalRow: {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n marginTop: tokens.spacingVerticalM,\n color: tokens.colorPaletteRedBackground3\n },\n totalLabel: {\n // Standard color for total label if needed\n },\n totalValue: {\n // Standard color for total value if needed\n },\n description: {\n color: tokens.colorNeutralForeground4,\n marginTop: \"-8px\",\n },\n});\n\nexport const CardPriceDetails: React.FC<CardPriceDetailsProps> = ({\n title = \"Rincian Harga\",\n sections,\n total,\n}) => {\n const styles = useStyles();\n\n const getVariantClass = (variant?: \"default\" | \"danger\" | \"muted\") => {\n switch (variant) {\n case \"danger\":\n return styles.textCritical;\n case \"muted\":\n return styles.textMuted;\n default:\n return \"\";\n }\n };\n\n const renderItem = (item: any, key: number | string) => {\n // Check if item should be bold (like Tax usually is in the mockup, or we can use variant to decide style)\n // Based on previous code: tax used Body1Strong. Regular items passed as variants?\n // For now, we stick to body1/caption1 structure unless variant differs significantly.\n\n // If variant is 'danger' (e.g. tax), previous code used Body1Strong for label and value.\n // Let's assume standard items are Caption1 label / Body1 value.\n // If 'danger', maybe bump weight? The user said \"sama stylingnya cuman beda warna\".\n // So we just apply color classes.\n\n const variantClass = getVariantClass(item.variant);\n const isTaxLike = item.variant === \"danger\"; // Heuristic if we want to bold tax\n\n return (\n <React.Fragment key={key}>\n <div className={styles.row}>\n {isTaxLike ? (\n <Body1Strong className={variantClass}>{item.name}</Body1Strong>\n ) : (\n <Caption1 className={mergeClasses(styles.label, variantClass)}>\n {item.name}\n </Caption1>\n )}\n\n {isTaxLike ? (\n <Body1Strong className={mergeClasses(styles.value, variantClass)}>\n Rp. {item.price.toLocaleString(\"id-ID\")}\n </Body1Strong>\n ) : (\n <Body1 className={mergeClasses(styles.value, variantClass)}>\n {item.isRedeem ? \"-\" : \"Rp. \"}\n {item.price.toLocaleString(\"id-ID\")}\n </Body1>\n )}\n </div>\n {item.description && (\n <Caption1 className={styles.description}>{item.description}</Caption1>\n )}\n </React.Fragment>\n );\n };\n\n return (\n <Card className={styles.card}>\n <div className={styles.headerContainer}>\n <Subtitle1 className={styles.headerTitle}>{title}</Subtitle1>\n <div className={styles.headerLine} />\n </div>\n\n <div className={styles.container}>\n {sections.map((section, index) => {\n if (section.title) {\n return (\n <div key={index} className={styles.subSection}>\n <Body1Strong>{section.title}</Body1Strong>\n {section.detail.map((item, i) => renderItem(item, i))}\n </div>\n );\n }\n\n return (\n <React.Fragment key={index}>\n {section.detail.map((item, i) => renderItem(item, i))}\n </React.Fragment>\n );\n })}\n\n <Divider />\n\n {/* Total */}\n <div className={styles.totalRow}>\n <Subtitle1 className={styles.totalLabel}>Total Pembayaran</Subtitle1>\n <Subtitle1 className={styles.totalValue}>\n Rp. {total.toLocaleString(\"id-ID\")}\n </Subtitle1>\n </div>\n\n <Divider />\n <PriceDetailsTerms />\n </div>\n </Card>\n );\n};\n","import React from \"react\";\nimport {\n Accordion,\n AccordionHeader,\n AccordionItem,\n AccordionPanel,\n Body1,\n Divider,\n makeStyles,\n Radio,\n shorthands,\n Subtitle2,\n tokens,\n Image,\n} from \"@fluentui/react-components\";\nimport { CardPaymentMethodListProps } from \"./CardPaymentMethodList.types\";\n\nconst useStyles = makeStyles({\n container: {\n display: \"flex\",\n flexDirection: \"column\",\n width: \"100%\",\n rowGap: tokens.spacingHorizontalXXL,\n },\n dividerContainer: {\n marginBottom: tokens.spacingHorizontalXXL,\n },\n title: {\n paddingLeft: tokens.spacingHorizontalSNudge,\n paddingRight: tokens.spacingHorizontalSNudge,\n },\n itemContainer: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: tokens.spacingHorizontalXXL,\n width: \"100%\",\n },\n optionContainer: {\n display: \"flex\",\n justifyContent: \"space-between\",\n width: \"100%\",\n cursor: \"pointer\",\n alignItems: \"center\",\n },\n codeImage: {\n display: \"flex\",\n gap: tokens.spacingHorizontalL,\n alignItems: \"center\",\n justifyContent: \"center\",\n textAlign: \"center\",\n },\n optionLabel: {\n color: tokens.colorNeutralForeground2,\n },\n image: {\n width: \"40px\",\n height: \"40px\",\n objectFit: \"contain\",\n },\n card:{\n position: 'relative',\n borderRadius: tokens.borderRadiusXLarge,\n ...shorthands.padding(tokens.spacingHorizontalXL, tokens.spacingVerticalXXL),\n backgroundColor: tokens.colorNeutralBackground1,\n zIndex: 3,\n }\n});\n\nexport const CardPaymentMethodList: React.FC<CardPaymentMethodListProps> = ({\n methods,\n selectedValue,\n onSelect,\n}) => {\n const styles = useStyles();\n\n return (\n <div className={styles.card}>\n <div className={`${styles.container}`}>\n {methods.map((category, index) => (\n <div key={category.value || index}>\n {index > 0 && (\n <div className={styles.dividerContainer}>\n <Divider />\n </div>\n )}\n <Accordion multiple collapsible>\n <AccordionItem value={category.value}>\n <AccordionHeader\n expandIconPosition=\"end\"\n className={styles.title}\n >\n <Body1>{category.title || category.value}</Body1>\n </AccordionHeader>\n <AccordionPanel>\n <div className={styles.itemContainer}>\n {category.options.map((option) => (\n <div\n key={option.value}\n className={styles.optionContainer}\n onClick={() => onSelect(option.value)}\n >\n <div className={styles.codeImage}>\n {/* Using standard img tag for simplicity and portability. \n The passed image string is usually a public path. */}\n <img\n src={option.image}\n alt={option.label}\n className={styles.image}\n />\n <Subtitle2 className={styles.optionLabel}>\n {option.label}\n </Subtitle2>\n </div>\n <Radio\n checked={selectedValue === option.value}\n onChange={() => onSelect(option.value)}\n value={option.value}\n name=\"payment-method\"\n />\n </div>\n ))}\n </div>\n </AccordionPanel>\n </AccordionItem>\n </Accordion>\n </div>\n ))}\n </div>\n </div>\n );\n};\n","import React from 'react';\nimport {\n Accordion,\n AccordionHeader,\n AccordionItem,\n AccordionPanel,\n Body1,\n makeStyles,\n tokens,\n Subtitle1\n} from '@fluentui/react-components';\nimport { CardPaymentGuideProps } from './CardPaymentGuide.types';\n\nconst useStyles = makeStyles({\n container: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n },\n titleContainer: {\n marginBottom: tokens.spacingVerticalM,\n },\n title: {\n color: tokens.colorNeutralForeground2, // Neutral_Stroke_Accessible_Rest based on Review.tsx usually\n },\n list: {\n margin: 0,\n padding: 0,\n listStyle: 'none',\n counterReset: 'guide-counter',\n },\n listItem: {\n counterIncrement: 'guide-counter',\n display: 'flex',\n marginBottom: tokens.spacingVerticalS,\n '&::before': {\n content: 'counter(guide-counter) \".\"',\n marginRight: tokens.spacingHorizontalS,\n fontWeight: tokens.fontWeightRegular,\n },\n },\n});\n\nexport const CardPaymentGuide: React.FC<CardPaymentGuideProps> = ({\n title = 'Cara Pembayaran',\n guides,\n className,\n}) => {\n const styles = useStyles();\n\n return (\n <div className={`${styles.container} ${className || ''}`}>\n {title && (\n <div className={styles.titleContainer}>\n <Subtitle1 className={styles.title}>{title}</Subtitle1>\n </div>\n )}\n <Accordion collapsible multiple>\n {guides.map((guide, index) => (\n <AccordionItem value={guide.value || String(index)} key={guide.value || index}>\n <AccordionHeader expandIconPosition=\"end\">\n <Body1>{guide.title}</Body1>\n </AccordionHeader>\n <AccordionPanel>\n <ul className={styles.list}>\n {guide.steps.map((step, stepIndex) => (\n <li key={stepIndex} className={styles.listItem}>\n <Body1>{step}</Body1>\n </li>\n ))}\n </ul>\n </AccordionPanel>\n </AccordionItem>\n ))}\n </Accordion>\n </div>\n );\n};\n","import React from \"react\";\nimport {\n Button,\n Field,\n Input,\n makeStyles,\n Subtitle1,\n Subtitle2,\n Title1,\n Title2,\n tokens,\n shorthands,\n} from \"@fluentui/react-components\";\nimport { CardPaymentGuide } from \"../CardPaymentGuide\";\nimport { CardPaymentInfoProps } from \"./CardPaymentInfo.types\";\n\nconst useStyles = makeStyles({\n container: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: tokens.spacingHorizontalXXL,\n width: \"100%\",\n },\n headerRow: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: tokens.spacingHorizontalXXL,\n textAlign: \"center\",\n },\n expiryTitle: {\n fontSize: tokens.fontSizeBase500, // 19px approx/mapping\n color: tokens.colorPaletteRedBackground3, // Foundation_Danger_error\n },\n infoCard: {\n border: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralStroke1}`,\n borderRadius: tokens.borderRadiusXLarge, // 12px -> XLarge/Large depending on token map\n padding: tokens.spacingHorizontalXXL,\n display: \"flex\",\n flexDirection: \"column\",\n gap: tokens.spacingVerticalXXL,\n },\n codeCard: {\n borderRadius: tokens.borderRadiusMedium,\n padding: tokens.spacingHorizontalL,\n backgroundColor: tokens.colorNeutralBackground3, // Neutral_Background_2_Rest\n display: \"flex\",\n flexDirection: \"column\",\n gap: tokens.spacingHorizontalL,\n alignItems: \"center\",\n },\n bankRow: {\n display: \"flex\",\n gap: tokens.spacingHorizontalM,\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n vaRow: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: tokens.spacingHorizontalXXXL,\n alignItems: \"center\",\n },\n input: {\n backgroundColor: tokens.colorNeutralBackground3,\n },\n checkStatusButton: {\n width: \"100%\",\n border: `1px solid ${tokens.colorBrandBackground}`,\n color: tokens.colorBrandBackground,\n },\n card: {\n position: \"relative\",\n ...shorthands.padding(\n tokens.spacingHorizontalXL,\n tokens.spacingHorizontalXXL,\n ),\n backgroundColor: tokens.colorNeutralBackground1,\n boxShadow: tokens.shadow4,\n zIndex: 3,\n },\n});\n\nexport const CardPaymentInfo: React.FC<CardPaymentInfoProps> = ({\n expiryDate,\n bank,\n virtualAccount,\n totalAmount,\n guides,\n onCopyVA,\n onCheckStatus,\n}) => {\n const styles = useStyles();\n\n return (\n <div className={styles.card}>\n <div className={styles.container}>\n {/* Header Expiry */}\n <div className={styles.headerRow}>\n <Subtitle1>Kode virtual akun berlaku sampai</Subtitle1>\n <Title2 className={styles.expiryTitle}>{expiryDate}</Title2>\n </div>\n\n {/* Info Card */}\n <div className={styles.infoCard}>\n <div className={styles.codeCard}>\n {/* Bank Info */}\n <div className={styles.bankRow}>\n <img src={bank.icon} alt={bank.name} width={40} height={40} />\n <Subtitle2>{bank.name}</Subtitle2>\n </div>\n\n {/* VA Number & Copy */}\n <div className={styles.vaRow}>\n <Title1>{virtualAccount}</Title1>\n <Button\n appearance=\"primary\"\n size=\"large\"\n shape=\"circular\"\n onClick={onCopyVA}\n >\n Salin Kode\n </Button>\n </div>\n </div>\n\n {/* Total Payment */}\n <Field\n size=\"large\"\n label={\n <Subtitle2 style={{ color: tokens.colorNeutralForeground1 }}>\n Total Pembayaran\n </Subtitle2>\n }\n >\n <Input\n disabled\n value={`Rp. ${totalAmount.toLocaleString(\"id-ID\")}`}\n className={styles.input}\n />\n </Field>\n </div>\n\n {/* Check Status Button */}\n <div>\n <div style={{ marginBottom: tokens.spacingVerticalM }}>\n <Subtitle2 style={{ color: tokens.colorNeutralForeground2 }}>\n Klik tombol dibawah ini jika sudah melakukan pembayaran\n </Subtitle2>\n </div>\n <Button\n appearance=\"secondary\"\n size=\"large\"\n shape=\"circular\"\n className={styles.checkStatusButton}\n // Note: Styling for secondary button borders/colors usually handled by tokens or theme wrappers.\n // Keeping simple for library component, parent can override or theme handles it.\n onClick={onCheckStatus}\n >\n Cek Status Pembayaran\n </Button>\n </div>\n\n {/* Payment Guide */}\n <CardPaymentGuide guides={guides} />\n </div>\n </div>\n );\n};\n","import React from 'react';\nimport {\n Badge,\n Body1,\n Button,\n Caption1,\n Caption1Stronger,\n Caption2,\n Divider,\n makeStyles,\n shorthands,\n Subtitle1,\n Subtitle2,\n tokens,\n Image,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport { Col, Row } from 'react-grid-system';\nimport { CardStatusOrderProps } from './CardStatusOrder.types';\n\nconst useStyles = makeStyles({\n activeCard: {\n width: '100%',\n // padding: tokens.spacingHorizontalNone, // default\n color: tokens.colorNeutralStrokeAccessible,\n },\n colGap: {\n gap: '58px', // approx spacing['580']\n },\n cardInfo: {\n border: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralStroke1}`,\n backgroundColor: tokens.colorNeutralBackground1,\n borderRadius: tokens.borderRadiusXLarge, // borderRadius[120] -> XLarge approx\n padding: tokens.spacingHorizontalXXL,\n },\n rowGap: {\n rowGap: '22px', // spacing[220]\n },\n gapdetail: {\n rowGap: tokens.spacingVerticalL,\n },\n itemDetail: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n divider: {\n '::before': {\n ...shorthands.borderColor(tokens.colorBrandBackground), // brandColors[80]\n },\n },\n titleDivider: {\n display: 'flex',\n gap: '18px', // spacing[180]\n },\n centerContent: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n flexDirection: 'column'\n }\n});\n\nexport const CardStatusOrder: React.FC<CardStatusOrderProps> = ({\n bookingCode,\n departureDate,\n departureTime,\n arrivalDate,\n arrivalTime,\n origin,\n destination,\n duration = '-',\n vehicleClass,\n serviceType,\n vehicleNumber,\n shipType,\n statusLabel = 'Sudah Dibayar',\n statusIcon, \n statusColor = 'success',\n illustrationUrl = '/assets/images/illustrations/ticket.svg',\n title = 'Pembayaran berhasil',\n description = 'Tiket Anda aktif dan siap digunakan.',\n onClickViewTicket,\n className,\n}) => {\n const styles = useStyles();\n\n return (\n <div className={`${styles.activeCard} ${className || ''}`}>\n <Row nogutter className={styles.colGap}>\n <Col xs=\"content\">\n <Row direction=\"column\" nogutter>\n <Col xs=\"content\">\n {/* Using standard img for library portability, assuming path is handled by consumer */}\n <img\n src={illustrationUrl}\n alt=\"E-Ticket\"\n width={406}\n height={266}\n />\n </Col>\n <Col xs=\"content\">\n <Row direction=\"column\" justify=\"center\" align=\"center\" nogutter>\n <Col xs=\"content\">\n <Subtitle2>{title}</Subtitle2>\n </Col>\n <Col xs=\"content\">\n <Body1>{description}</Body1>\n </Col>\n </Row>\n </Col>\n </Row>\n </Col>\n <Col>\n <div className={styles.cardInfo}>\n <Row\n direction=\"column\"\n justify=\"center\"\n align=\"center\"\n nogutter\n className={styles.rowGap}\n >\n <Col xs={12}>\n <div className={styles.titleDivider}>\n <Subtitle1>Detail Pemesanan</Subtitle1>\n <Divider style={{ width: 0 }} />\n </div>\n </Col>\n <Col xs={12}>\n <Row justify=\"center\" align=\"center\" nogutter>\n <Col>\n <Body1>Status</Body1>\n </Col>\n <Col xs=\"content\">\n <Badge\n color={statusColor}\n size=\"extra-large\"\n appearance=\"filled\"\n shape=\"rounded\"\n icon={statusIcon || <Icon icon=\"fluent:checkmark-circle-20-regular\" />}\n >\n {statusLabel}\n </Badge>\n </Col>\n </Row>\n </Col>\n <Col xs={12}>\n <Row direction=\"column\" nogutter className={styles.gapdetail}>\n <Col xs={12}>\n <div className={styles.itemDetail}>\n <Caption1Stronger>Kode Booking</Caption1Stronger>\n <Caption1>{bookingCode}</Caption1>\n </div>\n </Col>\n <Col xs={12}>\n <div className={styles.itemDetail}>\n <Caption1Stronger>Jadwal Masuk Pelabuhan</Caption1Stronger>\n <Caption1>\n {departureDate}, {departureTime}\n </Caption1>\n </div>\n </Col>\n <Col xs={12}>\n <div className={styles.itemDetail}>\n <Caption1Stronger>Rute</Caption1Stronger>\n <Caption1>\n {origin} <Icon icon=\"fluent:arrow-right-20-regular\" /> {destination}\n </Caption1>\n </div>\n </Col>\n <Col xs={12}>\n <div className={styles.itemDetail}>\n <Caption1Stronger>Jenis Pengguna Jasa</Caption1Stronger>\n <Caption1>{vehicleClass}</Caption1>\n </div>\n </Col>\n <Col xs={12}>\n <div className={styles.itemDetail}>\n <Caption1Stronger>Layanan</Caption1Stronger>\n <Caption1>{shipType || serviceType}</Caption1>\n </div>\n </Col>\n </Row>\n </Col>\n <Col xs={12}>\n <Button\n appearance=\"primary\"\n size=\"large\"\n style={{ width: '100%' }}\n shape=\"circular\"\n onClick={onClickViewTicket}\n >\n Lihat E-Tiket\n </Button>\n </Col>\n </Row>\n </div>\n </Col>\n </Row>\n </div>\n );\n};\n","import {\n Badge,\n Button,\n Card,\n Dialog,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n DialogTrigger,\n Divider,\n makeStyles,\n shorthands,\n tokens,\n} from '@fluentui/react-components';\nimport React from 'react';\n\nimport { ModalPriceDetailProps } from './ModalPriceDetail.types';\n\nconst useStyles = makeStyles({\n surface: {\n width: '680px',\n maxWidth: '90vw',\n ...shorthands.padding(tokens.spacingVerticalL, tokens.spacingHorizontalL),\n borderRadius: tokens.borderRadiusXLarge,\n },\n dialogTitle: {\n '& h2': {\n fontSize: tokens.fontSizeBase600,\n fontWeight: tokens.fontWeightSemibold,\n },\n },\n card: {\n backgroundColor: tokens.colorNeutralBackground1,\n ...shorthands.border('1px', 'solid', tokens.colorNeutralStroke2),\n ...shorthands.padding(tokens.spacingVerticalXXL, tokens.spacingHorizontalXXL),\n boxShadow: 'none',\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n gap: tokens.spacingVerticalL,\n },\n section: {\n display: 'flex',\n flexDirection: 'column',\n gap: tokens.spacingVerticalS,\n },\n row: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n vehicleTitle: {\n fontSize: tokens.fontSizeBase500,\n fontWeight: tokens.fontWeightSemibold,\n color: tokens.colorNeutralForeground4,\n },\n passengerDetail: {\n color: tokens.colorNeutralForeground4,\n fontSize: tokens.fontSizeBase200,\n marginTop: tokens.spacingVerticalXS,\n },\n addonHeader: {\n fontSize: tokens.fontSizeBase500,\n fontWeight: tokens.fontWeightSemibold,\n color: tokens.colorNeutralForeground1,\n marginTop: tokens.spacingVerticalM,\n },\n priceValue: {\n color: tokens.colorNeutralForeground4,\n fontSize: tokens.fontSizeBase300,\n },\n itemLabel: {\n color: tokens.colorNeutralForeground4,\n fontSize: tokens.fontSizeBase300,\n },\n totalLabel: {\n color: tokens.colorNeutralForeground4,\n fontSize: tokens.fontSizeBase400,\n },\n totalValue: {\n color: tokens.colorNeutralForeground4,\n fontSize: tokens.fontSizeBase400,\n },\n totalTagihanLabel: {\n color: tokens.colorNeutralForeground1,\n fontWeight: tokens.fontWeightSemibold,\n fontSize: tokens.fontSizeBase400,\n },\n totalTagihanValue: {\n color: tokens.colorNeutralForeground1,\n fontWeight: tokens.fontWeightSemibold,\n fontSize: tokens.fontSizeBase400,\n },\n ppnLabel: {\n color: tokens.colorNeutralForeground4,\n fontSize: tokens.fontSizeBase400,\n },\n ppnValue: {\n color: tokens.colorNeutralForeground4,\n fontSize: tokens.fontSizeBase400,\n },\n ppnNote: {\n color: tokens.colorNeutralForeground4,\n fontSize: tokens.fontSizeBase100,\n fontStyle: 'italic',\n marginTop: tokens.spacingVerticalXS,\n },\n grandTotalLabel: {\n color: '#D13438',\n fontSize: tokens.fontSizeHero700,\n fontWeight: tokens.fontWeightSemibold,\n },\n grandTotalValue: {\n color: '#D13438',\n fontSize: tokens.fontSizeHero800,\n fontWeight: tokens.fontWeightSemibold,\n },\n badge: {\n marginLeft: tokens.spacingHorizontalS,\n backgroundColor: '#107C10',\n color: 'white',\n },\n divider: {\n margin: `${tokens.spacingVerticalL} 0`,\n },\n closeButton: {\n color: tokens.colorNeutralForeground1,\n },\n});\n\nexport const ModalPriceDetail: React.FC<ModalPriceDetailProps> = ({\n isOpen,\n onOpenChange,\n detailItems,\n addonItems,\n subTotal,\n taxAmount,\n grandTotal,\n ...props\n}) => {\n const styles = useStyles();\n\n return (\n <Dialog open={isOpen} onOpenChange={(_, data) => onOpenChange(data.open)} {...props}>\n <DialogSurface className={styles.surface}>\n <DialogBody>\n <DialogTitle\n className={styles.dialogTitle}\n action={\n <DialogTrigger action=\"close\">\n <Button\n appearance=\"subtle\"\n aria-label=\"close\"\n icon={\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path\n d=\"M18 6L6 18M6 6L18 18\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n }\n />\n </DialogTrigger>\n }\n >\n Rincian Harga\n </DialogTitle>\n <DialogContent className={styles.content}>\n <Card className={styles.card}>\n <div className={styles.section}>\n {/* Vehicle & Passengers from Data Structure */}\n {detailItems.map(item => (\n <div key={item.key}>\n <div className={styles.row}>\n <div style={{ display: 'flex', alignItems: 'center' }}>\n <span className={styles.vehicleTitle}>{item.label}</span>\n {item.badge && (\n <Badge size=\"medium\" shape=\"rounded\" className={styles.badge}>\n {item.badge}\n </Badge>\n )}\n </div>\n <span className={styles.priceValue}>\n Rp. {item.price.toLocaleString('id-ID')}\n </span>\n </div>\n {item.list &&\n item.list.map(subItem => (\n <div key={subItem.key} className={styles.passengerDetail}>\n <span>{subItem.label}</span>\n <span style={{ float: 'right' }}>\n IDR. {item.price.toLocaleString('id-ID')}\n </span>\n </div>\n ))}\n </div>\n ))}\n\n {addonItems.length > 0 && (\n <>\n <div className={styles.addonHeader}>Add On</div>\n {addonItems.map(item => (\n <div key={item.key} className={styles.row}>\n <span className={styles.itemLabel}>{item.label}</span>\n <span className={styles.priceValue}>\n IDR. {item.price.toLocaleString('id-ID')}\n </span>\n </div>\n ))}\n </>\n )}\n\n <Divider className={styles.divider} />\n\n {/* Totals Section */}\n <div className={styles.row}>\n <span className={styles.totalLabel}>Sub Tagihan</span>\n <span className={styles.totalValue}>IDR.{subTotal.toLocaleString('id-ID')}</span>\n </div>\n <div className={styles.row}>\n <span className={styles.totalTagihanLabel}>Total Tagihan</span>\n <span className={styles.totalTagihanValue}>\n IDR.{subTotal.toLocaleString('id-ID')}\n </span>\n </div>\n\n {/* PPN Section */}\n <div style={{ marginTop: tokens.spacingVerticalL }}>\n <div className={styles.row}>\n <span className={styles.ppnLabel}>PPN (Pajak Pertambahan Nilai) 11%</span>\n <span className={styles.ppnValue}>IDR.{taxAmount.toLocaleString('id-ID')}</span>\n </div>\n <div className={styles.ppnNote}>\n *PPN 11% dikenakan untuk biaya layanan dan biaya admin\n </div>\n </div>\n\n {/* Grand Total */}\n <div className={styles.row} style={{ marginTop: tokens.spacingVerticalXXL }}>\n <span className={styles.grandTotalLabel}>Total Pembayaran</span>\n <span className={styles.grandTotalValue}>\n Rp.{grandTotal.toLocaleString('id-ID')}\n </span>\n </div>\n </div>\n </Card>\n </DialogContent>\n </DialogBody>\n </DialogSurface>\n </Dialog>\n );\n};\n","import {\n Body2,\n makeStyles,\n shorthands,\n Subtitle1,\n Tab,\n TabList,\n TabListProps,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\nimport React from 'react';\n\nimport { CardProfileMenuProps } from './CardProfileMenu.types';\n\nconst useStyles = makeStyles({\n container: {\n display: 'flex',\n flexDirection: 'column',\n backgroundColor: tokens.colorNeutralBackground1,\n ...shorthands.padding(tokens.spacingVerticalL),\n ...shorthands.border(tokens.strokeWidthThin, 'solid', tokens.colorNeutralStroke1),\n borderRadius: tokens.borderRadiusXLarge,\n rowGap: tokens.spacingHorizontalXXL,\n width: '100%',\n },\n sectionList: {\n display: 'flex',\n flexDirection: 'column',\n rowGap: tokens.spacingHorizontalXXL,\n },\n sectionGap: {\n display: 'flex',\n flexDirection: 'column',\n rowGap: tokens.spacingVerticalM,\n },\n labelTab: {\n fontWeight: tokens.fontWeightMedium,\n paddingLeft: tokens.spacingHorizontalMNudge,\n },\n tabItem: {\n '&[aria-selected=\"false\"]': {\n backgroundColor: 'transparent',\n },\n '&[aria-selected=\"true\"]': {\n // brandColors[140] approx #EBF3FC (light blue)\n // brandColors[80] approx #0F6CBD (primary blue)\n // Using generic tokens or hardcoded fallback if brand tokens not available here\n backgroundColor: tokens.colorBrandBackground2, \n color: tokens.colorBrandForeground1,\n },\n justifyContent: 'flex-start',\n },\n tabItemLogout: {\n color: tokens.colorPaletteRedForeground1,\n backgroundColor: 'transparent',\n justifyContent: 'flex-start',\n '&:hover': {\n color: tokens.colorPaletteRedForeground1,\n }\n },\n});\n\nexport const CardProfileMenu: React.FC<CardProfileMenuProps> = ({\n sections,\n selectedValue,\n onTabSelect,\n}) => {\n const styles = useStyles();\n\n const handleTabSelect: TabListProps['onTabSelect'] = (_, data) => {\n onTabSelect(data.value as string);\n };\n\n return (\n <div className={styles.container}>\n <TabList\n vertical\n appearance=\"filled-circular\"\n selectedValue={selectedValue}\n onTabSelect={handleTabSelect}\n >\n <div className={styles.sectionList}>\n {sections.map((section, sectionIndex) => (\n <div key={sectionIndex} className={styles.sectionGap}>\n <div>\n <Subtitle1 className={styles.labelTab}>{section.sectionLabel}</Subtitle1>\n </div>\n {section.tabs.map((tab) => (\n <Tab\n key={tab.value}\n id={tab.value}\n value={tab.value}\n icon={<Icon icon={tab.icon} width={20} height={20} />}\n className={\n tab.value === '/logout' ? styles.tabItemLogout : styles.tabItem\n }\n >\n <Body2>{tab.label}</Body2>\n </Tab>\n ))}\n </div>\n ))}\n </div>\n </TabList>\n </div>\n );\n};\n"]}
|