@asdp/ferryui 0.1.4 → 0.1.5
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 +94 -3
- package/dist/index.d.ts +94 -3
- package/dist/index.js +328 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +328 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -1
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/components/CardTicket/CardTicket.tsx","../src/components/BackgroundTicketCard/BackgroundTicketCard.tsx","../src/components/BackgroundTicketCard/BackgroundTicketCardVertical.tsx","../src/components/CardServiceMenu/CardServiceMenu.tsx","../src/constants/generated/tokensV2.ts","../src/components/InputDynamic/DatePickerInput.tsx","../src/components/InputDynamic/InputDynamic.tsx","../src/components/InputDynamic/constants.ts","../src/components/ModalSearchHarbor/ModalSearchHarbor.tsx"],"names":["makeStyles","tokens","jsx","Dialog","DialogSurface","DialogBody","DialogTitle","DialogContent","jsxs","Body1","Button","useStyles","shorthands","useState","useCallback","Carousel","mergeClasses","CarouselViewport","CarouselSlider","CarouselNav","CarouselNavButton","CarouselCard","Subtitle2","Card","Tooltip","Badge","Caption1","Title2","Caption2","Divider","Title3","Caption1Strong","React","Fragment","forwardRef","Popover","PopoverTrigger","Input","Icon","PopoverSurface","Calendar","useRef","hasError","useEffect","otpIndex","PhoneInput","phoneValue","Textarea","Select","Switch","RadioGroup","Radio","Checkbox","typographyStyles","Controller","Field","Label","Text","DEFAULT_COUNTRY_CODES","Body1Strong"],"mappings":"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","file":"index.js","sourcesContent":["import React, { ReactNode } from 'react';\r\nimport {\r\n Body1,\r\n Button,\r\n Dialog,\r\n DialogBody,\r\n DialogContent,\r\n DialogSurface,\r\n DialogTitle,\r\n makeStyles,\r\n tokens,\r\n} from '@fluentui/react-components';\r\n\r\nconst useStyles = makeStyles({\r\n dialogSurface: {\r\n maxWidth: '600px',\r\n width: '100%',\r\n },\r\n iconContainer: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n gap: tokens.spacingVerticalL,\r\n textAlign: 'center',\r\n paddingTop: tokens.spacingVerticalL,\r\n paddingBottom: tokens.spacingVerticalL,\r\n },\r\n image: {\r\n maxWidth: '100%',\r\n height: 'auto',\r\n },\r\n buttonContainer: {\r\n display: 'flex',\r\n width: '100%',\r\n gap: tokens.spacingHorizontalM,\r\n },\r\n});\r\n\r\nexport interface ModalIllustrationButton {\r\n /**\r\n * Button text\r\n */\r\n text: string;\r\n \r\n /**\r\n * Button click handler\r\n */\r\n onClick: () => void;\r\n \r\n /**\r\n * Button appearance\r\n * @default \"primary\"\r\n */\r\n appearance?: 'primary' | 'outline' | 'secondary' | 'subtle' | 'transparent';\r\n}\r\n\r\nexport interface ModalIllustrationProps {\r\n /**\r\n * Whether the modal is open\r\n */\r\n open: boolean;\r\n \r\n /**\r\n * Callback when modal should close\r\n */\r\n onClose: () => void;\r\n \r\n /**\r\n * Modal title\r\n */\r\n title: string;\r\n \r\n /**\r\n * Modal message content\r\n * Can be a string or React node for more complex content\r\n */\r\n message: string | ReactNode;\r\n \r\n /**\r\n * Image source URL\r\n * @default \"/assets/images/illustrations/radius.svg\"\r\n * @remarks\r\n * When using this component in your application, ensure the asset is available at this path\r\n * in your public directory, or provide a custom imageSrc prop pointing to your own image.\r\n * The asset is included in the published package at `node_modules/@asdp/ferryui/dist/assets/images/illustrations/`\r\n */\r\n imageSrc?: string;\r\n \r\n /**\r\n * Image alt text\r\n * @default \"Illustration\"\r\n */\r\n imageAlt?: string;\r\n \r\n /**\r\n * Image width\r\n * @default 361\r\n */\r\n imageWidth?: number;\r\n \r\n /**\r\n * Image height\r\n * @default 203\r\n */\r\n imageHeight?: number;\r\n \r\n /**\r\n * Primary button configuration\r\n */\r\n primaryButton: ModalIllustrationButton;\r\n \r\n /**\r\n * Optional secondary button configuration\r\n * If provided, buttons will be displayed side by side\r\n */\r\n secondaryButton?: ModalIllustrationButton;\r\n}\r\n\r\nexport const ModalIllustration: React.FC<ModalIllustrationProps> = ({\r\n open,\r\n onClose,\r\n title,\r\n message,\r\n imageSrc = '/assets/images/illustrations/radius.svg',\r\n imageAlt = 'Illustration',\r\n imageWidth = 361,\r\n imageHeight = 203,\r\n primaryButton,\r\n secondaryButton,\r\n}) => {\r\n const styles = useStyles();\r\n\r\n return (\r\n <Dialog open={open} onOpenChange={(_, data) => !data.open && onClose()} modalType=\"modal\">\r\n <DialogSurface className={styles.dialogSurface}>\r\n <DialogBody>\r\n <DialogTitle>{title}</DialogTitle>\r\n <DialogContent>\r\n <div className={styles.iconContainer}>\r\n <img\r\n src={imageSrc}\r\n alt={imageAlt}\r\n width={imageWidth}\r\n height={imageHeight}\r\n className={styles.image}\r\n />\r\n {typeof message === 'string' ? (\r\n <Body1 style={{ textAlign: 'center' }}>{message}</Body1>\r\n ) : (\r\n message\r\n )}\r\n </div>\r\n <div className={styles.buttonContainer}>\r\n <Button\r\n style={{ width: '100%' }}\r\n type=\"button\"\r\n appearance={primaryButton.appearance || 'primary'}\r\n onClick={primaryButton.onClick}\r\n >\r\n {primaryButton.text}\r\n </Button>\r\n {secondaryButton && (\r\n <Button\r\n style={{ width: '100%' }}\r\n type=\"button\"\r\n appearance={secondaryButton.appearance || 'outline'}\r\n onClick={secondaryButton.onClick}\r\n >\r\n {secondaryButton.text}\r\n </Button>\r\n )}\r\n </div>\r\n </DialogContent>\r\n </DialogBody>\r\n </DialogSurface>\r\n </Dialog>\r\n );\r\n};\r\n\r\nexport default ModalIllustration;\r\n","import { ModalIllustrationProps } from './ModalIllustration';\r\n\r\n/**\r\n * Preset configurations for common modal use cases\r\n */\r\nexport const MODAL_PRESETS = {\r\n /**\r\n * Modal for radius/location restriction\r\n */\r\n RADIUS: {\r\n title: 'Anda berada di luar area pemesanan',\r\n message: 'Pemesanan tiket tidak dapat dilakukan dari lokasi Anda saat ini. Fitur pembatasan wilayah sedang aktif untuk mencegah pemesanan tidak sah.',\r\n imageSrc: '/assets/images/illustrations/radius.svg',\r\n imageAlt: 'Radius Limitation Illustration',\r\n },\r\n \r\n /**\r\n * Modal for expired session\r\n */\r\n SESSION_EXPIRED: {\r\n title: 'Sesi anda telah berakhir',\r\n message: 'Waktu sesi Anda telah habis untuk alasan keamanan. Silakan klik tombol dibawah untuk masuk kembali.',\r\n imageSrc: '/assets/images/illustrations/sessionexp.svg',\r\n imageAlt: 'Session Expired Illustration',\r\n },\r\n \r\n /**\r\n * Modal for purchase period expired\r\n */\r\n PURCHASE_PERIOD_EXPIRED: {\r\n title: 'Waktu pembelian telah berakhir',\r\n message: 'Pemesanan tiket ditutup 1 jam sebelum jadwal keberangkatan. Silakan pilih jadwal keberangkatan lain yang masih tersedia.',\r\n imageSrc: '/assets/images/illustrations/pay.svg',\r\n imageAlt: 'Purchase Period Expired Illustration',\r\n },\r\n \r\n /**\r\n * Modal for transaction limit reached\r\n */\r\n TRANSACTION_LIMIT: {\r\n title: 'Anda mencapai batas transaksi tertunda',\r\n message: 'Anda telah mencapai batas transaksi tertunda. Pemesanan dapat dilakukan kembali setelah transaksi sebelumnya diselesaikan.',\r\n imageSrc: '/assets/images/illustrations/mobile-pay.svg',\r\n imageAlt: 'Transaction Limit Illustration',\r\n },\r\n} as const;\r\n\r\n/**\r\n * Type for preset keys\r\n */\r\nexport type ModalPresetKey = keyof typeof MODAL_PRESETS;\r\n\r\n/**\r\n * Helper function to get preset configuration\r\n */\r\nexport const getModalPreset = (presetKey: ModalPresetKey): Partial<ModalIllustrationProps> => {\r\n return MODAL_PRESETS[presetKey];\r\n};\r\n","import React, { ReactNode, useCallback, useEffect, useRef, useState } from 'react';\r\nimport {\r\n Carousel,\r\n CarouselAnnouncerFunction,\r\n CarouselNav,\r\n CarouselNavButton,\r\n CarouselSlider,\r\n CarouselViewport,\r\n makeStyles,\r\n mergeClasses,\r\n shorthands,\r\n tokens,\r\n} from '@fluentui/react-components';\r\n\r\nconst useStyles = makeStyles({\r\n carousel: {},\r\n customCarouselNav: {\r\n display: 'flex',\r\n gap: tokens.spacingHorizontalXS,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n ...shorthands.padding(tokens.spacingVerticalS, tokens.spacingVerticalM),\r\n borderRadius: tokens.borderRadiusCircular,\r\n },\r\n carouselNavButton: {\r\n '& button': {\r\n padding: 0,\r\n marginInline: '0px',\r\n width: '45px',\r\n height: '16px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n transition: 'transform 0.4s cubic-bezier(0.4, 0, 0.2, 1)',\r\n '@media (max-width: 425px)': {\r\n width: '35px',\r\n height: '10px',\r\n },\r\n },\r\n '& button::after': {\r\n content: '\"\"',\r\n transition:\r\n 'all 0.4s cubic-bezier(0.4, 0, 0.2, 1), transform 0.4s cubic-bezier(0.4, 0, 0.2, 1)',\r\n },\r\n \"& button[aria-selected='true']::after\": {\r\n backgroundImage: 'linear-gradient(to right,#00B3BD, #8DC63F)',\r\n width: '55px',\r\n height: '16px',\r\n borderRadius: tokens.borderRadiusCircular,\r\n transform: 'translateX(0)',\r\n '@media (max-width: 425px)': {\r\n width: '25px',\r\n height: '10px',\r\n },\r\n '@media (max-width: 768px)': {\r\n width: '35px',\r\n height: '13px',\r\n },\r\n },\r\n \"& button[aria-selected='false']::after\": {\r\n backgroundColor: '#D1D1D1',\r\n width: '15px',\r\n height: '15px',\r\n opacity: '90%',\r\n transform: 'scale(0.9)',\r\n '@media (max-width: 425px)': {\r\n width: '10px',\r\n height: '10px',\r\n },\r\n },\r\n },\r\n});\r\n\r\nconst defaultAnnouncement: CarouselAnnouncerFunction = (index: number, totalSlides: number) => {\r\n return `Carousel slide ${index + 1} of ${totalSlides}`;\r\n};\r\n\r\nexport interface CarouselWithCustomNavProps {\r\n /**\r\n * Carousel items/children\r\n */\r\n children: ReactNode;\r\n \r\n /**\r\n * Whether carousel should loop (circular)\r\n * @default true\r\n */\r\n circular?: boolean;\r\n \r\n /**\r\n * Whether carousel is draggable\r\n * @default true\r\n */\r\n draggable?: boolean;\r\n \r\n /**\r\n * Alignment of carousel items\r\n * @default \"start\"\r\n */\r\n align?: 'start' | 'center' | 'end';\r\n \r\n /**\r\n * Whether to remove whitespace between items\r\n * @default false\r\n */\r\n whitespace?: boolean;\r\n \r\n /**\r\n * Announcement function for accessibility\r\n */\r\n announcement?: CarouselAnnouncerFunction;\r\n \r\n /**\r\n * Active index (controlled)\r\n */\r\n activeIndex?: number;\r\n \r\n /**\r\n * Callback when active index changes\r\n */\r\n onActiveIndexChange?: (index: number) => void;\r\n \r\n /**\r\n * ARIA label for the carousel slider\r\n * @default \"Carousel\"\r\n */\r\n ariaLabel?: string;\r\n \r\n /**\r\n * Whether to use dark background for navigation\r\n * @default true\r\n */\r\n darkNavBackground?: boolean;\r\n \r\n /**\r\n * Additional className for carousel container\r\n */\r\n className?: string;\r\n \r\n /**\r\n * Whether to enable card focus mode\r\n * @default false\r\n */\r\n cardFocus?: boolean;\r\n}\r\n\r\nexport const CarouselWithCustomNav: React.FC<CarouselWithCustomNavProps> = ({\r\n children,\r\n circular = true,\r\n draggable = true,\r\n align = 'start',\r\n whitespace = false,\r\n announcement = defaultAnnouncement,\r\n activeIndex: controlledIndex,\r\n onActiveIndexChange,\r\n ariaLabel = 'Carousel',\r\n darkNavBackground = true,\r\n className,\r\n cardFocus = false,\r\n}) => {\r\n const styles = useStyles();\r\n const [internalIndex, setInternalIndex] = useState(0);\r\n \r\n // Use controlled index if provided, otherwise use internal state\r\n const activeIndex = controlledIndex !== undefined ? controlledIndex : internalIndex;\r\n \r\n const handleIndexChange = useCallback((index: number) => {\r\n if (controlledIndex === undefined) {\r\n setInternalIndex(index);\r\n }\r\n onActiveIndexChange?.(index);\r\n }, [controlledIndex, onActiveIndexChange]);\r\n\r\n return (\r\n <Carousel\r\n circular={circular}\r\n draggable={draggable}\r\n align={align}\r\n className={mergeClasses(styles.carousel, className)}\r\n whitespace={whitespace}\r\n announcement={announcement}\r\n activeIndex={activeIndex}\r\n onActiveIndexChange={(_, data) => handleIndexChange(data.index)}\r\n >\r\n <CarouselViewport>\r\n <CarouselSlider\r\n cardFocus={cardFocus}\r\n aria-label={ariaLabel}\r\n >\r\n {children}\r\n </CarouselSlider>\r\n </CarouselViewport>\r\n <CarouselNav\r\n style={{\r\n backgroundColor: darkNavBackground\r\n ? tokens.colorSubtleBackgroundInverted\r\n : tokens.colorSubtleBackground,\r\n marginTop: tokens.spacingVerticalXL,\r\n }}\r\n appearance=\"brand\"\r\n className={styles.carouselNavButton}\r\n >\r\n {index => <CarouselNavButton aria-label={`Slide ${index + 1}`} />}\r\n </CarouselNav>\r\n </Carousel>\r\n );\r\n};\r\n\r\nexport default CarouselWithCustomNav;\r\n","import React from 'react';\r\nimport {\r\n Body1,\r\n CarouselCard,\r\n makeStyles,\r\n Subtitle2,\r\n tokens,\r\n} from '@fluentui/react-components';\r\n\r\nconst useStyles = makeStyles({\r\n actionCard: {\r\n borderRadius: tokens.borderRadiusXLarge,\r\n overflow: 'hidden',\r\n textAlign: 'center',\r\n width: '360px',\r\n maxWidth: '360px',\r\n margin: '0px 6px',\r\n boxShadow: tokens.shadow4,\r\n backgroundColor: tokens.colorNeutralForegroundInverted,\r\n '@media (max-width: 1024px)': {\r\n width: '200px',\r\n maxWidth: '200px',\r\n },\r\n '@media (max-width: 768px)': {\r\n width: '190px',\r\n maxWidth: '190px',\r\n },\r\n '@media (max-width: 480px)': {\r\n width: '180px',\r\n maxWidth: '180px',\r\n margin: '0px 4px',\r\n },\r\n },\r\n imageContainer: {\r\n position: 'relative',\r\n width: '100%',\r\n height: '202px',\r\n overflow: 'hidden',\r\n '@media (max-width: 1024px)': {\r\n height: '120px',\r\n },\r\n '@media (max-width: 768px)': {\r\n height: '110px',\r\n },\r\n '@media (max-width: 480px)': {\r\n height: '100px',\r\n },\r\n },\r\n image: {\r\n width: '100%',\r\n height: '100%',\r\n objectFit: 'cover',\r\n objectPosition: 'center',\r\n },\r\n info: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n padding: tokens.spacingHorizontalM,\r\n width: '100%',\r\n alignContent: 'center',\r\n justifyContent: 'space-between',\r\n gap: tokens.spacingVerticalSNudge,\r\n '@media (max-width: 1024px)': {\r\n padding: tokens.spacingHorizontalSNudge,\r\n gap: tokens.spacingVerticalSNudge,\r\n },\r\n '@media (max-width: 768px)': {\r\n padding: tokens.spacingVerticalS,\r\n gap: tokens.spacingVerticalXS,\r\n },\r\n '@media (max-width: 480px)': {\r\n padding: tokens.spacingVerticalSNudge,\r\n gap: tokens.spacingVerticalXS,\r\n },\r\n },\r\n});\r\n\r\nexport interface CardPromoProps {\r\n /**\r\n * Image URL for the promo\r\n */\r\n imageUrl: string;\r\n \r\n /**\r\n * Promo title/heading\r\n */\r\n title: string;\r\n \r\n /**\r\n * Promo description/subtitle\r\n */\r\n description: string;\r\n \r\n /**\r\n * Image alt text\r\n * @default \"Promo image\"\r\n */\r\n imageAlt?: string;\r\n \r\n /**\r\n * Index of the card (for accessibility)\r\n */\r\n index?: number;\r\n \r\n /**\r\n * Total number of cards (for accessibility)\r\n */\r\n totalCards?: number;\r\n \r\n /**\r\n * Click handler for the card\r\n */\r\n onClick?: () => void;\r\n}\r\n\r\nexport const CardPromo: React.FC<CardPromoProps> = ({\r\n imageUrl,\r\n title,\r\n description,\r\n imageAlt = 'Promo image',\r\n index = 0,\r\n totalCards,\r\n onClick,\r\n}) => {\r\n const classes = useStyles();\r\n\r\n const ariaLabel = totalCards\r\n ? `Card ${index + 1} of ${totalCards}`\r\n : `Promo card ${index + 1}`;\r\n\r\n return (\r\n <CarouselCard\r\n autoSize\r\n className={classes.actionCard}\r\n aria-label={ariaLabel}\r\n onClick={onClick}\r\n style={{ cursor: onClick ? 'pointer' : 'default' }}\r\n >\r\n <div className={classes.imageContainer}>\r\n <img\r\n className={classes.image}\r\n src={imageUrl}\r\n role=\"presentation\"\r\n alt={imageAlt}\r\n />\r\n </div>\r\n <div className={classes.info}>\r\n <Subtitle2>{title}</Subtitle2>\r\n <Body1>{description}</Body1>\r\n </div>\r\n </CarouselCard>\r\n );\r\n};\r\n\r\nexport default CardPromo;\r\n","import React from 'react';\r\nimport {\r\n CarouselCard,\r\n makeStyles,\r\n} from '@fluentui/react-components';\r\n\r\nconst useStyles = makeStyles({\r\n bannerCard: {\r\n overflow: 'hidden',\r\n width: '100%',\r\n maxWidth: '100%',\r\n margin: 0,\r\n padding: 0,\r\n backgroundColor: 'transparent',\r\n border: 'none',\r\n },\r\n bannerImage: {\r\n width: '100%',\r\n height: 'auto',\r\n objectFit: 'cover',\r\n display: 'block',\r\n cursor: 'pointer',\r\n },\r\n});\r\n\r\nexport interface CardBannerProps {\r\n /**\r\n * Banner image URL\r\n */\r\n imageUrl: string;\r\n \r\n /**\r\n * Banner alt text\r\n */\r\n alt: string;\r\n \r\n /**\r\n * Index of the banner (for accessibility)\r\n */\r\n index?: number;\r\n \r\n /**\r\n * Total number of banners (for accessibility)\r\n */\r\n totalBanners?: number;\r\n \r\n /**\r\n * Click handler for the banner\r\n */\r\n onClick?: () => void;\r\n}\r\n\r\nexport const CardBanner: React.FC<CardBannerProps> = ({\r\n imageUrl,\r\n alt,\r\n index = 0,\r\n totalBanners,\r\n onClick,\r\n}) => {\r\n const classes = useStyles();\r\n\r\n const ariaLabel = totalBanners\r\n ? `Banner ${index + 1} of ${totalBanners}`\r\n : `Banner ${index + 1}`;\r\n\r\n return (\r\n <CarouselCard\r\n className={classes.bannerCard}\r\n aria-label={ariaLabel}\r\n >\r\n <img\r\n className={classes.bannerImage}\r\n src={imageUrl}\r\n alt={alt}\r\n role=\"presentation\"\r\n onClick={onClick}\r\n style={{ cursor: onClick ? 'pointer' : 'default' }}\r\n />\r\n </CarouselCard>\r\n );\r\n};\r\n\r\nexport default CardBanner;\r\n","import React, { ReactNode } from 'react';\r\nimport {\r\n Badge,\r\n Button,\r\n Caption1,\r\n Caption1Strong,\r\n Caption2,\r\n Card,\r\n Divider,\r\n makeStyles,\r\n mergeClasses,\r\n shorthands,\r\n Subtitle2,\r\n Title2,\r\n Title3,\r\n tokens,\r\n Tooltip,\r\n} from '@fluentui/react-components';\r\n\r\nconst useStyles = makeStyles({\r\n ticketWrapper: {\r\n borderRadius: tokens.borderRadiusXLarge,\r\n overflow: 'visible',\r\n boxShadow: tokens.shadow4,\r\n display: 'flex',\r\n width: '100%',\r\n marginBottom: '2rem',\r\n minHeight: '323px',\r\n padding: 0,\r\n '@media (max-width: 1200px)': {\r\n flexDirection: 'column',\r\n },\r\n },\r\n ticketLeftCard: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n gap: '3em',\r\n width: '100%',\r\n height: '100%',\r\n boxShadow: 'none',\r\n position: 'relative',\r\n overflow: 'visible',\r\n flexDirection: 'column',\r\n '@media (min-width: 1200px)': {\r\n borderRight: `0.7em dashed ${tokens.colorNeutralBackground1Hover}`,\r\n borderEndEndRadius: 0,\r\n borderEndStartRadius: 0,\r\n borderTopLeftRadius: tokens.borderRadiusXLarge,\r\n borderBottomLeftRadius: tokens.borderRadiusXLarge,\r\n },\r\n '@media (max-width: 1200px)': {\r\n borderBottom: `0.5em dashed ${tokens.colorNeutralBackground1Hover}`,\r\n borderTopLeftRadius: tokens.borderRadiusXLarge,\r\n borderTopRightRadius: tokens.borderRadiusXLarge,\r\n borderEndEndRadius: 0,\r\n borderEndStartRadius: 0,\r\n gap: '1rem',\r\n flexDirection: 'row',\r\n justifyContent: 'space-around',\r\n padding: '2rem',\r\n },\r\n },\r\n circularLeft: {\r\n position: 'absolute',\r\n width: '100px',\r\n height: '50px',\r\n borderRadius: '50%',\r\n backgroundColor: tokens.colorNeutralBackground1Hover,\r\n left: '-50px',\r\n boxShadow: 'inset -3px 0px 1px rgba(0, 0, 0, 0.1)',\r\n },\r\n circularLeftMd: {\r\n position: 'absolute',\r\n width: '50px',\r\n height: '30px',\r\n borderRadius: '50%',\r\n backgroundColor: tokens.colorNeutralBackground1Hover,\r\n left: '-25px',\r\n bottom: '-18px',\r\n zIndex: 2,\r\n boxShadow: 'inset -3px 0px 1px rgba(0, 0, 0, 0.1)',\r\n },\r\n circularRightMd: {\r\n position: 'absolute',\r\n width: '50px',\r\n height: '30px',\r\n borderRadius: '50%',\r\n backgroundColor: tokens.colorNeutralBackground1Hover,\r\n right: '-25px',\r\n bottom: '-18px',\r\n zIndex: 2,\r\n boxShadow: 'inset 3px 0px 1px rgba(0, 0, 0, 0.1)',\r\n },\r\n ticketMiddleCard: {\r\n width: '100%',\r\n height: '100%',\r\n boxShadow: 'none',\r\n borderRadius: 0,\r\n padding: '2rem',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'space-between',\r\n '@media (max-width: 768px)': {\r\n padding: '1rem',\r\n },\r\n },\r\n ticketInfo: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n gap: '0.5em',\r\n },\r\n ticketTime: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'start',\r\n gap: '0.5em',\r\n },\r\n ticketDuration: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n gap: '0.5rem',\r\n },\r\n dividerContainer: {\r\n position: 'relative',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justifyItems: 'center',\r\n width: '100%',\r\n },\r\n ticketButtons: {\r\n display: 'flex',\r\n gap: '1rem',\r\n marginTop: '1rem',\r\n '@media (max-width: 768px)': {\r\n flexDirection: 'column',\r\n },\r\n },\r\n ticketRightCard: {\r\n width: '100%',\r\n height: '100%',\r\n boxShadow: 'none',\r\n borderRadius: 0,\r\n borderTopLeftRadius: 0,\r\n borderBottomLeftRadius: 0,\r\n borderTopRightRadius: tokens.borderRadiusXLarge,\r\n borderBottomRightRadius: tokens.borderRadiusXLarge,\r\n position: 'relative',\r\n overflow: 'visible',\r\n background: 'linear-gradient(75deg, #58C91B 0%, #1949E0 103.3%)',\r\n padding: '5em',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'space-between',\r\n color: tokens.colorNeutralForegroundInverted,\r\n '@media (max-width: 1200px)': {\r\n padding: '2rem',\r\n borderTopRightRadius: 0,\r\n borderBottomLeftRadius: tokens.borderRadiusXLarge,\r\n borderBottomRightRadius: tokens.borderRadiusXLarge,\r\n },\r\n '@media (max-width: 768px)': {\r\n padding: '1rem',\r\n },\r\n },\r\n priceCard: {\r\n border: '1px solid #FFF',\r\n background: 'rgba(255, 255, 255, 0.30)',\r\n backdropFilter: 'blur(17.5px)',\r\n borderRadius: tokens.borderRadiusLarge,\r\n padding: '1.2rem',\r\n gap: '1rem',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n flexWrap: 'wrap',\r\n '@media (max-width: 768px)': {\r\n padding: '1rem',\r\n },\r\n },\r\n facilitiesSection: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '0.5rem',\r\n },\r\n facilitiesList: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n gap: '0.75rem',\r\n },\r\n facilityItem: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '0.5rem',\r\n fontSize: '14px',\r\n },\r\n circularRight: {\r\n position: 'absolute',\r\n width: '100px',\r\n height: '50px',\r\n borderRadius: '50%',\r\n backgroundColor: tokens.colorNeutralBackground1Hover,\r\n right: '-50px',\r\n boxShadow: 'inset 3px 0px 1px rgba(0, 0, 0, 0.1)',\r\n },\r\n asdpLogo: {\r\n width: 'clamp(50px, 20vw, 150px)',\r\n },\r\n});\r\n\r\nexport interface CardTicketButton {\r\n label: string;\r\n icon?: JSX.Element;\r\n onClick?: () => void;\r\n}\r\n\r\nexport interface CardTicketProps {\r\n /**\r\n * Ship type badge configuration\r\n */\r\n shipType: {\r\n label: string;\r\n color: 'brand' | 'danger' | 'important' | 'informative' | 'severe' | 'subtle' | 'success' | 'warning';\r\n tooltip?: string;\r\n };\r\n \r\n /**\r\n * Logo image source\r\n * @default \"/assets/logo/asdp-default.svg\"\r\n */\r\n logoSrc?: string;\r\n \r\n /**\r\n * Ship name\r\n */\r\n shipName: string;\r\n \r\n /**\r\n * Available seats configuration\r\n */\r\n availableSeats: {\r\n count: number;\r\n threshold?: number; // Seats count threshold for color (default: 50)\r\n };\r\n \r\n /**\r\n * Departure information\r\n */\r\n departure: {\r\n day: string;\r\n time: string;\r\n location: string;\r\n };\r\n \r\n /**\r\n * Arrival information\r\n */\r\n arrival: {\r\n day: string;\r\n time: string;\r\n location: string;\r\n };\r\n \r\n /**\r\n * Duration text\r\n */\r\n duration: string;\r\n \r\n /**\r\n * Middle section action buttons (max 2)\r\n */\r\n actionButtons?: CardTicketButton[];\r\n \r\n /**\r\n * Price display (formatted string)\r\n */\r\n price: string;\r\n \r\n /**\r\n * Primary button configuration\r\n */\r\n primaryButton: CardTicketButton;\r\n \r\n /**\r\n * List of facilities\r\n */\r\n facilities: string[];\r\n \r\n /**\r\n * Custom icon for ship indicator\r\n */\r\n shipIcon?: JSX.Element;\r\n \r\n /**\r\n * Custom icon for facilities checkmark\r\n */\r\n facilityIcon?: JSX.Element;\r\n}\r\n\r\nexport const CardTicket: React.FC<CardTicketProps> = ({\r\n shipType,\r\n logoSrc = '/assets/logo/asdp-default.svg',\r\n shipName,\r\n availableSeats,\r\n departure,\r\n arrival,\r\n duration,\r\n actionButtons = [],\r\n price,\r\n primaryButton,\r\n facilities,\r\n shipIcon,\r\n facilityIcon,\r\n}) => {\r\n const styles = useStyles();\r\n const threshold = availableSeats.threshold ?? 50;\r\n const isLowSeats = availableSeats.count <= threshold;\r\n\r\n return (\r\n <div className={styles.ticketWrapper}>\r\n {/* Left Section */}\r\n <Card className={styles.ticketLeftCard}>\r\n <Tooltip\r\n content={shipType.tooltip || shipType.label}\r\n relationship=\"label\"\r\n appearance=\"inverted\"\r\n >\r\n <Badge\r\n size=\"large\"\r\n appearance=\"filled\"\r\n color={shipType.color}\r\n iconPosition=\"before\"\r\n shape=\"rounded\"\r\n >\r\n {shipType.label}\r\n </Badge>\r\n </Tooltip>\r\n \r\n <img\r\n src={logoSrc}\r\n className={styles.asdpLogo}\r\n alt=\"Logo\"\r\n />\r\n \r\n {/* Mobile: Show availability badge */}\r\n <div style={{ display: 'none' }}>\r\n <Badge\r\n size=\"large\"\r\n appearance=\"tint\"\r\n color={isLowSeats ? 'danger' : 'success'}\r\n iconPosition=\"after\"\r\n shape=\"rounded\"\r\n >\r\n Tersedia {availableSeats.count}\r\n </Badge>\r\n </div>\r\n \r\n <Subtitle2>{shipName}</Subtitle2>\r\n \r\n {/* Circular decorations - Desktop */}\r\n <div style={{ display: 'none' }}>\r\n {Array.from({ length: 5 }).map((_, index) => (\r\n <div\r\n key={index}\r\n className={styles.circularLeft}\r\n style={{\r\n top: `${18 + index * 60}px`,\r\n }}\r\n />\r\n ))}\r\n </div>\r\n \r\n {/* Circular decorations - Mobile */}\r\n <div className={styles.circularLeftMd} />\r\n <div className={styles.circularRightMd} />\r\n </Card>\r\n\r\n {/* Middle Section */}\r\n <Card className={styles.ticketMiddleCard}>\r\n {/* Desktop: Show availability badge */}\r\n <Badge\r\n size=\"extra-large\"\r\n appearance=\"tint\"\r\n color={isLowSeats ? 'danger' : 'success'}\r\n iconPosition=\"after\"\r\n shape=\"rounded\"\r\n >\r\n Tersedia {availableSeats.count}\r\n </Badge>\r\n\r\n <div>\r\n <div className={styles.ticketInfo}>\r\n <div className={styles.ticketTime}>\r\n <Caption1>{departure.day}</Caption1>\r\n <Title2>{departure.time}</Title2>\r\n <Caption1>{departure.location}</Caption1>\r\n </div>\r\n \r\n <div className={styles.ticketDuration}>\r\n <Caption2>Estimasi {duration}</Caption2>\r\n <div className={styles.dividerContainer}>\r\n <Divider>\r\n {shipIcon || <span>🚢</span>}\r\n </Divider>\r\n </div>\r\n </div>\r\n \r\n <div className={styles.ticketTime}>\r\n <Caption1>{arrival.day}</Caption1>\r\n <Title2>{arrival.time}</Title2>\r\n <Caption1>{arrival.location}</Caption1>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n {actionButtons.length > 0 && (\r\n <div className={styles.ticketButtons}>\r\n {actionButtons.slice(0, 2).map((button, idx) => (\r\n <Button\r\n key={idx}\r\n appearance=\"outline\"\r\n shape=\"circular\"\r\n style={{\r\n flex: 1,\r\n borderColor: tokens.colorBrandBackground,\r\n color: tokens.colorBrandBackground,\r\n }}\r\n icon={button.icon}\r\n size=\"medium\"\r\n onClick={button.onClick}\r\n >\r\n {button.label}\r\n </Button>\r\n ))}\r\n </div>\r\n )}\r\n </Card>\r\n\r\n {/* Right Section */}\r\n <Card className={styles.ticketRightCard}>\r\n <div className={styles.priceCard}>\r\n <div style={{ display: 'flex', flexDirection: 'column', gap: '0.25rem' }}>\r\n <Subtitle2>Total harga</Subtitle2>\r\n <Title3 style={{ display: 'flex', flexDirection: 'row', alignItems: 'center' }}>\r\n IDR {price}\r\n </Title3>\r\n </div>\r\n <Button\r\n onClick={primaryButton.onClick}\r\n appearance=\"primary\"\r\n size=\"medium\"\r\n shape=\"circular\"\r\n icon={primaryButton.icon}\r\n style={{ backgroundColor: '#58C91B' }}\r\n >\r\n {primaryButton.label}\r\n </Button>\r\n </div>\r\n \r\n <div className={styles.facilitiesSection}>\r\n <Subtitle2>Fasilitas</Subtitle2>\r\n <div className={styles.facilitiesList}>\r\n {facilities.map((facility, idx) => (\r\n <div key={idx} className={styles.facilityItem}>\r\n {facilityIcon || <span>✓</span>}\r\n <Caption1Strong>{facility}</Caption1Strong>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n \r\n {/* Circular decorations - Desktop */}\r\n <div style={{ display: 'none' }}>\r\n {Array.from({ length: 5 }).map((_, index) => (\r\n <div\r\n key={index}\r\n className={styles.circularRight}\r\n style={{\r\n top: `${18 + index * 60}px`,\r\n }}\r\n />\r\n ))}\r\n </div>\r\n </Card>\r\n </div>\r\n );\r\n};\r\n\r\nexport default CardTicket;\r\n","import React from 'react';\r\n\r\n/**\r\n * Horizontal ticket card background with decorative perforated edges\r\n * Use this for desktop/landscape layouts\r\n */\r\nconst BackgroundTicketCard = (props: React.SVGProps<SVGSVGElement>) => (\r\n <svg\r\n viewBox=\"0 0 1850 465\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n preserveAspectRatio=\"none\"\r\n {...props}\r\n >\r\n <g filter=\"url(#filter0_dd_156_32114)\">\r\n <path\r\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\"\r\n fill=\"white\"\r\n />\r\n </g>\r\n <defs>\r\n <filter\r\n id=\"filter0_dd_156_32114\"\r\n x=\"0\"\r\n y=\"0\"\r\n width=\"1850\"\r\n height=\"465\"\r\n filterUnits=\"userSpaceOnUse\"\r\n colorInterpolationFilters=\"sRGB\"\r\n >\r\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix\r\n in=\"SourceAlpha\"\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\"\r\n />\r\n <feOffset />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\r\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\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_156_32114\" />\r\n <feColorMatrix\r\n in=\"SourceAlpha\"\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\"\r\n />\r\n <feOffset dy=\"8\" />\r\n <feGaussianBlur stdDeviation=\"8\" />\r\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\r\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\" />\r\n <feBlend\r\n mode=\"normal\"\r\n in2=\"effect1_dropShadow_156_32114\"\r\n result=\"effect2_dropShadow_156_32114\"\r\n />\r\n <feBlend\r\n mode=\"normal\"\r\n in=\"SourceGraphic\"\r\n in2=\"effect2_dropShadow_156_32114\"\r\n result=\"shape\"\r\n />\r\n </filter>\r\n </defs>\r\n </svg>\r\n);\r\n\r\nexport default BackgroundTicketCard;\r\n","import React from 'react';\r\n\r\n/**\r\n * Vertical ticket card background with decorative perforated edges\r\n * Use this for mobile/portrait layouts\r\n */\r\nconst BackgroundTicketCardVertical = (props: React.SVGProps<SVGSVGElement>) => (\r\n <svg\r\n viewBox=\"0 0 465 1750\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n preserveAspectRatio=\"none\"\r\n {...props}\r\n >\r\n <g filter=\"url(#filter0_dd_156_32115)\">\r\n <path\r\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\"\r\n fill=\"white\"\r\n />\r\n </g>\r\n <defs>\r\n <filter\r\n id=\"filter0_dd_156_32115\"\r\n x=\"0\"\r\n y=\"0\"\r\n width=\"465\"\r\n height=\"1750\"\r\n filterUnits=\"userSpaceOnUse\"\r\n colorInterpolationFilters=\"sRGB\"\r\n >\r\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix\r\n in=\"SourceAlpha\"\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\"\r\n />\r\n <feOffset />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\r\n <feColorMatrix\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12 0\"\r\n />\r\n <feBlend\r\n mode=\"normal\"\r\n in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_156_32115\"\r\n />\r\n <feColorMatrix\r\n in=\"SourceAlpha\"\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\"\r\n />\r\n <feOffset dy=\"8\" />\r\n <feGaussianBlur stdDeviation=\"8\" />\r\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\r\n <feColorMatrix\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14 0\"\r\n />\r\n <feBlend\r\n mode=\"normal\"\r\n in2=\"effect1_dropShadow_156_32115\"\r\n result=\"effect2_dropShadow_156_32115\"\r\n />\r\n <feBlend\r\n mode=\"normal\"\r\n in=\"SourceGraphic\"\r\n in2=\"effect2_dropShadow_156_32115\"\r\n result=\"shape\"\r\n />\r\n </filter>\r\n </defs>\r\n </svg>\r\n);\r\n\r\nexport default BackgroundTicketCardVertical;\r\n","import React from 'react';\r\nimport {\r\n Button,\r\n Card,\r\n Divider,\r\n makeStyles,\r\n mergeClasses,\r\n tokens,\r\n} from '@fluentui/react-components';\r\n\r\nconst useStyles = makeStyles({\r\n card: {\r\n width: '100%',\r\n boxSizing: 'border-box',\r\n padding: '0px',\r\n borderRadius: tokens.borderRadiusXLarge,\r\n },\r\n menuList: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n '@media (max-width: 1200px)': {\r\n flexDirection: 'row',\r\n overflowX: 'auto',\r\n flexWrap: 'nowrap',\r\n gap: '0px',\r\n WebkitOverflowScrolling: 'touch',\r\n scrollbarWidth: 'thin',\r\n justifyContent: 'space-around',\r\n },\r\n },\r\n menuItem: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n justifyContent: 'flex-start',\r\n padding: '12px',\r\n borderRadius: tokens.borderRadiusMedium,\r\n cursor: 'pointer',\r\n textAlign: 'left',\r\n transition: 'background-color 0.2s ease',\r\n textDecoration: 'none',\r\n color: tokens.colorNeutralForeground1,\r\n backgroundColor: tokens.colorNeutralBackground1,\r\n border: 'none',\r\n gap: '12px',\r\n '&:hover': {\r\n backgroundColor: tokens.colorNeutralBackground1Hover,\r\n },\r\n '@media (max-width: 1200px)': {\r\n padding: '10px 12px',\r\n flexShrink: 0,\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n textAlign: 'center',\r\n },\r\n },\r\n menuItemActive: {\r\n backgroundColor: tokens.colorNeutralBackground3,\r\n color: tokens.colorNeutralForeground1,\r\n '&:hover': {\r\n backgroundColor: tokens.colorNeutralBackground3Hover,\r\n },\r\n },\r\n logo: {\r\n height: '32px',\r\n width: '32px',\r\n flexShrink: 0,\r\n },\r\n textContent: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '4px',\r\n '@media (max-width: 1200px)': {\r\n alignItems: 'center',\r\n },\r\n },\r\n label: {\r\n fontSize: tokens.fontSizeBase300,\r\n fontWeight: tokens.fontWeightSemibold,\r\n lineHeight: '1.2',\r\n },\r\n description: {\r\n fontSize: tokens.fontSizeBase200,\r\n fontWeight: tokens.fontWeightRegular,\r\n color: tokens.colorNeutralForeground2,\r\n lineHeight: '1.4',\r\n '@media (max-width: 1200px)': {\r\n fontSize: tokens.fontSizeBase100,\r\n whiteSpace: 'nowrap',\r\n },\r\n },\r\n dividerVertical: {\r\n '@media (min-width: 1200px)': {\r\n display: 'none',\r\n },\r\n },\r\n dividerHorizontal: {\r\n '@media (max-width: 1200px)': {\r\n display: 'none',\r\n },\r\n },\r\n});\r\n\r\nexport interface ServiceMenuItem {\r\n id: string;\r\n label: string;\r\n logo?: string;\r\n description?: string;\r\n customStyle?: React.CSSProperties;\r\n}\r\n\r\nexport interface CardServiceMenuProps {\r\n /**\r\n * Array of menu items to display\r\n */\r\n items: ServiceMenuItem[];\r\n \r\n /**\r\n * Currently active item ID\r\n */\r\n activeItemId?: string;\r\n \r\n /**\r\n * Callback when an item is clicked\r\n */\r\n onItemClick?: (itemId: string) => void;\r\n \r\n /**\r\n * Whether to show descriptions on desktop\r\n * @default true\r\n */\r\n showDescriptions?: boolean;\r\n \r\n /**\r\n * Custom className for the card\r\n */\r\n className?: string;\r\n}\r\n\r\nexport const CardServiceMenu: React.FC<CardServiceMenuProps> = ({\r\n items,\r\n activeItemId,\r\n onItemClick,\r\n showDescriptions = true,\r\n className,\r\n}) => {\r\n const styles = useStyles();\r\n\r\n const getMenuItemClass = (itemId: string) => {\r\n const isActive = activeItemId === itemId;\r\n return mergeClasses(\r\n styles.menuItem,\r\n isActive && styles.menuItemActive\r\n );\r\n };\r\n\r\n return (\r\n <Card className={mergeClasses(styles.card, className)}>\r\n <div className={styles.menuList}>\r\n {items.map((item, index) => (\r\n <React.Fragment key={item.id}>\r\n <Button\r\n className={getMenuItemClass(item.id)}\r\n onClick={() => onItemClick?.(item.id)}\r\n style={item.customStyle}\r\n >\r\n {item.logo && (\r\n <img\r\n src={item.logo}\r\n alt={item.label}\r\n className={styles.logo}\r\n />\r\n )}\r\n <div className={styles.textContent}>\r\n <span className={styles.label}>{item.label}</span>\r\n {showDescriptions && item.description && (\r\n <span className={styles.description}>\r\n {item.description}\r\n </span>\r\n )}\r\n </div>\r\n </Button>\r\n {index < items.length - 1 && (\r\n <>\r\n <Divider className={styles.dividerHorizontal} />\r\n <Divider vertical className={styles.dividerVertical} />\r\n </>\r\n )}\r\n </React.Fragment>\r\n ))}\r\n </div>\r\n </Card>\r\n );\r\n};\r\n\r\nexport default CardServiceMenu;\r\n","/**\r\n * Auto-generated Figma Tokens\r\n * Generated by custom build script\r\n * Source: tokens.json\r\n * DO NOT EDIT MANUALLY - Run 'npm run tokens:build' to regenerate\r\n */\r\n\r\n// Brand Colors (Brand-10 to Brand-160)\r\nexport const brandColors = {\r\n '10': '#001a1bff',\r\n '20': '#02383bff',\r\n '30': '#002426',\r\n '40': '#004044',\r\n '50': '#005D62',\r\n '60': '#007A81',\r\n '70': '#00969F',\r\n '80': '#00B3BD',\r\n '90': '#29BFC8',\r\n '100': '#52CBD2',\r\n '110': '#7AD7DD',\r\n '120': '#A3E4E7',\r\n '130': '#CCF0F2',\r\n '140': '#E1F7F8',\r\n '150': '#fdfdff',\r\n '160': '#ffffff',\r\n};\r\n\r\n// Design System Tokens\r\nexport const spacing = {\r\n '20': 2,\r\n '40': 4,\r\n '60': 6,\r\n '70': 7,\r\n '80': 8,\r\n '100': 10,\r\n '120': 12,\r\n '150': 15,\r\n '160': 16,\r\n '170': 17,\r\n '180': 18,\r\n '190': 19,\r\n '200': 20,\r\n '220': 22,\r\n '240': 24,\r\n '260': 26,\r\n '270': 27,\r\n '280': 28,\r\n '320': 32,\r\n '360': 36,\r\n '400': 40,\r\n '480': 48,\r\n '520': 52,\r\n '560': 56,\r\n '580': 58,\r\n '600': 60,\r\n '640': 64,\r\n '680': 68,\r\n '720': 72,\r\n '760': 76,\r\n '800': 80,\r\n '860': 86,\r\n '900': 90,\r\n '960': 96,\r\n '1000': 100,\r\n '1020': 102,\r\n};\r\n\r\nexport const borderRadius = {\r\n '20': 2,\r\n '40': 4,\r\n '60': 6,\r\n '80': 8,\r\n '120': 12,\r\n '160': 16,\r\n '240': 24,\r\n '320': 32,\r\n '400': 40,\r\n 'Circular': 9999,\r\n};\r\n\r\nexport const fontSize = {\r\n '190': 19,\r\n '200': 20,\r\n '220': 22,\r\n};\r\n\r\nexport const fontWeight = {\r\n 'Regular': 400,\r\n 'Medium': 500,\r\n 'Semibold': 600,\r\n};\r\n\r\nexport const lineHeight = {\r\n 'lineHeightBase210': 21,\r\n};\r\n\r\nexport const strokeWidth = {\r\n '10': 1,\r\n '15': 1.5,\r\n '20': 2,\r\n '30': 3,\r\n '40': 4,\r\n '60': 6,\r\n '05': 0.5,\r\n};\r\n\r\n// Shared Global Colors (Palettes: Secondary, Green, Blue, etc.)\r\nexport const sharedColors = {\r\n 'Shared_Dark_red_Shade_50': '#130204',\r\n 'Shared_Dark_red_Shade_40': '#230308',\r\n 'Shared_Dark_red_Shade_30': '#420610',\r\n 'Shared_Dark_red_Shade_20': '#590815',\r\n 'Shared_Dark_red_Shade_10': '#690a19',\r\n 'Shared_Dark_red_Primary': '#750b1c',\r\n 'Shared_Dark_red_Tint_10': '#861b2c',\r\n 'Shared_Dark_red_Tint_20': '#962f3f',\r\n 'Shared_Dark_red_Tint_30': '#ac4f5e',\r\n 'Shared_Dark_red_Tint_40': '#d69ca5',\r\n 'Shared_Dark_red_Tint_50': '#e9c7cd',\r\n 'Shared_Dark_red_Tint_60': '#f9f0f2',\r\n 'Shared_Burgundy_Shade_50': '#1a0607',\r\n 'Shared_Burgundy_Shade_40': '#310b0d',\r\n 'Shared_Burgundy_Shade_30': '#5c1519',\r\n 'Shared_Burgundy_Shade_20': '#7d1d21',\r\n 'Shared_Burgundy_Shade_10': '#942228',\r\n 'Shared_Burgundy_Primary': '#a4262c',\r\n 'Shared_Burgundy_Tint_10': '#af393e',\r\n 'Shared_Burgundy_Tint_20': '#ba4d52',\r\n 'Shared_Burgundy_Tint_30': '#c86c70',\r\n 'Shared_Burgundy_Tint_40': '#e4afb2',\r\n 'Shared_Burgundy_Tint_50': '#f0d3d4',\r\n 'Shared_Burgundy_Tint_60': '#fbf4f4',\r\n 'Shared_Cranberry_Shade_50': '#200205',\r\n 'Shared_Cranberry_Shade_40': '#3b0509',\r\n 'Shared_Cranberry_Shade_30': '#6e0811',\r\n 'Shared_Cranberry_Shade_20': '#960b18',\r\n 'Shared_Cranberry_Shade_10': '#b10e1c',\r\n 'Shared_Cranberry_Primary': '#c50f1f',\r\n 'Shared_Cranberry_Tint_10': '#cc2635',\r\n 'Shared_Cranberry_Tint_20': '#d33f4c',\r\n 'Shared_Cranberry_Tint_30': '#dc626d',\r\n 'Shared_Cranberry_Tint_40': '#eeacb2',\r\n 'Shared_Cranberry_Tint_50': '#f6d1d5',\r\n 'Shared_Cranberry_Tint_60': '#fdf3f4',\r\n 'Shared_Red_Shade_50': '#210809',\r\n 'Shared_Red_Shade_40': '#3f1011',\r\n 'Shared_Red_Shade_30': '#751d1f',\r\n 'Shared_Red_Shade_20': '#9f282b',\r\n 'Shared_Red_Shade_10': '#bc2f32',\r\n 'Shared_Red_Primary': '#d13438',\r\n 'Shared_Red_Tint_10': '#d7494c',\r\n 'Shared_Red_Tint_20': '#dc5e62',\r\n 'Shared_Red_Tint_30': '#e37d80',\r\n 'Shared_Red_Tint_40': '#f1bbbc',\r\n 'Shared_Red_Tint_50': '#f8dadb',\r\n 'Shared_Red_Tint_60': '#fdf6f6',\r\n 'Shared_Dark_orange_Shade_50': '#230900',\r\n 'Shared_Dark_orange_Shade_40': '#411200',\r\n 'Shared_Dark_orange_Shade_30': '#7a2101',\r\n 'Shared_Dark_orange_Shade_20': '#a62d01',\r\n 'Shared_Dark_orange_Shade_10': '#c43501',\r\n 'Shared_Dark_orange_Primary': '#da3b01',\r\n 'Shared_Dark_orange_Tint_10': '#de501c',\r\n 'Shared_Dark_orange_Tint_20': '#e36537',\r\n 'Shared_Dark_orange_Tint_30': '#e9835e',\r\n 'Shared_Dark_orange_Tint_40': '#f4bfab',\r\n 'Shared_Dark_orange_Tint_50': '#f9dcd1',\r\n 'Shared_Dark_orange_Tint_60': '#fdf6f3',\r\n 'Shared_Bronze_Shade_50': '#1b0a01',\r\n 'Shared_Bronze_Shade_40': '#321303',\r\n 'Shared_Bronze_Shade_30': '#5e2405',\r\n 'Shared_Bronze_Shade_20': '#7f3107',\r\n 'Shared_Bronze_Shade_10': '#963a08',\r\n 'Shared_Bronze_Primary': '#a74109',\r\n 'Shared_Bronze_Tint_10': '#b2521e',\r\n 'Shared_Bronze_Tint_20': '#bc6535',\r\n 'Shared_Bronze_Tint_30': '#ca8057',\r\n 'Shared_Bronze_Tint_40': '#e5bba4',\r\n 'Shared_Bronze_Tint_50': '#f1d9cc',\r\n 'Shared_Bronze_Tint_60': '#fbf5f2',\r\n 'Shared_Pumpkin_Shade_50': '#200d03',\r\n 'Shared_Pumpkin_Shade_40': '#3d1805',\r\n 'Shared_Pumpkin_Shade_30': '#712d09',\r\n 'Shared_Pumpkin_Shade_20': '#9a3d0c',\r\n 'Shared_Pumpkin_Shade_10': '#b6480e',\r\n 'Shared_Pumpkin_Primary': '#ca5010',\r\n 'Shared_Pumpkin_Tint_10': '#d06228',\r\n 'Shared_Pumpkin_Tint_20': '#d77440',\r\n 'Shared_Pumpkin_Tint_30': '#df8e64',\r\n 'Shared_Pumpkin_Tint_40': '#efc4ad',\r\n 'Shared_Pumpkin_Tint_50': '#f7dfd2',\r\n 'Shared_Pumpkin_Tint_60': '#fdf7f4',\r\n 'Shared_Orange_Shade_50': '#271002',\r\n 'Shared_Orange_Shade_40': '#4a1e04',\r\n 'Shared_Orange_Shade_30': '#8a3707',\r\n 'Shared_Orange_Shade_20': '#bc4b09',\r\n 'Shared_Orange_Shade_10': '#de590b',\r\n 'Shared_Orange_Primary': '#f7630c',\r\n 'Shared_Orange_Tint_10': '#f87528',\r\n 'Shared_Orange_Tint_20': '#f98845',\r\n 'Shared_Orange_Tint_30': '#faa06b',\r\n 'Shared_Orange_Tint_40': '#fdcfb4',\r\n 'Shared_Orange_Tint_50': '#fee5d7',\r\n 'Shared_Orange_Tint_60': '#fff9f5',\r\n 'Shared_Peach_Shade_50': '#291600',\r\n 'Shared_Peach_Shade_40': '#4d2a00',\r\n 'Shared_Peach_Shade_30': '#8f4e00',\r\n 'Shared_Peach_Shade_20': '#c26a00',\r\n 'Shared_Peach_Shade_10': '#e67e00',\r\n 'Shared_Peach_Primary': '#ff8c00',\r\n 'Shared_Peach_Tint_10': '#ff9a1f',\r\n 'Shared_Peach_Tint_20': '#ffa83d',\r\n 'Shared_Peach_Tint_30': '#ffba66',\r\n 'Shared_Peach_Tint_40': '#ffddb3',\r\n 'Shared_Peach_Tint_50': '#ffedd6',\r\n 'Shared_Peach_Tint_60': '#fffaf5',\r\n 'Shared_Marigold_Shade_50': '#251a00',\r\n 'Shared_Marigold_Shade_40': '#463100',\r\n 'Shared_Marigold_Shade_30': '#835b00',\r\n 'Shared_Marigold_Shade_20': '#b27c00',\r\n 'Shared_Marigold_Shade_10': '#d39300',\r\n 'Shared_Marigold_Primary': '#eaa300',\r\n 'Shared_Marigold_Tint_10': '#edad1c',\r\n 'Shared_Marigold_Tint_20': '#efb839',\r\n 'Shared_Marigold_Tint_30': '#f2c661',\r\n 'Shared_Marigold_Tint_40': '#f9e2ae',\r\n 'Shared_Marigold_Tint_50': '#fcefd3',\r\n 'Shared_Marigold_Tint_60': '#fefbf4',\r\n 'Shared_Yellow_Shade_50': '#282400',\r\n 'Shared_Yellow_Shade_40': '#4c4400',\r\n 'Shared_Yellow_Shade_30': '#817400',\r\n 'Shared_Yellow_Shade_20': '#c0ad00',\r\n 'Shared_Yellow_Shade_10': '#e4cc00',\r\n 'Shared_Yellow_Primary': '#fde300',\r\n 'Shared_Yellow_Tint_10': '#fde61e',\r\n 'Shared_Yellow_Tint_20': '#fdea3d',\r\n 'Shared_Yellow_Tint_30': '#feee66',\r\n 'Shared_Yellow_Tint_40': '#fef7b2',\r\n 'Shared_Yellow_Tint_50': '#fffad6',\r\n 'Shared_Yellow_Tint_60': '#fffef5',\r\n 'Shared_Gold_Shade_50': '#1f1900',\r\n 'Shared_Gold_Shade_40': '#3a2f00',\r\n 'Shared_Gold_Shade_30': '#6c5700',\r\n 'Shared_Gold_Shade_20': '#937700',\r\n 'Shared_Gold_Shade_10': '#ae8c00',\r\n 'Shared_Gold_Primary': '#c19c00',\r\n 'Shared_Gold_Tint_10': '#c8a718',\r\n 'Shared_Gold_Tint_20': '#d0b232',\r\n 'Shared_Gold_Tint_30': '#dac157',\r\n 'Shared_Gold_Tint_40': '#ecdfa5',\r\n 'Shared_Gold_Tint_50': '#f5eece',\r\n 'Shared_Gold_Tint_60': '#fdfbf2',\r\n 'Shared_Brass_Shade_50': '#181202',\r\n 'Shared_Brass_Shade_40': '#2e2103',\r\n 'Shared_Brass_Shade_30': '#553e06',\r\n 'Shared_Brass_Shade_20': '#745408',\r\n 'Shared_Brass_Shade_10': '#89640a',\r\n 'Shared_Brass_Primary': '#986f0b',\r\n 'Shared_Brass_Tint_10': '#a47d1e',\r\n 'Shared_Brass_Tint_20': '#b18c34',\r\n 'Shared_Brass_Tint_30': '#c1a256',\r\n 'Shared_Brass_Tint_40': '#e0cea2',\r\n 'Shared_Brass_Tint_50': '#efe4cb',\r\n 'Shared_Brass_Tint_60': '#fbf8f2',\r\n 'Shared_Brown_Shade_50': '#170e07',\r\n 'Shared_Brown_Shade_40': '#2b1a0e',\r\n 'Shared_Brown_Shade_30': '#50301a',\r\n 'Shared_Brown_Shade_20': '#6c4123',\r\n 'Shared_Brown_Shade_10': '#804d29',\r\n 'Shared_Brown_Primary': '#8e562e',\r\n 'Shared_Brown_Tint_10': '#9c663f',\r\n 'Shared_Brown_Tint_20': '#a97652',\r\n 'Shared_Brown_Tint_30': '#bb8f6f',\r\n 'Shared_Brown_Tint_40': '#ddc3b0',\r\n 'Shared_Brown_Tint_50': '#edded3',\r\n 'Shared_Brown_Tint_60': '#faf7f4',\r\n 'Shared_Dark_brown_Shade_50': '#0c0704',\r\n 'Shared_Dark_brown_Shade_40': '#170c08',\r\n 'Shared_Dark_brown_Shade_30': '#2b1710',\r\n 'Shared_Dark_brown_Shade_20': '#3a1f15',\r\n 'Shared_Dark_brown_Shade_10': '#452519',\r\n 'Shared_Dark_brown_Primary': '#4d291c',\r\n 'Shared_Dark_brown_Tint_10': '#623a2b',\r\n 'Shared_Dark_brown_Tint_20': '#784d3e',\r\n 'Shared_Dark_brown_Tint_30': '#946b5c',\r\n 'Shared_Dark_brown_Tint_40': '#caada3',\r\n 'Shared_Dark_brown_Tint_50': '#e3d2cb',\r\n 'Shared_Dark_brown_Tint_60': '#f8f3f2',\r\n 'Shared_Lime_Shade_50': '#121b06',\r\n 'Shared_Lime_Shade_40': '#23330b',\r\n 'Shared_Lime_Shade_30': '#405f14',\r\n 'Shared_Lime_Shade_20': '#57811b',\r\n 'Shared_Lime_Shade_10': '#689920',\r\n 'Shared_Lime_Primary': '#73aa24',\r\n 'Shared_Lime_Tint_10': '#81b437',\r\n 'Shared_Lime_Tint_20': '#90be4c',\r\n 'Shared_Lime_Tint_30': '#a4cc6c',\r\n 'Shared_Lime_Tint_40': '#cfe5af',\r\n 'Shared_Lime_Tint_50': '#e5f1d3',\r\n 'Shared_Lime_Tint_60': '#f8fcf4',\r\n 'Shared_Forest_Shade_50': '#0c1501',\r\n 'Shared_Forest_Shade_40': '#162702',\r\n 'Shared_Forest_Shade_30': '#294903',\r\n 'Shared_Forest_Shade_20': '#376304',\r\n 'Shared_Forest_Shade_10': '#427505',\r\n 'Shared_Forest_Primary': '#498205',\r\n 'Shared_Forest_Tint_10': '#599116',\r\n 'Shared_Forest_Tint_20': '#6ba02b',\r\n 'Shared_Forest_Tint_30': '#85b44c',\r\n 'Shared_Forest_Tint_40': '#bdd99b',\r\n 'Shared_Forest_Tint_50': '#dbebc7',\r\n 'Shared_Forest_Tint_60': '#f6faf0',\r\n 'Shared_Seafoam_Shade_50': '#002111',\r\n 'Shared_Seafoam_Shade_40': '#003d20',\r\n 'Shared_Seafoam_Shade_30': '#00723b',\r\n 'Shared_Seafoam_Shade_20': '#009b51',\r\n 'Shared_Seafoam_Shade_10': '#00b85f',\r\n 'Shared_Seafoam_Primary': '#00cc6a',\r\n 'Shared_Seafoam_Tint_10': '#19d279',\r\n 'Shared_Seafoam_Tint_20': '#34d889',\r\n 'Shared_Seafoam_Tint_30': '#5ae0a0',\r\n 'Shared_Seafoam_Tint_40': '#a8f0cd',\r\n 'Shared_Seafoam_Tint_50': '#cff7e4',\r\n 'Shared_Seafoam_Tint_60': '#f3fdf8',\r\n 'Shared_Light_green_Shade_50': '#031a02',\r\n 'Shared_Light_green_Shade_40': '#063004',\r\n 'Shared_Light_green_Shade_30': '#0b5a08',\r\n 'Shared_Light_green_Shade_20': '#0e7a0b',\r\n 'Shared_Light_green_Shade_10': '#11910d',\r\n 'Shared_Light_green_Primary': '#13a10e',\r\n 'Shared_Light_green_Tint_10': '#27ac22',\r\n 'Shared_Light_green_Tint_20': '#3db838',\r\n 'Shared_Light_green_Tint_30': '#5ec75a',\r\n 'Shared_Light_green_Tint_40': '#a7e3a5',\r\n 'Shared_Light_green_Tint_50': '#cef0cd',\r\n 'Shared_Light_green_Tint_60': '#f2fbf2',\r\n 'Shared_Green_Shade_50': '#031403',\r\n 'Shared_Green_Shade_40': '#052505',\r\n 'Shared_Green_Shade_30': '#094509',\r\n 'Shared_Green_Shade_20': '#0c5e0c',\r\n 'Shared_Green_Shade_10': '#0e700e',\r\n 'Shared_Green_Primary': '#107c10',\r\n 'Shared_Green_Tint_10': '#218c21',\r\n 'Shared_Green_Tint_20': '#359b35',\r\n 'Shared_Green_Tint_30': '#54b054',\r\n 'Shared_Green_Tint_40': '#9fd89f',\r\n 'Shared_Green_Tint_50': '#c9eac9',\r\n 'Shared_Green_Tint_60': '#f1faf1',\r\n 'Shared_Dark_green_Shade_50': '#021102',\r\n 'Shared_Dark_green_Shade_40': '#032003',\r\n 'Shared_Dark_green_Shade_30': '#063b06',\r\n 'Shared_Dark_green_Shade_20': '#085108',\r\n 'Shared_Dark_green_Shade_10': '#0a5f0a',\r\n 'Shared_Dark_green_Primary': '#0b6a0b',\r\n 'Shared_Dark_green_Tint_10': '#1a7c1a',\r\n 'Shared_Dark_green_Tint_20': '#2d8e2d',\r\n 'Shared_Dark_green_Tint_30': '#4da64d',\r\n 'Shared_Dark_green_Tint_40': '#9ad29a',\r\n 'Shared_Dark_green_Tint_50': '#c6e7c6',\r\n 'Shared_Dark_green_Tint_60': '#f0f9f0',\r\n 'Shared_Light_teal_Shade_50': '#001d1f',\r\n 'Shared_Light_teal_Shade_40': '#00373a',\r\n 'Shared_Light_teal_Shade_30': '#00666d',\r\n 'Shared_Light_teal_Shade_20': '#008b94',\r\n 'Shared_Light_teal_Shade_10': '#00a5af',\r\n 'Shared_Light_teal_Primary': '#00b7c3',\r\n 'Shared_Light_teal_Tint_10': '#18bfca',\r\n 'Shared_Light_teal_Tint_20': '#32c8d1',\r\n 'Shared_Light_teal_Tint_30': '#58d3db',\r\n 'Shared_Light_teal_Tint_40': '#a6e9ed',\r\n 'Shared_Light_teal_Tint_50': '#cef3f5',\r\n 'Shared_Light_teal_Tint_60': '#f2fcfd',\r\n 'Shared_Teal_Shade_50': '#001516',\r\n 'Shared_Teal_Shade_40': '#012728',\r\n 'Shared_Teal_Shade_30': '#02494c',\r\n 'Shared_Teal_Shade_20': '#026467',\r\n 'Shared_Teal_Shade_10': '#037679',\r\n 'Shared_Teal_Primary': '#038387',\r\n 'Shared_Teal_Tint_10': '#159195',\r\n 'Shared_Teal_Tint_20': '#2aa0a4',\r\n 'Shared_Teal_Tint_30': '#4cb4b7',\r\n 'Shared_Teal_Tint_40': '#9bd9db',\r\n 'Shared_Teal_Tint_50': '#c7ebec',\r\n 'Shared_Teal_Tint_60': '#f0fafa',\r\n 'Shared_Dark_teal_Shade_50': '#001010',\r\n 'Shared_Dark_teal_Shade_40': '#001f1f',\r\n 'Shared_Dark_teal_Shade_30': '#003939',\r\n 'Shared_Dark_teal_Shade_20': '#004e4e',\r\n 'Shared_Dark_teal_Shade_10': '#005c5c',\r\n 'Shared_Dark_teal_Primary': '#006666',\r\n 'Shared_Dark_teal_Tint_10': '#0e7878',\r\n 'Shared_Dark_teal_Tint_20': '#218b8b',\r\n 'Shared_Dark_teal_Tint_30': '#41a3a3',\r\n 'Shared_Dark_teal_Tint_40': '#92d1d1',\r\n 'Shared_Dark_teal_Tint_50': '#c2e7e7',\r\n 'Shared_Dark_teal_Tint_60': '#eff9f9',\r\n 'Shared_Cyan_Shade_50': '#00181e',\r\n 'Shared_Cyan_Shade_40': '#002e38',\r\n 'Shared_Cyan_Shade_30': '#005669',\r\n 'Shared_Cyan_Shade_20': '#00748f',\r\n 'Shared_Cyan_Shade_10': '#008aa9',\r\n 'Shared_Cyan_Primary': '#0099bc',\r\n 'Shared_Cyan_Tint_10': '#18a4c4',\r\n 'Shared_Cyan_Tint_20': '#31afcc',\r\n 'Shared_Cyan_Tint_30': '#56bfd7',\r\n 'Shared_Cyan_Tint_40': '#a4deeb',\r\n 'Shared_Cyan_Tint_50': '#cdedf4',\r\n 'Shared_Cyan_Tint_60': '#f2fafc',\r\n 'Shared_Steel_Shade_50': '#000f12',\r\n 'Shared_Steel_Shade_40': '#001b22',\r\n 'Shared_Steel_Shade_30': '#00333f',\r\n 'Shared_Steel_Shade_20': '#004555',\r\n 'Shared_Steel_Shade_10': '#005265',\r\n 'Shared_Steel_Primary': '#005b70',\r\n 'Shared_Steel_Tint_10': '#0f6c81',\r\n 'Shared_Steel_Tint_20': '#237d92',\r\n 'Shared_Steel_Tint_30': '#4496a9',\r\n 'Shared_Steel_Tint_40': '#94c8d4',\r\n 'Shared_Steel_Tint_50': '#c3e1e8',\r\n 'Shared_Steel_Tint_60': '#eff7f9',\r\n 'Shared_Light_blue_Shade_50': '#091823',\r\n 'Shared_Light_blue_Shade_40': '#112d42',\r\n 'Shared_Light_blue_Shade_30': '#20547c',\r\n 'Shared_Light_blue_Shade_20': '#2c72a8',\r\n 'Shared_Light_blue_Shade_10': '#3487c7',\r\n 'Shared_Light_blue_Primary': '#3a96dd',\r\n 'Shared_Light_blue_Tint_10': '#4fa1e1',\r\n 'Shared_Light_blue_Tint_20': '#65ade5',\r\n 'Shared_Light_blue_Tint_30': '#83bdeb',\r\n 'Shared_Light_blue_Tint_40': '#bfddf5',\r\n 'Shared_Light_blue_Tint_50': '#dcedfa',\r\n 'Shared_Light_blue_Tint_60': '#f6fafe',\r\n 'Shared_Blue_Shade_50': '#001322',\r\n 'Shared_Blue_Shade_40': '#002440',\r\n 'Shared_Blue_Shade_30': '#004377',\r\n 'Shared_Blue_Shade_20': '#005ba1',\r\n 'Shared_Blue_Shade_10': '#006cbf',\r\n 'Shared_Blue_Primary': '#0078d4',\r\n 'Shared_Blue_Tint_10': '#1a86d9',\r\n 'Shared_Blue_Tint_20': '#3595de',\r\n 'Shared_Blue_Tint_30': '#5caae5',\r\n 'Shared_Blue_Tint_40': '#a9d3f2',\r\n 'Shared_Blue_Tint_50': '#d0e7f8',\r\n 'Shared_Blue_Tint_60': '#f3f9fd',\r\n 'Shared_Royal_blue_Shade_50': '#000c16',\r\n 'Shared_Royal_blue_Shade_40': '#00172a',\r\n 'Shared_Royal_blue_Shade_30': '#002c4e',\r\n 'Shared_Royal_blue_Shade_20': '#003b6a',\r\n 'Shared_Royal_blue_Shade_10': '#00467e',\r\n 'Shared_Royal_blue_Primary': '#004e8c',\r\n 'Shared_Royal_blue_Tint_10': '#125e9a',\r\n 'Shared_Royal_blue_Tint_20': '#286fa8',\r\n 'Shared_Royal_blue_Tint_30': '#4a89ba',\r\n 'Shared_Royal_blue_Tint_40': '#9abfdc',\r\n 'Shared_Royal_blue_Tint_50': '#c7dced',\r\n 'Shared_Royal_blue_Tint_60': '#f0f6fa',\r\n 'Shared_Dark_blue_Shade_50': '#000910',\r\n 'Shared_Dark_blue_Shade_40': '#00111f',\r\n 'Shared_Dark_blue_Shade_30': '#002039',\r\n 'Shared_Dark_blue_Shade_20': '#002b4e',\r\n 'Shared_Dark_blue_Shade_10': '#00335c',\r\n 'Shared_Dark_blue_Primary': '#003966',\r\n 'Shared_Dark_blue_Tint_10': '#0e4a78',\r\n 'Shared_Dark_blue_Tint_20': '#215c8b',\r\n 'Shared_Dark_blue_Tint_30': '#4178a3',\r\n 'Shared_Dark_blue_Tint_40': '#92b5d1',\r\n 'Shared_Dark_blue_Tint_50': '#c2d6e7',\r\n 'Shared_Dark_blue_Tint_60': '#eff4f9',\r\n 'Shared_Cornflower_Shade_50': '#0d1126',\r\n 'Shared_Cornflower_Shade_40': '#182047',\r\n 'Shared_Cornflower_Shade_30': '#2c3c85',\r\n 'Shared_Cornflower_Shade_20': '#3c51b4',\r\n 'Shared_Cornflower_Shade_10': '#4760d5',\r\n 'Shared_Cornflower_Primary': '#4f6bed',\r\n 'Shared_Cornflower_Tint_10': '#637cef',\r\n 'Shared_Cornflower_Tint_20': '#778df1',\r\n 'Shared_Cornflower_Tint_30': '#93a4f4',\r\n 'Shared_Cornflower_Tint_40': '#c8d1fa',\r\n 'Shared_Cornflower_Tint_50': '#e1e6fc',\r\n 'Shared_Cornflower_Tint_60': '#f7f9fe',\r\n 'Shared_Navy_Shade_50': '#00061d',\r\n 'Shared_Navy_Shade_40': '#000c36',\r\n 'Shared_Navy_Shade_30': '#001665',\r\n 'Shared_Navy_Shade_20': '#001e89',\r\n 'Shared_Navy_Shade_10': '#0023a2',\r\n 'Shared_Navy_Primary': '#0027b4',\r\n 'Shared_Navy_Tint_10': '#173bbd',\r\n 'Shared_Navy_Tint_20': '#3050c6',\r\n 'Shared_Navy_Tint_30': '#546fd2',\r\n 'Shared_Navy_Tint_40': '#a3b2e8',\r\n 'Shared_Navy_Tint_50': '#ccd5f3',\r\n 'Shared_Navy_Tint_60': '#f2f4fc',\r\n 'Shared_Lavender_Shade_50': '#120f25',\r\n 'Shared_Lavender_Shade_40': '#221d46',\r\n 'Shared_Lavender_Shade_30': '#3f3682',\r\n 'Shared_Lavender_Shade_20': '#5649b0',\r\n 'Shared_Lavender_Shade_10': '#6656d1',\r\n 'Shared_Lavender_Primary': '#7160e8',\r\n 'Shared_Lavender_Tint_10': '#8172eb',\r\n 'Shared_Lavender_Tint_20': '#9184ee',\r\n 'Shared_Lavender_Tint_30': '#a79cf1',\r\n 'Shared_Lavender_Tint_40': '#d2ccf8',\r\n 'Shared_Lavender_Tint_50': '#e7e4fb',\r\n 'Shared_Lavender_Tint_60': '#f9f8fe',\r\n 'Shared_Purple_Shade_50': '#0f0717',\r\n 'Shared_Purple_Shade_40': '#1c0e2b',\r\n 'Shared_Purple_Shade_30': '#341a51',\r\n 'Shared_Purple_Shade_20': '#46236e',\r\n 'Shared_Purple_Shade_10': '#532982',\r\n 'Shared_Purple_Primary': '#5c2e91',\r\n 'Shared_Purple_Tint_10': '#6b3f9e',\r\n 'Shared_Purple_Tint_20': '#7c52ab',\r\n 'Shared_Purple_Tint_30': '#9470bd',\r\n 'Shared_Purple_Tint_40': '#c6b1de',\r\n 'Shared_Purple_Tint_50': '#e0d3ed',\r\n 'Shared_Purple_Tint_60': '#f7f4fb',\r\n 'Shared_Dark_purple_Shade_50': '#0a0411',\r\n 'Shared_Dark_purple_Shade_40': '#130820',\r\n 'Shared_Dark_purple_Shade_30': '#240f3c',\r\n 'Shared_Dark_purple_Shade_20': '#311552',\r\n 'Shared_Dark_purple_Shade_10': '#3a1861',\r\n 'Shared_Dark_purple_Primary': '#401b6c',\r\n 'Shared_Dark_purple_Tint_10': '#512b7e',\r\n 'Shared_Dark_purple_Tint_20': '#633e8f',\r\n 'Shared_Dark_purple_Tint_30': '#7e5ca7',\r\n 'Shared_Dark_purple_Tint_40': '#b9a3d3',\r\n 'Shared_Dark_purple_Tint_50': '#d8cce7',\r\n 'Shared_Dark_purple_Tint_60': '#f5f2f9',\r\n 'Shared_Orchid_Shade_50': '#16101d',\r\n 'Shared_Orchid_Shade_40': '#281e37',\r\n 'Shared_Orchid_Shade_30': '#4c3867',\r\n 'Shared_Orchid_Shade_20': '#674c8c',\r\n 'Shared_Orchid_Shade_10': '#795aa6',\r\n 'Shared_Orchid_Primary': '#8764b8',\r\n 'Shared_Orchid_Tint_10': '#9373c0',\r\n 'Shared_Orchid_Tint_20': '#a083c9',\r\n 'Shared_Orchid_Tint_30': '#b29ad4',\r\n 'Shared_Orchid_Tint_40': '#d7caea',\r\n 'Shared_Orchid_Tint_50': '#e9e2f4',\r\n 'Shared_Orchid_Tint_60': '#f9f8fc',\r\n 'Shared_Grape_Shade_50': '#160418',\r\n 'Shared_Grape_Shade_40': '#29072e',\r\n 'Shared_Grape_Shade_30': '#4c0d55',\r\n 'Shared_Grape_Shade_20': '#671174',\r\n 'Shared_Grape_Shade_10': '#7a1589',\r\n 'Shared_Grape_Primary': '#881798',\r\n 'Shared_Grape_Tint_10': '#952aa4',\r\n 'Shared_Grape_Tint_20': '#a33fb1',\r\n 'Shared_Grape_Tint_30': '#b55fc1',\r\n 'Shared_Grape_Tint_40': '#d9a7e0',\r\n 'Shared_Grape_Tint_50': '#eaceef',\r\n 'Shared_Grape_Tint_60': '#faf2fb',\r\n 'Shared_Berry_Shade_50': '#1f091d',\r\n 'Shared_Berry_Shade_40': '#3a1136',\r\n 'Shared_Berry_Shade_30': '#6d2064',\r\n 'Shared_Berry_Shade_20': '#932b88',\r\n 'Shared_Berry_Shade_10': '#af33a1',\r\n 'Shared_Berry_Primary': '#c239b3',\r\n 'Shared_Berry_Tint_10': '#c94cbc',\r\n 'Shared_Berry_Tint_20': '#d161c4',\r\n 'Shared_Berry_Tint_30': '#da7ed0',\r\n 'Shared_Berry_Tint_40': '#edbbe7',\r\n 'Shared_Berry_Tint_50': '#f5daf2',\r\n 'Shared_Berry_Tint_60': '#fdf5fc',\r\n 'Shared_Lilac_Shade_50': '#1c0b1f',\r\n 'Shared_Lilac_Shade_40': '#35153a',\r\n 'Shared_Lilac_Shade_30': '#63276d',\r\n 'Shared_Lilac_Shade_20': '#863593',\r\n 'Shared_Lilac_Shade_10': '#9f3faf',\r\n 'Shared_Lilac_Primary': '#b146c2',\r\n 'Shared_Lilac_Tint_10': '#ba58c9',\r\n 'Shared_Lilac_Tint_20': '#c36bd1',\r\n 'Shared_Lilac_Tint_30': '#cf87da',\r\n 'Shared_Lilac_Tint_40': '#e6bfed',\r\n 'Shared_Lilac_Tint_50': '#f2dcf5',\r\n 'Shared_Lilac_Tint_60': '#fcf6fd',\r\n 'Shared_Pink_Shade_50': '#24091b',\r\n 'Shared_Pink_Shade_40': '#441232',\r\n 'Shared_Pink_Shade_30': '#80215d',\r\n 'Shared_Pink_Shade_20': '#ad2d7e',\r\n 'Shared_Pink_Shade_10': '#cd3595',\r\n 'Shared_Pink_Primary': '#e43ba6',\r\n 'Shared_Pink_Tint_10': '#e750b0',\r\n 'Shared_Pink_Tint_20': '#ea66ba',\r\n 'Shared_Pink_Tint_30': '#ef85c8',\r\n 'Shared_Pink_Tint_40': '#f7c0e3',\r\n 'Shared_Pink_Tint_50': '#fbddf0',\r\n 'Shared_Pink_Tint_60': '#fef6fb',\r\n 'Shared_Hot_pink_Shade_50': '#240016',\r\n 'Shared_Hot_pink_Shade_40': '#44002a',\r\n 'Shared_Hot_pink_Shade_30': '#7f004e',\r\n 'Shared_Hot_pink_Shade_20': '#ad006a',\r\n 'Shared_Hot_pink_Shade_10': '#cc007e',\r\n 'Shared_Hot_pink_Primary': '#e3008c',\r\n 'Shared_Hot_pink_Tint_10': '#e61c99',\r\n 'Shared_Hot_pink_Tint_20': '#ea38a6',\r\n 'Shared_Hot_pink_Tint_30': '#ee5fb7',\r\n 'Shared_Hot_pink_Tint_40': '#f7adda',\r\n 'Shared_Hot_pink_Tint_50': '#fbd2eb',\r\n 'Shared_Hot_pink_Tint_60': '#fef4fa',\r\n 'Shared_Magenta_Shade_50': '#1f0013',\r\n 'Shared_Magenta_Shade_40': '#390024',\r\n 'Shared_Magenta_Shade_30': '#6b0043',\r\n 'Shared_Magenta_Shade_20': '#91005a',\r\n 'Shared_Magenta_Shade_10': '#ac006b',\r\n 'Shared_Magenta_Primary': '#bf0077',\r\n 'Shared_Magenta_Tint_10': '#c71885',\r\n 'Shared_Magenta_Tint_20': '#ce3293',\r\n 'Shared_Magenta_Tint_30': '#d957a8',\r\n 'Shared_Magenta_Tint_40': '#eca5d1',\r\n 'Shared_Magenta_Tint_50': '#f5cee6',\r\n 'Shared_Magenta_Tint_60': '#fcf2f9',\r\n 'Shared_Plum_Shade_50': '#13000c',\r\n 'Shared_Plum_Shade_40': '#240017',\r\n 'Shared_Plum_Shade_30': '#43002b',\r\n 'Shared_Plum_Shade_20': '#5a003b',\r\n 'Shared_Plum_Shade_10': '#6b0045',\r\n 'Shared_Plum_Primary': '#77004d',\r\n 'Shared_Plum_Tint_10': '#87105d',\r\n 'Shared_Plum_Tint_20': '#98246f',\r\n 'Shared_Plum_Tint_30': '#ad4589',\r\n 'Shared_Plum_Tint_40': '#d696c0',\r\n 'Shared_Plum_Tint_50': '#e9c4dc',\r\n 'Shared_Plum_Tint_60': '#faf0f6',\r\n 'Shared_Beige_Shade_50': '#141313',\r\n 'Shared_Beige_Shade_40': '#252323',\r\n 'Shared_Beige_Shade_30': '#444241',\r\n 'Shared_Beige_Shade_20': '#5d5958',\r\n 'Shared_Beige_Shade_10': '#6e6968',\r\n 'Shared_Beige_Primary': '#7a7574',\r\n 'Shared_Beige_Tint_10': '#8a8584',\r\n 'Shared_Beige_Tint_20': '#9a9594',\r\n 'Shared_Beige_Tint_30': '#afabaa',\r\n 'Shared_Beige_Tint_40': '#d7d4d4',\r\n 'Shared_Beige_Tint_50': '#eae8e8',\r\n 'Shared_Beige_Tint_60': '#faf9f9',\r\n 'Shared_Mink_Shade_50': '#0f0e0e',\r\n 'Shared_Mink_Shade_40': '#1c1b1a',\r\n 'Shared_Mink_Shade_30': '#343231',\r\n 'Shared_Mink_Shade_20': '#474443',\r\n 'Shared_Mink_Shade_10': '#54514f',\r\n 'Shared_Mink_Primary': '#5d5a58',\r\n 'Shared_Mink_Tint_10': '#706d6b',\r\n 'Shared_Mink_Tint_20': '#84817e',\r\n 'Shared_Mink_Tint_30': '#9e9b99',\r\n 'Shared_Mink_Tint_40': '#cecccb',\r\n 'Shared_Mink_Tint_50': '#e5e4e3',\r\n 'Shared_Mink_Tint_60': '#f8f8f8',\r\n 'Shared_Silver_Shade_50': '#151818',\r\n 'Shared_Silver_Shade_40': '#282d2e',\r\n 'Shared_Silver_Shade_30': '#4a5356',\r\n 'Shared_Silver_Shade_20': '#657174',\r\n 'Shared_Silver_Shade_10': '#78868a',\r\n 'Shared_Silver_Primary': '#859599',\r\n 'Shared_Silver_Tint_10': '#92a1a5',\r\n 'Shared_Silver_Tint_20': '#a0aeb1',\r\n 'Shared_Silver_Tint_30': '#b3bfc2',\r\n 'Shared_Silver_Tint_40': '#d8dfe0',\r\n 'Shared_Silver_Tint_50': '#eaeeef',\r\n 'Shared_Silver_Tint_60': '#fafbfb',\r\n 'Shared_Platinum_Shade_50': '#111314',\r\n 'Shared_Platinum_Shade_40': '#1f2426',\r\n 'Shared_Platinum_Shade_30': '#3b4447',\r\n 'Shared_Platinum_Shade_20': '#505c60',\r\n 'Shared_Platinum_Shade_10': '#5f6d71',\r\n 'Shared_Platinum_Primary': '#69797e',\r\n 'Shared_Platinum_Tint_10': '#79898d',\r\n 'Shared_Platinum_Tint_20': '#89989d',\r\n 'Shared_Platinum_Tint_30': '#a0adb2',\r\n 'Shared_Platinum_Tint_40': '#cdd6d8',\r\n 'Shared_Platinum_Tint_50': '#e4e9ea',\r\n 'Shared_Platinum_Tint_60': '#f8f9fa',\r\n 'Shared_Anchor_Shade_50': '#090a0b',\r\n 'Shared_Anchor_Shade_40': '#111315',\r\n 'Shared_Anchor_Shade_30': '#202427',\r\n 'Shared_Anchor_Shade_20': '#2b3135',\r\n 'Shared_Anchor_Shade_10': '#333a3f',\r\n 'Shared_Anchor_Primary': '#394146',\r\n 'Shared_Anchor_Tint_10': '#4d565c',\r\n 'Shared_Anchor_Tint_20': '#626c72',\r\n 'Shared_Anchor_Tint_30': '#808a90',\r\n 'Shared_Anchor_Tint_40': '#bcc3c7',\r\n 'Shared_Anchor_Tint_50': '#dbdfe1',\r\n 'Shared_Anchor_Tint_60': '#f6f7f8',\r\n 'Shared_Charcoal_Shade_50': '#090909',\r\n 'Shared_Charcoal_Shade_40': '#111111',\r\n 'Shared_Charcoal_Shade_30': '#202020',\r\n 'Shared_Charcoal_Shade_20': '#2b2b2b',\r\n 'Shared_Charcoal_Shade_10': '#333333',\r\n 'Shared_Charcoal_Primary': '#393939',\r\n 'Shared_Charcoal_Tint_10': '#515151',\r\n 'Shared_Charcoal_Tint_20': '#686868',\r\n 'Shared_Charcoal_Tint_30': '#888888',\r\n 'Shared_Charcoal_Tint_40': '#c4c4c4',\r\n 'Shared_Charcoal_Tint_50': '#dfdfdf',\r\n 'Shared_Charcoal_Tint_60': '#f7f7f7',\r\n 'Shared_Charcoal_Color': '#ffffff',\r\n 'Shared_Secondary_Shade_50': '#1c280d',\r\n 'Shared_Secondary_Shade_40': '#334717',\r\n 'Shared_Secondary_Shade_30': '#496721',\r\n 'Shared_Secondary_Shade_20': '#60872b',\r\n 'Shared_Secondary_Shade_10': '#76a635',\r\n 'Shared_Secondary_Primary': '#5C9F38',\r\n 'Shared_Secondary_Tint_10': '#9fcf5e',\r\n 'Shared_Secondary_Tint_20': '#b1d87c',\r\n 'Shared_Secondary_Tint_30': '#c4e19b',\r\n 'Shared_Secondary_Tint_40': '#d6eaba',\r\n 'Shared_Secondary_Tint_50': '#e8f4d9',\r\n 'Shared_Secondary_Tint_60': '#fafdf7',\r\n 'Shared_Tertiary_Shade_50': '#002330',\r\n 'Shared_Tertiary_Shade_40': '#003f56',\r\n 'Shared_Tertiary_Shade_30': '#005a7c',\r\n 'Shared_Tertiary_Shade_20': '#0076a3',\r\n 'Shared_Tertiary_Shade_10': '#0092c9',\r\n 'Shared_Tertiary_Primary': '#00aeef',\r\n 'Shared_Tertiary_Tint_10': '#29bbf2',\r\n 'Shared_Tertiary_Tint_20': '#52c8f4',\r\n 'Shared_Tertiary_Tint_30': '#7ad5f7',\r\n 'Shared_Tertiary_Tint_40': '#a3e2f9',\r\n 'Shared_Tertiary_Tint_50': '#cceffc',\r\n 'Shared_Tertiary_Tint_60': '#f5fcfe',\r\n 'Shared_Quarternary_Shade_50': '#002426',\r\n 'Shared_Quarternary_Shade_40': '#004044',\r\n 'Shared_Quarternary_Shade_30': '#005d62',\r\n 'Shared_Quarternary_Shade_20': '#007a81',\r\n 'Shared_Quarternary_Shade_10': '#00969f',\r\n 'Shared_Quarternary_Primary': '#00b3bd',\r\n 'Shared_Quarternary_Tint_10': '#29bfc8',\r\n 'Shared_Quarternary_Tint_20': '#52cbd2',\r\n 'Shared_Quarternary_Tint_30': '#7ad7dd',\r\n 'Shared_Quarternary_Tint_40': '#a3e4e7',\r\n 'Shared_Quarternary_Tint_50': '#ccf0f2',\r\n 'Shared_Quarternary_Tint_60': '#f5fcfc',\r\n};\r\n\r\nexport const foundationColors = {\r\n 'Foundation_Danger_error': '#FD3A3A',\r\n};\r\n\r\nexport const schemeColors = {\r\n 'Scheme_Secondary': '#426900',\r\n};\r\n\r\n// Light Mode Colors\r\nexport const lightModeColors = {\r\n 'Neutral_Background_1_Rest': '#ffffff',\r\n 'Neutral_Background_1_Hover': '#f5f5f5',\r\n 'Neutral_Background_1_Pressed': '#e0e0e0',\r\n 'Neutral_Background_1_Selected': '#ebebeb',\r\n 'Neutral_Background_2_Rest': '#fafafa',\r\n 'Neutral_Background_2_Hover': '#f0f0f0',\r\n 'Neutral_Background_2_Pressed': '#dbdbdb',\r\n 'Neutral_Background_2_Selected': '#e6e6e6',\r\n 'Neutral_Background_3_Rest': '#f5f5f5',\r\n 'Neutral_Background_3_Hover': '#ebebeb',\r\n 'Neutral_Background_3_Pressed': '#d6d6d6',\r\n 'Neutral_Background_3_Selected': '#e0e0e0',\r\n 'Neutral_Background_4_Rest': '#f0f0f0',\r\n 'Neutral_Background_4_Hover': '#fafafa',\r\n 'Neutral_Background_4_Pressed': '#f5f5f5',\r\n 'Neutral_Background_4_Selected': '#ffffff',\r\n 'Neutral_Background_5_Rest': '#ebebeb',\r\n 'Neutral_Background_5_Hover': '#f5f5f5',\r\n 'Neutral_Background_5_Pressed': '#f0f0f0',\r\n 'Neutral_Background_5_Selected': '#fafafa',\r\n 'Neutral_Background_6_Rest': '#e6e6e6',\r\n 'Neutral_Background_Inverted_Rest': '#292929',\r\n 'Neutral_Background_Inverted_Disabled_Rest': 1,\r\n 'Neutral_Background_Alpha_1_Rest': '#1a1a1a80',\r\n 'Neutral_Background_Alpha_2_Rest': 8,\r\n 'Neutral_Background_Static_Rest': '#333333',\r\n 'Neutral_Background_Subtle_Rest': '#00000000',\r\n 'Neutral_Background_Subtle_Hover': '#f5f5f5',\r\n 'Neutral_Background_Subtle_Pressed': '#e0e0e0',\r\n 'Neutral_Background_Subtle_Selected': '#ebebeb',\r\n 'Neutral_Background_Subtle_Light alpha_Hover': '#1a1a1ab3',\r\n 'Neutral_Background_Subtle_Light alpha_Pressed': '#1a1a1a80',\r\n 'Neutral_Background_Subtle_Light alpha_Selected': '#00000000',\r\n 'Neutral_Background_Subtle_Inverted_Rest': '#00000000',\r\n 'Neutral_Background_Subtle_Inverted_Hover': 1,\r\n 'Neutral_Background_Subtle_Inverted_Pressed': 3,\r\n 'Neutral_Background_Subtle_Inverted_Selected': 2,\r\n 'Neutral_Background_Transparent_Rest': '#00000000',\r\n 'Neutral_Background_Transparent_Hover': '#00000000',\r\n 'Neutral_Background_Transparent_Pressed': '#00000000',\r\n 'Neutral_Background_Transparent_Selected': '#00000000',\r\n 'Neutral_Background_Disabled_Rest': '#f0f0f0',\r\n 'Neutral_Background_Stencil_1_Rest': '#e6e6e6',\r\n 'Neutral_Background_Stencil_1_Alpha_Rest': 1,\r\n 'Neutral_Background_Stencil_2_Rest': '#fafafa',\r\n 'Neutral_Background_Stencil_2_Alpha_Rest': '#1a1a1a0d',\r\n 'Neutral_Background_Overlay_Rest': 4,\r\n 'Neutral_Background_Overlay_Scrollbar_Rest': '#1a1a1a80',\r\n 'Neutral_Foreground_1_Rest': '#242424',\r\n 'Neutral_Foreground_1_Hover': '#242424',\r\n 'Neutral_Foreground_1_Pressed': '#242424',\r\n 'Neutral_Foreground_1_Selected': '#242424',\r\n 'Neutral_Foreground_2_Rest': '#424242',\r\n 'Neutral_Foreground_2_Hover': '#242424',\r\n 'Neutral_Foreground_2_Pressed': '#242424',\r\n 'Neutral_Foreground_2_Selected': '#242424',\r\n 'Neutral_Foreground_2_Brand_Hover': '#1e398d',\r\n 'Neutral_Foreground_2_Brand_Pressed': '#182e71',\r\n 'Neutral_Foreground_2_Brand_Selected': '#1e398d',\r\n 'Neutral_Foreground_2_Link_Rest': '#424242',\r\n 'Neutral_Foreground_2_Link_Hover': '#242424',\r\n 'Neutral_Foreground_2_Link_Pressed': '#242424',\r\n 'Neutral_Foreground_2_Link_Selected': '#242424',\r\n 'Neutral_Foreground_3_Rest': '#616161',\r\n 'Neutral_Foreground_3_Hover': '#424242',\r\n 'Neutral_Foreground_3_Pressed': '#424242',\r\n 'Neutral_Foreground_3_Selected': '#424242',\r\n 'Neutral_Foreground_3_Brand_Hover': '#1e398d',\r\n 'Neutral_Foreground_3_Brand_Pressed': '#182e71',\r\n 'Neutral_Foreground_3_Brand_Selected': '#1e398d',\r\n 'Neutral_Foreground_4_Rest': '#707070',\r\n 'Neutral_Foreground_Disabled_Rest': '#bdbdbd',\r\n 'Neutral_Foreground_Static_Rest': '#242424',\r\n 'Neutral_Foreground_Static_Inverted_Rest': '#ffffff',\r\n 'Neutral_Foreground_Inverted_1_Rest': '#ffffff',\r\n 'Neutral_Foreground_Inverted_1_Hover': '#ffffff',\r\n 'Neutral_Foreground_Inverted_1_Pressed': '#ffffff',\r\n 'Neutral_Foreground_Inverted_1_Selected': '#ffffff',\r\n 'Neutral_Foreground_Inverted_2_Rest': '#ffffff',\r\n 'Neutral_Foreground_Inverted_Disabled_Rest': 4,\r\n 'Neutral_Foreground_Inverted_Link_Rest': '#ffffff',\r\n 'Neutral_Foreground_Inverted_Link_Hover': '#ffffff',\r\n 'Neutral_Foreground_Inverted_Link_Pressed': '#ffffff',\r\n 'Neutral_Foreground_Inverted_Link_Selected': '#ffffff',\r\n 'Neutral_Foreground_On Brand_Rest': '#ffffff',\r\n 'Neutral_Stroke_1_Rest': '#d1d1d1',\r\n 'Neutral_Stroke_1_Hover': '#c7c7c7',\r\n 'Neutral_Stroke_1_Pressed': '#b3b3b3',\r\n 'Neutral_Stroke_1_Selected': '#bdbdbd',\r\n 'Neutral_Stroke_2_Rest': '#e0e0e0',\r\n 'Neutral_Stroke_3_Rest': '#f0f0f0',\r\n 'Neutral_Stroke_Alpha_1_Rest': '#1a1a1a0d',\r\n 'Neutral_Stroke_Alpha_2_Rest': 2,\r\n 'Neutral_Stroke_Subtle_Rest': '#e0e0e0',\r\n 'Neutral_Stroke_on Brand_1_Rest': '#ffffff',\r\n 'Neutral_Stroke_on Brand_2_Rest': '#ffffff',\r\n 'Neutral_Stroke_on Brand_2_Hover': '#ffffff',\r\n 'Neutral_Stroke_on Brand_2_Pressed': '#ffffff',\r\n 'Neutral_Stroke_on Brand_2_Selected': '#ffffff',\r\n 'Neutral_Stroke_Accessible_Rest': '#616161',\r\n 'Neutral_Stroke_Accessible_Hover': '#575757',\r\n 'Neutral_Stroke_Accessible_Pressed': '#4d4d4d',\r\n 'Neutral_Stroke_Accessible_Selected': '#1e398d',\r\n 'Neutral_Stroke_Focus_1_Rest': '#ffffff',\r\n 'Neutral_Stroke_Focus_2_Rest': '#000000',\r\n 'Neutral_Stroke_Transparent_Interactive_Rest': '#00000000',\r\n 'Neutral_Stroke_Transparent_Disabled_Rest': '#00000000',\r\n 'Neutral_Stroke_Transparent_Rest': '#00000000',\r\n 'Neutral_Stroke_Disabled_Rest': '#e0e0e0',\r\n 'Neutral_Stroke_Disabled_Inverted_Rest': 4,\r\n 'Brand_Background_1_Rest': '#00B3BD',\r\n 'Brand_Background_1_Hover': '#182e71',\r\n 'Brand_Background_1_Pressed': '#09112a',\r\n 'Brand_Background_1_Selected': '#122255',\r\n 'Brand_Background_2_Rest': '#ffffff',\r\n 'Brand_Background_2_Hover': '#fdfdff',\r\n 'Brand_Background_2_Pressed': '#d0d6e8',\r\n 'Brand_Background_Inverted_Rest': '#ffffff',\r\n 'Brand_Background_Inverted_Hover': '#ffffff',\r\n 'Brand_Background_Inverted_Pressed': '#e7e9f4',\r\n 'Brand_Background_Inverted_Selected': '#fdfdff',\r\n 'Brand_Background_Compound_Rest': '#1e398d',\r\n 'Brand_Background_Compound_Hover': '#182e71',\r\n 'Brand_Background_Compound_Pressed': '#122255',\r\n 'Brand_Background_Static_1_Rest': '#1e398d',\r\n 'Brand_Background_Static_3_Rest': '#122255',\r\n 'Brand_Background_Static_4_Rest': '#09112a',\r\n 'Brand_Foreground_1_Rest': '#1e398d',\r\n 'Brand_Foreground_2_Rest': '#182e71',\r\n 'Brand_Foreground_2_Hover': '#122255',\r\n 'Brand_Foreground_2_Pressed': '#060b1c',\r\n 'Brand_Foreground_Link_Rest': '#182e71',\r\n 'Brand_Foreground_Link_Hover': '#122255',\r\n 'Brand_Foreground_Link_Pressed': '#09112a',\r\n 'Brand_Foreground_Link_Selected': '#182e71',\r\n 'Brand_Foreground_Inverted_Rest': '#7787bb',\r\n 'Brand_Foreground_Inverted_Hover': '#a4afd1',\r\n 'Brand_Foreground_Inverted_Pressed': '#7787bb',\r\n 'Brand_Foreground_On Light_Rest': '#1e398d',\r\n 'Brand_Foreground_On Light_Hover': '#182e71',\r\n 'Brand_Foreground_On Light_Pressed': '#0c1738',\r\n 'Brand_Foreground_On Light_Selected': '#122255',\r\n 'Brand_Foreground_Compound_Rest': '#1e398d',\r\n 'Brand_Foreground_Compound_Hover': '#182e71',\r\n 'Brand_Foreground_Compound_Pressed': '#122255',\r\n 'Brand_Stroke_1_Rest': '#00B3BD',\r\n 'Brand_Stroke_2_Rest': '#e7e9f4',\r\n 'Brand_Stroke_2_Hover': '#bac2dd',\r\n 'Brand_Stroke_2_Pressed': '#1e398d',\r\n 'Brand_Stroke_2_Contrast_Rest': '#e7e9f4',\r\n 'Brand_Stroke_Compound_Rest': '#1e398d',\r\n 'Brand_Stroke_Compound_Hover': '#182e71',\r\n 'Brand_Stroke_Compound_Pressed': '#122255',\r\n 'Status_Danger_Background_1_Rest': '#f5fcfc',\r\n 'Status_Danger_Background_2_Rest': '#a3e4e7',\r\n 'Status_Danger_Background_3_Rest': '#00b3bd',\r\n 'Status_Danger_Foreground_1_Rest': '#b10e1c',\r\n 'Status_Danger_Foreground_2_Rest': '#005d62',\r\n 'Status_Danger_Foreground_3_Rest': '#00b3bd',\r\n 'Status_Danger_Foreground_3_Pressed': '#007a81',\r\n 'Status_Danger_Foreground_3_Hover': '#00969f',\r\n 'Status_Danger_Foreground_Inverted_Rest': '#7ad7dd',\r\n 'Status_Danger_Stroke_1_Rest': '#a3e4e7',\r\n 'Status_Danger_Stroke_2_Rest': '#C50F1F',\r\n 'Status_Success_Background_1_Rest': '#f5fcfc',\r\n 'Status_Success_Background_2_Rest': '#a3e4e7',\r\n 'Status_Success_Background_3_Rest': '#00b3bd',\r\n 'Status_Success_Foreground_1_Rest': '#00969f',\r\n 'Status_Success_Foreground_2_Rest': '#005d62',\r\n 'Status_Success_Foreground_3_Rest': '#00b3bd',\r\n 'Status_Success_Foreground_Inverted_Rest': '#52cbd2',\r\n 'Status_Success_Stroke_1_Rest': '#a3e4e7',\r\n 'Status_Success_Stroke_2_Rest': '#00b3bd',\r\n 'Status_Warning_Background_1_Rest': '#f5fcfc',\r\n 'Status_Warning_Background_2_Rest': '#a3e4e7',\r\n 'Status_Warning_Background_3_Rest': '#00b3bd',\r\n 'Status_Warning_Foreground_1_Rest': '#007a81',\r\n 'Status_Warning_Foreground_2_Rest': '#005d62',\r\n 'Status_Warning_Foreground_3_Rest': '#007a81',\r\n 'Status_Warning_Foreground_Inverted_Rest': '#7ad7dd',\r\n 'Status_Warning_Stroke_1_Rest': '#a3e4e7',\r\n 'Status_Warning_Stroke_2_Rest': '#007a81',\r\n 'Status_Oof_Foreground_3_Rest': '#00b3bd',\r\n 'Status_Away_Background_3_Rest': '#00b3bd',\r\n 'Status_Available_Foreground_3_Rest': '#00b3bd',\r\n 'Status_Severe_Background_1_Rest': '#f5fcfc',\r\n 'Status_Severe_Background_2_Rest': '#a3e4e7',\r\n 'Status_Severe_Background_3_Rest': '#00b3bd',\r\n 'Status_Severe_Foreground_1_Rest': '#007a81',\r\n 'Status_Severe_Foreground_2_Rest': '#007a81',\r\n 'Status_Severe_Foreground_3_Rest': '#007a81',\r\n 'Status_Severe_Foreground_Inverted_Rest': '#7ad7dd',\r\n 'Status_Severe_Stroke_1_Rest': '#a3e4e7',\r\n 'Status_Severe_Stroke_2_Rest': '#007a81',\r\n 'Palette_Dark red_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Dark red_Foreground_2_Rest': '#005d62',\r\n 'Palette_Dark red_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Cranberry_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Cranberry_Foreground_2_Rest': '#005d62',\r\n 'Palette_Cranberry_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Red_Background_1_Rest': '#f5fcfc',\r\n 'Palette_Red_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Red_Background_3_Rest': '#00b3bd',\r\n 'Palette_Red_Foreground_1_Rest': '#00969f',\r\n 'Palette_Red_Foreground_2_Rest': '#005d62',\r\n 'Palette_Red_Foreground_3_Rest': '#00b3bd',\r\n 'Palette_Red_Foreground_Inverted_Rest': '#52cbd2',\r\n 'Palette_Red_Stroke_1_Rest': '#a3e4e7',\r\n 'Palette_Red_Stroke_2_Rest': '#00b3bd',\r\n 'Palette_Red_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Pumpkin_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Pumpkin_Foreground_2_Rest': '#005d62',\r\n 'Palette_Pumpkin_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Peach_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Peach_Foreground_2_Rest': '#005d62',\r\n 'Palette_Peach_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Marigold_Background_1_Rest': '#f5fcfc',\r\n 'Palette_Marigold_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Marigold_Background_3_Rest': '#00b3bd',\r\n 'Palette_Marigold_Foreground_1_Rest': '#00969f',\r\n 'Palette_Marigold_Foreground_1_Rest 2': '#00b3bd',\r\n 'Palette_Marigold_Foreground_2_Rest': '#005d62',\r\n 'Palette_Marigold_Foreground_3_Rest': '#00b3bd',\r\n 'Palette_Marigold_Stroke_1_Rest': '#a3e4e7',\r\n 'Palette_Marigold_Stroke_2_Rest': '#00b3bd',\r\n 'Palette_Marigold_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Gold_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Gold_Foreground_2_Rest': '#005d62',\r\n 'Palette_Gold_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Brass_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Brass_Foreground_2_Rest': '#005d62',\r\n 'Palette_Brass_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Brown_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Brown_Foreground_2_Rest': '#005d62',\r\n 'Palette_Brown_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Forest_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Forest_Foreground_2_Rest': '#005d62',\r\n 'Palette_Forest_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Seafoam_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Seafoam_Foreground_2_Rest': '#005d62',\r\n 'Palette_Seafoam_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Dark green_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Dark green_Foreground_2_Rest': '#005d62',\r\n 'Palette_Dark green_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Light teal_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Light teal_Foreground_2_Rest': '#005d62',\r\n 'Palette_Light teal_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Teal_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Teal_Foreground_2_Rest': '#005d62',\r\n 'Palette_Teal_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Steel_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Steel_Foreground_2_Rest': '#005d62',\r\n 'Palette_Steel_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Blue_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Blue_Foreground_2_Rest': '#005d62',\r\n 'Palette_Blue_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Royal blue_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Royal blue_Foreground_2_Rest': '#005d62',\r\n 'Palette_Royal blue_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Cornflower_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Cornflower_Foreground_2_Rest': '#005d62',\r\n 'Palette_Cornflower_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Navy_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Navy_Foreground_2_Rest': '#005d62',\r\n 'Palette_Navy_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Lavender_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Lavender_Foreground_2_Rest': '#005d62',\r\n 'Palette_Lavender_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Purple_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Purple_Foreground_2_Rest': '#005d62',\r\n 'Palette_Purple_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Grape_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Grape_Foreground_2_Rest': '#005d62',\r\n 'Palette_Grape_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Lilac_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Lilac_Foreground_2_Rest': '#005d62',\r\n 'Palette_Lilac_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Pink_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Pink_Foreground_2_Rest': '#005d62',\r\n 'Palette_Pink_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Magenta_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Magenta_Foreground_2_Rest': '#005d62',\r\n 'Palette_Magenta_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Plum_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Plum_Foreground_2_Rest': '#005d62',\r\n 'Palette_Plum_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Beige_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Beige_Foreground_2_Rest': '#005d62',\r\n 'Palette_Beige_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Mink_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Mink_Foreground_2_Rest': '#005d62',\r\n 'Palette_Mink_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Platinum_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Platinum_Foreground_2_Rest': '#005d62',\r\n 'Palette_Platinum_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Anchor_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Anchor_Foreground_2_Rest': '#005d62',\r\n 'Palette_Anchor_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Green_Background_1_Rest': '#f5fcfc',\r\n 'Palette_Green_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Green_Background_3_Rest': '#00b3bd',\r\n 'Palette_Green_Stroke_1_Rest': '#a3e4e7',\r\n 'Palette_Green_Stroke_2_Rest': '#00b3bd',\r\n 'Palette_Green_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Green_Foreground_1_Rest': '#00969f',\r\n 'Palette_Green_Foreground_2_Rest': '#005d62',\r\n 'Palette_Green_Foreground_3_Rest': '#00b3bd',\r\n 'Palette_Green_Foreground_Inverted_Rest': '#52cbd2',\r\n 'Palette_Dark orange_Foreground_1_Rest': '#00969f',\r\n 'Palette_Dark orange_Foreground_2_Rest': '#005d62',\r\n 'Palette_Dark orange_Foreground_3_Rest': '#00b3bd',\r\n 'Palette_Dark orange_Background_1_Rest': '#f5fcfc',\r\n 'Palette_Dark orange_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Dark orange_Background_3_Rest': '#00b3bd',\r\n 'Palette_Dark orange_Stroke_1_Rest': '#a3e4e7',\r\n 'Palette_Dark orange_Stroke_2_Rest': '#00b3bd',\r\n 'Palette_Dark orange_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Yellow_Foreground_1_Rest': '#005d62',\r\n 'Palette_Yellow_Foreground_2_Rest': '#005d62',\r\n 'Palette_Yellow_Foreground_3_Rest': '#00b3bd',\r\n 'Palette_Yellow_Foreground_Inverted_Rest': '#a3e4e7',\r\n 'Palette_Yellow_Stroke_1_Rest': '#a3e4e7',\r\n 'Palette_Yellow_Stroke_2_Rest': '#00b3bd',\r\n 'Palette_Yellow_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Yellow_Background_1_Rest': '#f5fcfc',\r\n 'Palette_Yellow_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Yellow_Background_3_Rest': '#00b3bd',\r\n 'Palette_Berry_Foreground_1_Rest': '#00969f',\r\n 'Palette_Berry_Foreground_2_Rest': '#005d62',\r\n 'Palette_Berry_Foreground_3_Rest': '#00b3bd',\r\n 'Palette_Berry_Background_1_Rest': '#f5fcfc',\r\n 'Palette_Berry_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Berry_Background_3_Rest': '#00b3bd',\r\n 'Palette_Berry_Stroke_1_Rest': '#a3e4e7',\r\n 'Palette_Berry_Stroke_2_Rest': '#00b3bd',\r\n 'Palette_Berry_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Light Green_Foreground_1_Rest': '#00969f',\r\n 'Palette_Light Green_Foreground_2_Rest': '#005d62',\r\n 'Palette_Light Green_Foreground_3_Rest': '#00b3bd',\r\n 'Palette_Light Green_Background_1_Rest': '#f5fcfc',\r\n 'Palette_Light Green_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Light Green_Background_3_Rest': '#00b3bd',\r\n 'Palette_Light Green_Stroke_1_Rest': '#a3e4e7',\r\n 'Palette_Light Green_Stroke_2_Rest': '#00b3bd',\r\n 'Palette_Light Green_Stroke_Active_Rest': '#00b3bd',\r\n 'Shadow_Ambient': '#0000001f',\r\n 'Shadow_Ambient lighter': '#0000000f',\r\n 'Shadow_Ambient darker': '#00000033',\r\n 'Shadow_Brand ambient': '#00000040',\r\n 'Shadow_Key': '#00000024',\r\n 'Shadow_Key lighter': '#00000012',\r\n 'Shadow_Key darker': '#0000003d',\r\n 'Shadow_Brand key': '#0000004d',\r\n 'Material_Acrylic_Stroke_Stop 2': '#cfe4fa33',\r\n 'Material_Acrylic_Stroke_Stop 3': 2,\r\n 'Material_Acrylic_Stroke_Stop 1': 2,\r\n 'Material_Acrylic_Background_Secondary': '#e7ecf3b3',\r\n 'Material_Acrylic_Background_Primary': '#1a1a1a80',\r\n 'Material_Acrylic_Background_Blur': 60,\r\n};\r\n\r\n// Dark Mode Colors\r\nexport const darkModeColors = {\r\n 'Neutral_Background_1_Rest': '#292929',\r\n 'Neutral_Background_1_Hover': '#3d3d3d',\r\n 'Neutral_Background_1_Pressed': '#1f1f1f',\r\n 'Neutral_Background_1_Selected': '#383838',\r\n 'Neutral_Background_2_Rest': '#1f1f1f',\r\n 'Neutral_Background_2_Hover': '#333333',\r\n 'Neutral_Background_2_Pressed': '#141414',\r\n 'Neutral_Background_2_Selected': '#2e2e2e',\r\n 'Neutral_Background_3_Rest': '#141414',\r\n 'Neutral_Background_3_Hover': '#292929',\r\n 'Neutral_Background_3_Pressed': '#0a0a0a',\r\n 'Neutral_Background_3_Selected': '#242424',\r\n 'Neutral_Background_4_Rest': '#0a0a0a',\r\n 'Neutral_Background_4_Hover': '#1f1f1f',\r\n 'Neutral_Background_4_Pressed': '#000000',\r\n 'Neutral_Background_4_Selected': '#1a1a1a',\r\n 'Neutral_Background_5_Rest': '#000000',\r\n 'Neutral_Background_5_Hover': '#141414',\r\n 'Neutral_Background_5_Pressed': '#050505',\r\n 'Neutral_Background_5_Selected': '#0f0f0f',\r\n 'Neutral_Background_6_Rest': '#333333',\r\n 'Neutral_Background_Inverted_Rest': '#ffffff',\r\n 'Neutral_Background_Inverted_Disabled_Rest': 1,\r\n 'Neutral_Background_Alpha_1_Rest': '#1a1a1a80',\r\n 'Neutral_Background_Alpha_2_Rest': '#1a1a1ab3',\r\n 'Neutral_Background_Static_Rest': '#3d3d3d',\r\n 'Neutral_Background_Subtle_Rest': '#00000000',\r\n 'Neutral_Background_Subtle_Hover': '#383838',\r\n 'Neutral_Background_Subtle_Pressed': '#2e2e2e',\r\n 'Neutral_Background_Subtle_Selected': '#333333',\r\n 'Neutral_Background_Subtle_Light alpha_Hover': 8,\r\n 'Neutral_Background_Subtle_Light alpha_Pressed': '#1a1a1a80',\r\n 'Neutral_Background_Subtle_Light alpha_Selected': '#00000000',\r\n 'Neutral_Background_Subtle_Inverted_Rest': '#00000000',\r\n 'Neutral_Background_Subtle_Inverted_Hover': 1,\r\n 'Neutral_Background_Subtle_Inverted_Pressed': 3,\r\n 'Neutral_Background_Subtle_Inverted_Selected': 2,\r\n 'Neutral_Background_Transparent_Rest': '#00000000',\r\n 'Neutral_Background_Transparent_Hover': '#00000000',\r\n 'Neutral_Background_Transparent_Pressed': '#00000000',\r\n 'Neutral_Background_Transparent_Selected': '#00000000',\r\n 'Neutral_Background_Disabled_Rest': '#141414',\r\n 'Neutral_Background_Stencil_1_Rest': '#575757',\r\n 'Neutral_Background_Stencil_1_Alpha_Rest': 1,\r\n 'Neutral_Background_Stencil_2_Rest': '#333333',\r\n 'Neutral_Background_Stencil_2_Alpha_Rest': '#1a1a1a0d',\r\n 'Neutral_Background_Overlay_Rest': '#1a1a1a80',\r\n 'Neutral_Background_Overlay_Scrollbar_Rest': 6,\r\n 'Neutral_Foreground_1_Rest': '#ffffff',\r\n 'Neutral_Foreground_1_Hover': '#ffffff',\r\n 'Neutral_Foreground_1_Pressed': '#ffffff',\r\n 'Neutral_Foreground_1_Selected': '#ffffff',\r\n 'Neutral_Foreground_2_Rest': '#d6d6d6',\r\n 'Neutral_Foreground_2_Hover': '#ffffff',\r\n 'Neutral_Foreground_2_Pressed': '#ffffff',\r\n 'Neutral_Foreground_2_Selected': '#ffffff',\r\n 'Neutral_Foreground_2_Brand_Hover': '#7787bb',\r\n 'Neutral_Foreground_2_Brand_Pressed': '#a4afd1',\r\n 'Neutral_Foreground_2_Brand_Selected': '#7787bb',\r\n 'Neutral_Foreground_2_Link_Rest': '#d6d6d6',\r\n 'Neutral_Foreground_2_Link_Hover': '#ffffff',\r\n 'Neutral_Foreground_2_Link_Pressed': '#ffffff',\r\n 'Neutral_Foreground_2_Link_Selected': '#ffffff',\r\n 'Neutral_Foreground_3_Rest': '#adadad',\r\n 'Neutral_Foreground_3_Hover': '#d6d6d6',\r\n 'Neutral_Foreground_3_Pressed': '#d6d6d6',\r\n 'Neutral_Foreground_3_Selected': '#d6d6d6',\r\n 'Neutral_Foreground_3_Brand_Hover': '#7787bb',\r\n 'Neutral_Foreground_3_Brand_Pressed': '#a4afd1',\r\n 'Neutral_Foreground_3_Brand_Selected': '#7787bb',\r\n 'Neutral_Foreground_4_Rest': '#999999',\r\n 'Neutral_Foreground_Disabled_Rest': '#5c5c5c',\r\n 'Neutral_Foreground_Static_Rest': '#242424',\r\n 'Neutral_Foreground_Static_Inverted_Rest': '#ffffff',\r\n 'Neutral_Foreground_Inverted_1_Rest': '#242424',\r\n 'Neutral_Foreground_Inverted_1_Hover': '#242424',\r\n 'Neutral_Foreground_Inverted_1_Pressed': '#242424',\r\n 'Neutral_Foreground_Inverted_1_Selected': '#242424',\r\n 'Neutral_Foreground_Inverted_2_Rest': '#242424',\r\n 'Neutral_Foreground_Inverted_Disabled_Rest': 4,\r\n 'Neutral_Foreground_Inverted_Link_Rest': '#ffffff',\r\n 'Neutral_Foreground_Inverted_Link_Hover': '#ffffff',\r\n 'Neutral_Foreground_Inverted_Link_Pressed': '#ffffff',\r\n 'Neutral_Foreground_Inverted_Link_Selected': '#ffffff',\r\n 'Neutral_Foreground_On Brand_Rest': '#ffffff',\r\n 'Neutral_Stroke_1_Rest': '#666666',\r\n 'Neutral_Stroke_1_Hover': '#757575',\r\n 'Neutral_Stroke_1_Pressed': '#6b6b6b',\r\n 'Neutral_Stroke_1_Selected': '#707070',\r\n 'Neutral_Stroke_2_Rest': '#525252',\r\n 'Neutral_Stroke_3_Rest': '#3d3d3d',\r\n 'Neutral_Stroke_Alpha_1_Rest': 1,\r\n 'Neutral_Stroke_Alpha_2_Rest': 2,\r\n 'Neutral_Stroke_Subtle_Rest': '#0a0a0a',\r\n 'Neutral_Stroke_on Brand_1_Rest': '#292929',\r\n 'Neutral_Stroke_on Brand_2_Rest': '#ffffff',\r\n 'Neutral_Stroke_on Brand_2_Hover': '#ffffff',\r\n 'Neutral_Stroke_on Brand_2_Pressed': '#ffffff',\r\n 'Neutral_Stroke_on Brand_2_Selected': '#ffffff',\r\n 'Neutral_Stroke_Accessible_Rest': '#adadad',\r\n 'Neutral_Stroke_Accessible_Hover': '#bdbdbd',\r\n 'Neutral_Stroke_Accessible_Pressed': '#b3b3b3',\r\n 'Neutral_Stroke_Accessible_Selected': '#7787bb',\r\n 'Neutral_Stroke_Focus_1_Rest': '#000000',\r\n 'Neutral_Stroke_Focus_2_Rest': '#ffffff',\r\n 'Neutral_Stroke_Transparent_Interactive_Rest': '#00000000',\r\n 'Neutral_Stroke_Transparent_Disabled_Rest': '#00000000',\r\n 'Neutral_Stroke_Transparent_Rest': '#00000000',\r\n 'Neutral_Stroke_Disabled_Rest': '#424242',\r\n 'Neutral_Stroke_Disabled_Inverted_Rest': 4,\r\n 'Brand_Background_1_Rest': '#182e71',\r\n 'Brand_Background_1_Hover': '#1e398d',\r\n 'Brand_Background_1_Pressed': '#09112a',\r\n 'Brand_Background_1_Selected': '#122255',\r\n 'Brand_Background_2_Rest': '#03060e',\r\n 'Brand_Background_2_Hover': '#09112a',\r\n 'Brand_Background_2_Pressed': '#000000',\r\n 'Brand_Background_Inverted_Rest': '#ffffff',\r\n 'Brand_Background_Inverted_Hover': '#ffffff',\r\n 'Brand_Background_Inverted_Pressed': '#e7e9f4',\r\n 'Brand_Background_Inverted_Selected': '#fdfdff',\r\n 'Brand_Background_Compound_Rest': '#7787bb',\r\n 'Brand_Background_Compound_Hover': '#a4afd1',\r\n 'Brand_Background_Compound_Pressed': '#4b60a4',\r\n 'Brand_Background_Static_1_Rest': '#1e398d',\r\n 'Brand_Background_Static_3_Rest': '#122255',\r\n 'Brand_Background_Static_4_Rest': '#09112a',\r\n 'Brand_Foreground_1_Rest': '#7787bb',\r\n 'Brand_Foreground_2_Rest': '#a4afd1',\r\n 'Brand_Foreground_2_Hover': '#d0d6e8',\r\n 'Brand_Foreground_2_Pressed': '#7787bb',\r\n 'Brand_Foreground_Link_Rest': '#7787bb',\r\n 'Brand_Foreground_Link_Hover': '#a4afd1',\r\n 'Brand_Foreground_Link_Pressed': '#4b60a4',\r\n 'Brand_Foreground_Link_Selected': '#7787bb',\r\n 'Brand_Foreground_Inverted_Rest': '#1e398d',\r\n 'Brand_Foreground_Inverted_Hover': '#182e71',\r\n 'Brand_Foreground_Inverted_Pressed': '#122255',\r\n 'Brand_Foreground_On Light_Rest': '#182e71',\r\n 'Brand_Foreground_On Light_Hover': '#182e71',\r\n 'Brand_Foreground_On Light_Pressed': '#0c1738',\r\n 'Brand_Foreground_On Light_Selected': '#122255',\r\n 'Brand_Foreground_Compound_Rest': '#7787bb',\r\n 'Brand_Foreground_Compound_Hover': '#a4afd1',\r\n 'Brand_Foreground_Compound_Pressed': '#4b60a4',\r\n 'Brand_Stroke_1_Rest': '#7787bb',\r\n 'Brand_Stroke_2_Rest': '#0c1738',\r\n 'Brand_Stroke_2_Hover': '#4b60a4',\r\n 'Brand_Stroke_2_Pressed': '#182e71',\r\n 'Brand_Stroke_2_Contrast_Rest': '#0c1738',\r\n 'Brand_Stroke_Compound_Rest': '#7787bb',\r\n 'Brand_Stroke_Compound_Hover': '#a4afd1',\r\n 'Brand_Stroke_Compound_Pressed': '#4b60a4',\r\n 'Status_Danger_Background_1_Rest': '#004044',\r\n 'Status_Danger_Background_2_Rest': '#005d62',\r\n 'Status_Danger_Background_3_Rest': '#00b3bd',\r\n 'Status_Danger_Foreground_1_Rest': '#b10e1c',\r\n 'Status_Danger_Foreground_2_Rest': '#a3e4e7',\r\n 'Status_Danger_Foreground_3_Rest': '#a3e4e7',\r\n 'Status_Danger_Foreground_3_Pressed': '#007a81',\r\n 'Status_Danger_Foreground_3_Hover': '#00969f',\r\n 'Status_Danger_Foreground_Inverted_Rest': '#00969f',\r\n 'Status_Danger_Stroke_1_Rest': '#00b3bd',\r\n 'Status_Danger_Stroke_2_Rest': '#7ad7dd',\r\n 'Status_Success_Background_1_Rest': '#004044',\r\n 'Status_Success_Background_2_Rest': '#005d62',\r\n 'Status_Success_Background_3_Rest': '#00b3bd',\r\n 'Status_Success_Foreground_1_Rest': '#7ad7dd',\r\n 'Status_Success_Foreground_2_Rest': '#a3e4e7',\r\n 'Status_Success_Foreground_3_Rest': '#a3e4e7',\r\n 'Status_Success_Foreground_Inverted_Rest': '#00b3bd',\r\n 'Status_Success_Stroke_1_Rest': '#00b3bd',\r\n 'Status_Success_Stroke_2_Rest': '#a3e4e7',\r\n 'Status_Warning_Background_1_Rest': '#004044',\r\n 'Status_Warning_Background_2_Rest': '#005d62',\r\n 'Status_Warning_Background_3_Rest': '#00b3bd',\r\n 'Status_Warning_Foreground_1_Rest': '#52cbd2',\r\n 'Status_Warning_Foreground_2_Rest': '#a3e4e7',\r\n 'Status_Warning_Foreground_3_Rest': '#a3e4e7',\r\n 'Status_Warning_Foreground_Inverted_Rest': '#007a81',\r\n 'Status_Warning_Stroke_1_Rest': '#00969f',\r\n 'Status_Warning_Stroke_2_Rest': '#52cbd2',\r\n 'Status_Oof_Foreground_3_Rest': '#52cbd2',\r\n 'Status_Away_Background_3_Rest': '#00b3bd',\r\n 'Status_Available_Foreground_3_Rest': '#00b3bd',\r\n 'Status_Severe_Background_1_Rest': '#004044',\r\n 'Status_Severe_Background_2_Rest': '#005d62',\r\n 'Status_Severe_Background_3_Rest': '#00b3bd',\r\n 'Status_Severe_Foreground_1_Rest': '#52cbd2',\r\n 'Status_Severe_Foreground_2_Rest': '#a3e4e7',\r\n 'Status_Severe_Foreground_3_Rest': '#a3e4e7',\r\n 'Status_Severe_Foreground_Inverted_Rest': '#007a81',\r\n 'Status_Severe_Stroke_1_Rest': '#00969f',\r\n 'Status_Severe_Stroke_2_Rest': '#52cbd2',\r\n 'Palette_Dark red_Background_2_Rest': '#007a81',\r\n 'Palette_Dark red_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Dark red_Stroke_Active_Rest': '#52cbd2',\r\n 'Palette_Cranberry_Background_2_Rest': '#005d62',\r\n 'Palette_Cranberry_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Cranberry_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Red_Background_1_Rest': '#004044',\r\n 'Palette_Red_Background_2_Rest': '#005d62',\r\n 'Palette_Red_Background_3_Rest': '#00b3bd',\r\n 'Palette_Red_Foreground_1_Rest': '#7ad7dd',\r\n 'Palette_Red_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Red_Foreground_3_Rest': '#7ad7dd',\r\n 'Palette_Red_Foreground_Inverted_Rest': '#00b3bd',\r\n 'Palette_Red_Stroke_1_Rest': '#00b3bd',\r\n 'Palette_Red_Stroke_2_Rest': '#7ad7dd',\r\n 'Palette_Red_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Pumpkin_Background_2_Rest': '#005d62',\r\n 'Palette_Pumpkin_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Pumpkin_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Peach_Background_2_Rest': '#005d62',\r\n 'Palette_Peach_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Peach_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Marigold_Background_1_Rest': '#004044',\r\n 'Palette_Marigold_Background_2_Rest': '#005d62',\r\n 'Palette_Marigold_Background_3_Rest': '#00b3bd',\r\n 'Palette_Marigold_Foreground_1_Rest': '#7ad7dd',\r\n 'Palette_Marigold_Foreground_1_Rest 2': '#52cbd2',\r\n 'Palette_Marigold_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Marigold_Foreground_3_Rest': '#52cbd2',\r\n 'Palette_Marigold_Stroke_1_Rest': '#00b3bd',\r\n 'Palette_Marigold_Stroke_2_Rest': '#52cbd2',\r\n 'Palette_Marigold_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Gold_Background_2_Rest': '#005d62',\r\n 'Palette_Gold_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Gold_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Brass_Background_2_Rest': '#005d62',\r\n 'Palette_Brass_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Brass_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Brown_Background_2_Rest': '#005d62',\r\n 'Palette_Brown_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Brown_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Forest_Background_2_Rest': '#005d62',\r\n 'Palette_Forest_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Forest_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Seafoam_Background_2_Rest': '#005d62',\r\n 'Palette_Seafoam_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Seafoam_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Dark green_Background_2_Rest': '#005d62',\r\n 'Palette_Dark green_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Dark green_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Light teal_Background_2_Rest': '#005d62',\r\n 'Palette_Light teal_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Light teal_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Teal_Background_2_Rest': '#005d62',\r\n 'Palette_Teal_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Teal_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Steel_Background_2_Rest': '#005d62',\r\n 'Palette_Steel_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Steel_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Blue_Background_2_Rest': '#005d62',\r\n 'Palette_Blue_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Blue_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Royal blue_Background_2_Rest': '#005d62',\r\n 'Palette_Royal blue_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Royal blue_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Cornflower_Background_2_Rest': '#005d62',\r\n 'Palette_Cornflower_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Cornflower_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Navy_Background_2_Rest': '#005d62',\r\n 'Palette_Navy_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Navy_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Lavender_Background_2_Rest': '#005d62',\r\n 'Palette_Lavender_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Lavender_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Purple_Background_2_Rest': '#005d62',\r\n 'Palette_Purple_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Purple_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Grape_Background_2_Rest': '#005d62',\r\n 'Palette_Grape_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Grape_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Lilac_Background_2_Rest': '#005d62',\r\n 'Palette_Lilac_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Lilac_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Pink_Background_2_Rest': '#005d62',\r\n 'Palette_Pink_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Pink_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Magenta_Background_2_Rest': '#005d62',\r\n 'Palette_Magenta_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Magenta_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Plum_Background_2_Rest': '#007a81',\r\n 'Palette_Plum_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Plum_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Beige_Background_2_Rest': '#005d62',\r\n 'Palette_Beige_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Beige_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Mink_Background_2_Rest': '#005d62',\r\n 'Palette_Mink_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Mink_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Platinum_Background_2_Rest': '#005d62',\r\n 'Palette_Platinum_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Platinum_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Anchor_Background_2_Rest': '#005d62',\r\n 'Palette_Anchor_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Anchor_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Green_Background_1_Rest': '#004044',\r\n 'Palette_Green_Background_2_Rest': '#005d62',\r\n 'Palette_Green_Background_3_Rest': '#00b3bd',\r\n 'Palette_Green_Stroke_1_Rest': '#00b3bd',\r\n 'Palette_Green_Stroke_2_Rest': '#7ad7dd',\r\n 'Palette_Green_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Green_Foreground_1_Rest': '#7ad7dd',\r\n 'Palette_Green_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Green_Foreground_3_Rest': '#7ad7dd',\r\n 'Palette_Green_Foreground_Inverted_Rest': '#00b3bd',\r\n 'Palette_Dark orange_Foreground_1_Rest': '#7ad7dd',\r\n 'Palette_Dark orange_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Dark orange_Foreground_3_Rest': '#7ad7dd',\r\n 'Palette_Dark orange_Background_1_Rest': '#004044',\r\n 'Palette_Dark orange_Background_2_Rest': '#005d62',\r\n 'Palette_Dark orange_Background_3_Rest': '#00b3bd',\r\n 'Palette_Dark orange_Stroke_1_Rest': '#00b3bd',\r\n 'Palette_Dark orange_Stroke_2_Rest': '#7ad7dd',\r\n 'Palette_Dark orange_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Yellow_Foreground_1_Rest': '#7ad7dd',\r\n 'Palette_Yellow_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Yellow_Foreground_3_Rest': '#52cbd2',\r\n 'Palette_Yellow_Foreground_Inverted_Rest': '#005d62',\r\n 'Palette_Yellow_Stroke_1_Rest': '#00b3bd',\r\n 'Palette_Yellow_Stroke_2_Rest': '#52cbd2',\r\n 'Palette_Yellow_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Yellow_Background_1_Rest': '#004044',\r\n 'Palette_Yellow_Background_2_Rest': '#005d62',\r\n 'Palette_Yellow_Background_3_Rest': '#00b3bd',\r\n 'Palette_Berry_Foreground_1_Rest': '#7ad7dd',\r\n 'Palette_Berry_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Berry_Foreground_3_Rest': '#52cbd2',\r\n 'Palette_Berry_Background_1_Rest': '#004044',\r\n 'Palette_Berry_Background_2_Rest': '#005d62',\r\n 'Palette_Berry_Background_3_Rest': '#00b3bd',\r\n 'Palette_Berry_Stroke_1_Rest': '#00b3bd',\r\n 'Palette_Berry_Stroke_2_Rest': '#52cbd2',\r\n 'Palette_Berry_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Light Green_Foreground_1_Rest': '#7ad7dd',\r\n 'Palette_Light Green_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Light Green_Foreground_3_Rest': '#52cbd2',\r\n 'Palette_Light Green_Background_1_Rest': '#004044',\r\n 'Palette_Light Green_Background_2_Rest': '#005d62',\r\n 'Palette_Light Green_Background_3_Rest': '#00b3bd',\r\n 'Palette_Light Green_Stroke_1_Rest': '#00b3bd',\r\n 'Palette_Light Green_Stroke_2_Rest': '#52cbd2',\r\n 'Palette_Light Green_Stroke_Active_Rest': '#7ad7dd',\r\n 'Shadow_Ambient': '#0000003d',\r\n 'Shadow_Ambient lighter': '#0000001f',\r\n 'Shadow_Ambient darker': '#00000066',\r\n 'Shadow_Brand ambient': '#00000040',\r\n 'Shadow_Key': '#00000047',\r\n 'Shadow_Key lighter': '#00000024',\r\n 'Shadow_Key darker': '#0000007a',\r\n 'Shadow_Brand key': '#0000004d',\r\n 'Material_Acrylic_Stroke_Stop 2': '#2c3136',\r\n 'Material_Acrylic_Stroke_Stop 3': 2,\r\n 'Material_Acrylic_Stroke_Stop 1': 2,\r\n 'Material_Acrylic_Background_Secondary': '#46406e99',\r\n 'Material_Acrylic_Background_Primary': '#2e2e2ecc',\r\n 'Material_Acrylic_Background_Blur': 60,\r\n};\r\n\r\n// Default export\r\nexport default {\r\n brandColors,\r\n spacing,\r\n borderRadius,\r\n fontSize,\r\n fontWeight,\r\n lineHeight,\r\n strokeWidth,\r\n sharedColors,\r\n foundationColors,\r\n lightModeColors,\r\n darkModeColors,\r\n schemeColors,\r\n};\r\n","import { Calendar } from '@fluentui/react-calendar-compat';\r\nimport {\r\n Input,\r\n InputProps,\r\n Popover,\r\n PopoverSurface,\r\n PopoverTrigger,\r\n} from '@fluentui/react-components';\r\nimport { Icon } from '@iconify/react';\r\nimport React, { forwardRef, useState } from 'react';\r\n\r\ninterface DatePickerInputProps extends InputProps {\r\n field: {\r\n value: string;\r\n onChange: (value: string) => void;\r\n onBlur?: () => void;\r\n };\r\n max?: string;\r\n}\r\n\r\nconst DatePickerInput = forwardRef<HTMLInputElement, DatePickerInputProps>(\r\n (\r\n {\r\n field,\r\n placeholder,\r\n disabled,\r\n appearance,\r\n size,\r\n contentBefore,\r\n onClick,\r\n style,\r\n max,\r\n ...restProps\r\n },\r\n ref,\r\n ) => {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const dateValue = field.value ? new Date(field.value) : undefined;\r\n\r\n const onSelectDate = (date: Date | null | undefined) => {\r\n if (date) {\r\n // Adjust for timezone offset to ensure the date string is correct\r\n const offset = date.getTimezoneOffset();\r\n const adjustedDate = new Date(date.getTime() - offset * 60 * 1000);\r\n field.onChange(adjustedDate.toISOString().split('T')[0]);\r\n setIsOpen(false);\r\n }\r\n };\r\n\r\n const formatDate = (dateString: string) => {\r\n if (!dateString) return '';\r\n const date = new Date(dateString);\r\n return date.toLocaleDateString('id-ID', {\r\n day: 'numeric',\r\n month: 'long',\r\n year: 'numeric',\r\n });\r\n };\r\n\r\n const handleInputClick = (e: React.MouseEvent<HTMLInputElement>) => {\r\n e?.preventDefault();\r\n if (!disabled) {\r\n setIsOpen(!isOpen);\r\n }\r\n onClick?.(e);\r\n };\r\n\r\n return (\r\n <Popover open={isOpen} onOpenChange={(_, data) => setIsOpen(data.open)} trapFocus>\r\n <PopoverTrigger disableButtonEnhancement>\r\n <Input\r\n {...restProps}\r\n value={formatDate(field.value)}\r\n readOnly\r\n placeholder={placeholder || 'Pilih tanggal'}\r\n disabled={disabled}\r\n appearance={appearance}\r\n size={size}\r\n contentBefore={contentBefore}\r\n onClick={handleInputClick}\r\n style={{\r\n cursor: disabled ? 'not-allowed' : 'pointer',\r\n ...style,\r\n }}\r\n contentAfter={\r\n <div\r\n onClick={e => {\r\n e.stopPropagation();\r\n if (!disabled) {\r\n setIsOpen(!isOpen);\r\n }\r\n }}\r\n style={{\r\n cursor: disabled ? 'not-allowed' : 'pointer',\r\n display: 'flex',\r\n alignItems: 'center',\r\n }}\r\n >\r\n <Icon icon=\"fluent:calendar-24-regular\" />\r\n </div>\r\n }\r\n />\r\n </PopoverTrigger>\r\n <PopoverSurface tabIndex={-1} style={{ maxWidth: '530px' }}>\r\n <Calendar\r\n value={dateValue}\r\n onSelectDate={onSelectDate}\r\n showGoToToday\r\n highlightSelectedMonth\r\n showMonthPickerAsOverlay={false}\r\n maxDate={max ? new Date(max) : undefined}\r\n />\r\n </PopoverSurface>\r\n </Popover>\r\n );\r\n },\r\n);\r\n\r\nDatePickerInput.displayName = 'DatePickerInput';\r\n\r\nexport default DatePickerInput;\r\n","import {\r\n Button,\r\n Checkbox,\r\n Field,\r\n Input,\r\n Label,\r\n Radio,\r\n RadioGroup,\r\n Switch,\r\n Text,\r\n Textarea,\r\n makeStyles,\r\n tokens,\r\n typographyStyles,\r\n} from '@fluentui/react-components';\r\nimport { Icon } from '@iconify/react';\r\nimport { MutableRefObject, useEffect, useRef, useState } from 'react';\r\nimport { Control, Controller, FieldValues, Path } from 'react-hook-form';\r\nimport PhoneInput from 'react-phone-input-2';\r\n// NOTE: CSS must be imported in the consuming application (_app.tsx or _app.js)\r\n// import 'react-phone-input-2/lib/style.css';\r\nimport Select from 'react-select';\r\n\r\nimport tokensV2, { fontWeight, sharedColors } from '../../constants/generated/tokensV2';\r\n\r\nimport DatePickerInput from './DatePickerInput';\r\nimport { InputDynamicProps, InputType, PhoneValue, CountryCode, SelectOption, RadioOption } from './types';\r\nconst useStyles = makeStyles({\r\n field: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: tokens.spacingVerticalXS,\r\n marginBottom: tokens.spacingVerticalM,\r\n },\r\n errorText: {\r\n color: tokens.colorPaletteRedBackground1,\r\n fontSize: tokens.fontSizeBase200,\r\n },\r\n helperText: {\r\n color: tokens.colorNeutralForeground2,\r\n fontSize: tokens.fontSizeBase200,\r\n },\r\n disabledFilledLighter: {\r\n backgroundColor: tokens.colorNeutralBackground4,\r\n border: 'none',\r\n '& input': {\r\n backgroundColor: tokens.colorNeutralBackground4,\r\n border: 'none',\r\n },\r\n },\r\n fileInput: {\r\n padding: tokens.spacingVerticalS,\r\n border: `1px solid ${tokens.colorNeutralStroke1}`,\r\n borderRadius: tokens.borderRadiusMedium,\r\n backgroundColor: tokens.colorNeutralBackground1,\r\n fontSize: tokens.fontSizeBase300,\r\n '&:focus': {\r\n outline: `2px solid ${tokens.colorBrandStroke1}`,\r\n },\r\n },\r\n reactSelect: {\r\n // Custom styles akan dihandle via styles prop react-select\r\n },\r\n reactSelectError: {\r\n // Custom styles akan dihandle via styles prop react-select\r\n },\r\n phoneContainer: {\r\n display: 'flex',\r\n gap: tokens.spacingHorizontalS,\r\n alignItems: 'flex-start',\r\n width: '100%',\r\n },\r\n phoneCountrySelect: {\r\n minWidth: '120px',\r\n maxWidth: '120px',\r\n flexShrink: 0,\r\n },\r\n switchWrapper: {\r\n '& .fui-Switch': {\r\n minHeight: '20px',\r\n },\r\n '& .fui-Switch__indicator': {\r\n height: '20px',\r\n width: '40px',\r\n borderRadius: '10px',\r\n },\r\n '& .fui-Switch__thumb': {\r\n height: '14px',\r\n width: '14px',\r\n borderRadius: '50%',\r\n },\r\n },\r\n otpInput: {\r\n '& input': {\r\n textAlign: 'center',\r\n },\r\n },\r\n inputWithAutocomplete: {\r\n '& input:-webkit-autofill': {\r\n '-webkit-box-shadow': '0 0 0 30px white inset !important',\r\n '-webkit-text-fill-color': `${tokens.colorNeutralForeground1} !important`,\r\n },\r\n '& input:-webkit-autofill:hover': {\r\n '-webkit-box-shadow': '0 0 0 30px white inset !important',\r\n },\r\n '& input:-webkit-autofill:focus': {\r\n '-webkit-box-shadow': '0 0 0 30px white inset !important',\r\n },\r\n '& input:-webkit-autofill:active': {\r\n '-webkit-box-shadow': '0 0 0 30px white inset !important',\r\n },\r\n },\r\n phoneInputWrapper: {\r\n width: '100%',\r\n '& .react-tel-input': {\r\n width: '100%',\r\n },\r\n '& .react-tel-input .form-control': {\r\n width: '100%',\r\n border: `1px solid ${tokens.colorNeutralStroke1}`,\r\n borderRadius: tokens.borderRadiusMedium,\r\n padding: tokens.spacingVerticalS,\r\n paddingLeft: '48px',\r\n fontSize: tokens.fontSizeBase300,\r\n fontFamily: tokens.fontFamilyBase,\r\n backgroundColor: tokens.colorNeutralBackground1,\r\n color: tokens.colorNeutralForeground1,\r\n outline: 'none',\r\n height: 'auto',\r\n minHeight: '40px',\r\n },\r\n '& .react-tel-input .form-control::placeholder': {\r\n fontSize: tokens.fontSizeBase400,\r\n },\r\n '& .react-tel-input .form-control:hover': {\r\n border: `1px solid ${tokens.colorNeutralStroke1Hover}`,\r\n },\r\n '& .react-tel-input .form-control:focus': {\r\n borderBottom: `2px solid ${tokens.colorBrandStroke1}`,\r\n // boxShadow: `0 0 0 1px ${tokens.colorBrandStroke1}`,\r\n },\r\n '& .react-tel-input .form-control:disabled': {\r\n backgroundColor: tokens.colorNeutralBackground4,\r\n color: tokens.colorNeutralForegroundDisabled,\r\n cursor: 'not-allowed',\r\n },\r\n '& .react-tel-input .flag-dropdown': {\r\n border: 'none',\r\n backgroundColor: 'transparent',\r\n borderRadius: tokens.borderRadiusMedium,\r\n },\r\n '& .react-tel-input .selected-flag': {\r\n padding: '0 0 0 8px',\r\n width: '40px',\r\n backgroundColor: 'transparent',\r\n },\r\n '& .react-tel-input .selected-flag:hover': {\r\n backgroundColor: 'transparent',\r\n },\r\n '& .react-tel-input .flag-dropdown.open .selected-flag': {\r\n backgroundColor: 'transparent',\r\n },\r\n },\r\n phoneInputError: {\r\n '& .react-tel-input .form-control': {\r\n border: `2px solid ${tokens.colorPaletteRedBorder2}`,\r\n },\r\n '& .react-tel-input .form-control:focus': {\r\n border: `2px solid ${tokens.colorPaletteRedBorder2}`,\r\n boxShadow: `0 0 0 1px ${tokens.colorPaletteRedBorder2}`,\r\n },\r\n },\r\n classRadioGroup: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n gap: '12px',\r\n },\r\n classRadio: {\r\n '& .fui-Radio__indicator': {\r\n display: 'none',\r\n },\r\n '& .fui-Radio__label': {\r\n padding: '10px 24px',\r\n border: `1px solid ${tokens.colorNeutralStroke1}`,\r\n borderRadius: tokens.borderRadiusCircular,\r\n cursor: 'pointer',\r\n transition: 'all 0.2s ease',\r\n fontSize: tokens.fontSizeBase300,\r\n color: tokens.colorNeutralForeground2,\r\n },\r\n '&:hover .fui-Radio__label': {\r\n backgroundColor: tokens.colorNeutralBackground1Hover,\r\n border: `1px solid ${tokensV2.lightModeColors.Brand_Stroke_1_Rest}`,\r\n },\r\n '& .fui-Radio__input:checked ~ .fui-Radio__label': {\r\n borderRadius: tokens.borderRadiusXLarge,\r\n border: `1px solid ${tokensV2.lightModeColors.Brand_Stroke_1_Rest}`,\r\n color: tokensV2.lightModeColors.Brand_Stroke_1_Rest,\r\n backgroundColor: 'transparent',\r\n },\r\n // Fallback for aria-checked if needed\r\n '&[aria-checked=\"true\"] .fui-Radio__label': {\r\n borderRadius: tokens.borderRadiusXLarge,\r\n border: `1px solid ${tokensV2.lightModeColors.Brand_Stroke_1_Rest}`,\r\n color: tokensV2.lightModeColors.Brand_Stroke_1_Rest,\r\n backgroundColor: 'transparent',\r\n },\r\n },\r\n});\r\n\r\n// Default country codes\r\nexport const DEFAULT_COUNTRY_CODES: CountryCode[] = [\r\n { code: 'AF', name: 'Afghanistan', dialCode: '+93', passportRegex: '^[A-Z][0-9]{7}$' },\r\n { code: 'AL', name: 'Albania', dialCode: '+355', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'DZ', name: 'Algeria', dialCode: '+213', passportRegex: '^[0-9]{9}$' },\r\n { code: 'AS', name: 'American Samoa', dialCode: '+1', passportRegex: '^[0-9]{9}$' },\r\n { code: 'AD', name: 'Andorra', dialCode: '+376', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'AO', name: 'Angola', dialCode: '+244', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'AI', name: 'Anguilla', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'AQ', name: 'Antarctica', dialCode: '+672', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'AG', name: 'Antigua and Barbuda', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'AR', name: 'Argentina', dialCode: '+54', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\r\n { code: 'AM', name: 'Armenia', dialCode: '+374', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'AW', name: 'Aruba', dialCode: '+297', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'AU', name: 'Australia', dialCode: '+61', passportRegex: '^[A-Z][0-9]{7}$' },\r\n { code: 'AT', name: 'Austria', dialCode: '+43', passportRegex: '^[A-Z0-9]{8}$' },\r\n { code: 'AZ', name: 'Azerbaijan', dialCode: '+994', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'BS', name: 'Bahamas', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BH', name: 'Bahrain', dialCode: '+973', passportRegex: '^[A-Z][0-9]{7}$' },\r\n { code: 'BD', name: 'Bangladesh', dialCode: '+880', passportRegex: '^[A-Z][0-9]{7}$' },\r\n { code: 'BB', name: 'Barbados', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BY', name: 'Belarus', dialCode: '+375', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BE', name: 'Belgium', dialCode: '+32', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BZ', name: 'Belize', dialCode: '+501', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BJ', name: 'Benin', dialCode: '+229', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'BM', name: 'Bermuda', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'BT', name: 'Bhutan', dialCode: '+975', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BO', name: 'Bolivia', dialCode: '+591', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n {\r\n code: 'BA',\r\n name: 'Bosnia and Herzegovina',\r\n dialCode: '+387',\r\n passportRegex: '^[A-Z]{2}[0-9]{6}$',\r\n },\r\n { code: 'BW', name: 'Botswana', dialCode: '+267', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BR', name: 'Brazil', dialCode: '+55', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'BN', name: 'Brunei', dialCode: '+673', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BG', name: 'Bulgaria', dialCode: '+359', passportRegex: '^[0-9]{9}$' },\r\n { code: 'BF', name: 'Burkina Faso', dialCode: '+226', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'BI', name: 'Burundi', dialCode: '+257', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n\r\n { code: 'KH', name: 'Cambodia', dialCode: '+855', passportRegex: '^[A-Z][0-9]{7}$' },\r\n { code: 'CM', name: 'Cameroon', dialCode: '+237', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'CA', name: 'Canada', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'CV', name: 'Cape Verde', dialCode: '+238', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'KY', name: 'Cayman Islands', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n {\r\n code: 'CF',\r\n name: 'Central African Republic',\r\n dialCode: '+236',\r\n passportRegex: '^[A-Z0-9]{6,10}$',\r\n },\r\n { code: 'TD', name: 'Chad', dialCode: '+235', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'CL', name: 'Chile', dialCode: '+56', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'CN', name: 'China', dialCode: '+86', passportRegex: '^[0-9]{9}$' },\r\n { code: 'CO', name: 'Colombia', dialCode: '+57', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\r\n { code: 'KM', name: 'Comoros', dialCode: '+269', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'CG', name: 'Congo', dialCode: '+242', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'CR', name: 'Costa Rica', dialCode: '+506', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'HR', name: 'Croatia', dialCode: '+385', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\r\n { code: 'CU', name: 'Cuba', dialCode: '+53', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'CY', name: 'Cyprus', dialCode: '+357', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'CZ', name: 'Czech Republic', dialCode: '+420', passportRegex: '^[0-9]{8}$' },\r\n\r\n { code: 'DK', name: 'Denmark', dialCode: '+45', passportRegex: '^[A-Z0-9]{9}$' },\r\n { code: 'DJ', name: 'Djibouti', dialCode: '+253', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'DM', name: 'Dominica', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'DO', name: 'Dominican Republic', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n\r\n { code: 'EC', name: 'Ecuador', dialCode: '+593', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'EG', name: 'Egypt', dialCode: '+20', passportRegex: '^[A-Z][0-9]{7}$' },\r\n { code: 'SV', name: 'El Salvador', dialCode: '+503', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'GQ', name: 'Equatorial Guinea', dialCode: '+240', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'ER', name: 'Eritrea', dialCode: '+291', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'EE', name: 'Estonia', dialCode: '+372', passportRegex: '^[A-Z0-9]{8}$' },\r\n { code: 'SZ', name: 'Eswatini', dialCode: '+268', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'ET', name: 'Ethiopia', dialCode: '+251', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n\r\n { code: 'FJ', name: 'Fiji', dialCode: '+679', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'FI', name: 'Finland', dialCode: '+358', passportRegex: '^[A-Z0-9]{9}$' },\r\n { code: 'FR', name: 'France', dialCode: '+33', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'GA', name: 'Gabon', dialCode: '+241', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'GM', name: 'Gambia', dialCode: '+220', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'GE', name: 'Georgia', dialCode: '+995', passportRegex: '^[A-Z0-9]{8}$' },\r\n { code: 'DE', name: 'Germany', dialCode: '+49', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'GH', name: 'Ghana', dialCode: '+233', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'GR', name: 'Greece', dialCode: '+30', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'GD', name: 'Grenada', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'GT', name: 'Guatemala', dialCode: '+502', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\r\n { code: 'GN', name: 'Guinea', dialCode: '+224', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'GW', name: 'Guinea-Bissau', dialCode: '+245', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'GY', name: 'Guyana', dialCode: '+592', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'HT', name: 'Haiti', dialCode: '+509', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'HN', name: 'Honduras', dialCode: '+504', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'HK', name: 'Hong Kong', dialCode: '+852', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'HU', name: 'Hungary', dialCode: '+36', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n\r\n { code: 'IS', name: 'Iceland', dialCode: '+354', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'IN', name: 'India', dialCode: '+91', passportRegex: '^[A-Z][0-9]{7}$' },\r\n { code: 'ID', name: 'Indonesia', dialCode: '+62', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'IR', name: 'Iran', dialCode: '+98', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'IQ', name: 'Iraq', dialCode: '+964', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'IE', name: 'Ireland', dialCode: '+353', passportRegex: '^[A-Z0-9]{2}[0-9]{7}$' },\r\n { code: 'IL', name: 'Israel', dialCode: '+972', passportRegex: '^[0-9]{8,9}$' },\r\n { code: 'IT', name: 'Italy', dialCode: '+39', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'JM', name: 'Jamaica', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'JP', name: 'Japan', dialCode: '+81', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'JO', name: 'Jordan', dialCode: '+962', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'KZ', name: 'Kazakhstan', dialCode: '+7', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'KE', name: 'Kenya', dialCode: '+254', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'KI', name: 'Kiribati', dialCode: '+686', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'KP', name: 'North Korea', dialCode: '+850', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'KR', name: 'South Korea', dialCode: '+82', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\r\n { code: 'KW', name: 'Kuwait', dialCode: '+965', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'KG', name: 'Kyrgyzstan', dialCode: '+996', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'LA', name: 'Laos', dialCode: '+856', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'LV', name: 'Latvia', dialCode: '+371', passportRegex: '^[A-Z0-9]{8}$' },\r\n { code: 'LB', name: 'Lebanon', dialCode: '+961', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'LS', name: 'Lesotho', dialCode: '+266', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'LR', name: 'Liberia', dialCode: '+231', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'LY', name: 'Libya', dialCode: '+218', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'LI', name: 'Liechtenstein', dialCode: '+423', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'LT', name: 'Lithuania', dialCode: '+370', passportRegex: '^[A-Z0-9]{8}$' },\r\n { code: 'LU', name: 'Luxembourg', dialCode: '+352', passportRegex: '^[A-Z0-9]{8}$' },\r\n\r\n { code: 'MO', name: 'Macau', dialCode: '+853', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'MG', name: 'Madagascar', dialCode: '+261', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'MW', name: 'Malawi', dialCode: '+265', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'MY', name: 'Malaysia', dialCode: '+60', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\r\n { code: 'MV', name: 'Maldives', dialCode: '+960', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'ML', name: 'Mali', dialCode: '+223', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'MT', name: 'Malta', dialCode: '+356', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'MH', name: 'Marshall Islands', dialCode: '+692', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'MQ', name: 'Martinique', dialCode: '+596', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'MR', name: 'Mauritania', dialCode: '+222', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'MU', name: 'Mauritius', dialCode: '+230', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'MX', name: 'Mexico', dialCode: '+52', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\r\n { code: 'FM', name: 'Micronesia', dialCode: '+691', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'MD', name: 'Moldova', dialCode: '+373', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'MC', name: 'Monaco', dialCode: '+377', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'MN', name: 'Mongolia', dialCode: '+976', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'ME', name: 'Montenegro', dialCode: '+382', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'MS', name: 'Montserrat', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'MA', name: 'Morocco', dialCode: '+212', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'MZ', name: 'Mozambique', dialCode: '+258', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n\r\n { code: 'MM', name: 'Myanmar', dialCode: '+95', passportRegex: '^[A-Z]{1}[0-9]{6,7}$' },\r\n\r\n { code: 'NA', name: 'Namibia', dialCode: '+264', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'NR', name: 'Nauru', dialCode: '+674', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'NP', name: 'Nepal', dialCode: '+977', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'NL', name: 'Netherlands', dialCode: '+31', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'NC', name: 'New Caledonia', dialCode: '+687', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'NZ', name: 'New Zealand', dialCode: '+64', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'NI', name: 'Nicaragua', dialCode: '+505', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\r\n { code: 'NE', name: 'Niger', dialCode: '+227', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'NG', name: 'Nigeria', dialCode: '+234', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'NO', name: 'Norway', dialCode: '+47', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'OM', name: 'Oman', dialCode: '+968', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n\r\n { code: 'PK', name: 'Pakistan', dialCode: '+92', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'PW', name: 'Palau', dialCode: '+680', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'PS', name: 'Palestine', dialCode: '+970', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'PA', name: 'Panama', dialCode: '+507', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'PG', name: 'Papua New Guinea', dialCode: '+675', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'PY', name: 'Paraguay', dialCode: '+595', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'PE', name: 'Peru', dialCode: '+51', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'PH', name: 'Philippines', dialCode: '+63', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'PL', name: 'Poland', dialCode: '+48', passportRegex: '^[A-Z0-9]{2}[0-9]{7}$' },\r\n { code: 'PT', name: 'Portugal', dialCode: '+351', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n\r\n { code: 'RO', name: 'Romania', dialCode: '+40', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'RU', name: 'Russia', dialCode: '+7', passportRegex: '^[0-9]{9}$' },\r\n { code: 'RW', name: 'Rwanda', dialCode: '+250', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n\r\n {\r\n code: 'KN',\r\n name: 'Saint Kitts and Nevis',\r\n dialCode: '+1',\r\n passportRegex: '^[A-Z]{2}[0-9]{7}$',\r\n },\r\n { code: 'LC', name: 'Saint Lucia', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n {\r\n code: 'VC',\r\n name: 'Saint Vincent and the Grenadines',\r\n dialCode: '+1',\r\n passportRegex: '^[A-Z]{2}[0-9]{7}$',\r\n },\r\n\r\n { code: 'WS', name: 'Samoa', dialCode: '+685', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'SM', name: 'San Marino', dialCode: '+378', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n {\r\n code: 'ST',\r\n name: 'Sao Tome and Principe',\r\n dialCode: '+239',\r\n passportRegex: '^[A-Z0-9]{6,10}$',\r\n },\r\n\r\n { code: 'SA', name: 'Saudi Arabia', dialCode: '+966', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'SN', name: 'Senegal', dialCode: '+221', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'RS', name: 'Serbia', dialCode: '+381', passportRegex: '^[A-Z0-9]{9}$' },\r\n { code: 'SC', name: 'Seychelles', dialCode: '+248', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'SL', name: 'Sierra Leone', dialCode: '+232', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'SG', name: 'Singapore', dialCode: '+65', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'SK', name: 'Slovakia', dialCode: '+421', passportRegex: '^[0-9]{9}$' },\r\n { code: 'SI', name: 'Slovenia', dialCode: '+386', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'SB', name: 'Solomon Islands', dialCode: '+677', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'SO', name: 'Somalia', dialCode: '+252', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'ZA', name: 'South Africa', dialCode: '+27', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'ES', name: 'Spain', dialCode: '+34', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\r\n { code: 'LK', name: 'Sri Lanka', dialCode: '+94', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'SD', name: 'Sudan', dialCode: '+249', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'SR', name: 'Suriname', dialCode: '+597', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'SE', name: 'Sweden', dialCode: '+46', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'CH', name: 'Switzerland', dialCode: '+41', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'SY', name: 'Syria', dialCode: '+963', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n\r\n { code: 'TW', name: 'Taiwan', dialCode: '+886', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\r\n { code: 'TJ', name: 'Tajikistan', dialCode: '+992', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'TZ', name: 'Tanzania', dialCode: '+255', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'TH', name: 'Thailand', dialCode: '+66', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'TL', name: 'Timor-Leste', dialCode: '+670', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'TG', name: 'Togo', dialCode: '+228', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'TO', name: 'Tonga', dialCode: '+676', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'TT', name: 'Trinidad and Tobago', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'TN', name: 'Tunisia', dialCode: '+216', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'TR', name: 'Turkey', dialCode: '+90', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'TM', name: 'Turkmenistan', dialCode: '+993', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n {\r\n code: 'TC',\r\n name: 'Turks and Caicos Islands',\r\n dialCode: '+1',\r\n passportRegex: '^[A-Z0-9]{6,10}$',\r\n },\r\n { code: 'TV', name: 'Tuvalu', dialCode: '+688', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n\r\n { code: 'UG', name: 'Uganda', dialCode: '+256', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'UA', name: 'Ukraine', dialCode: '+380', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n {\r\n code: 'AE',\r\n name: 'United Arab Emirates',\r\n dialCode: '+971',\r\n passportRegex: '^[A-Z]{1}[0-9]{7}$',\r\n },\r\n { code: 'GB', name: 'United Kingdom', dialCode: '+44', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'US', name: 'United States', dialCode: '+1', passportRegex: '^[0-9]{9}$' },\r\n { code: 'UY', name: 'Uruguay', dialCode: '+598', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\r\n { code: 'UZ', name: 'Uzbekistan', dialCode: '+998', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'VU', name: 'Vanuatu', dialCode: '+678', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'VA', name: 'Vatican City', dialCode: '+379', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'VE', name: 'Venezuela', dialCode: '+58', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'VN', name: 'Vietnam', dialCode: '+84', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n\r\n { code: 'YE', name: 'Yemen', dialCode: '+967', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n\r\n { code: 'ZM', name: 'Zambia', dialCode: '+260', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'ZW', name: 'Zimbabwe', dialCode: '+263', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n];\r\n\r\n\r\n// Helper function to check if it's a valid phone number start\r\n// const isValidPhoneStart = (value: string): boolean => {\r\n// if (!value || value.length < 6) return false;\r\n\r\n// // Phone number patterns for international numbers:\r\n// // - Must be all digits\r\n// // - Length between 6-15 digits (international standard)\r\n// // - Common patterns: starts with 0, +, or direct country code (1-9)\r\n// const cleanValue = value.replace(/[\\s\\-\\(\\)]/g, ''); // Remove common phone formatting\r\n\r\n// // Check if it's all digits (after removing + at start if present)\r\n// const numericValue = cleanValue.replace(/^\\+/, '');\r\n// const isAllDigits = /^\\d+$/.test(numericValue);\r\n\r\n// // Must be all digits and have reasonable length for phone number (6-15 digits)\r\n// return isAllDigits && numericValue.length >= 6 && numericValue.length <= 15;\r\n// };\r\n\r\n// Helper function to detect input type for identity field\r\nconst detectIdentityType = (value: string): 'email' | 'phone' | 'id' => {\r\n if (!value) return 'id';\r\n\r\n // Ensure value is a string to prevent \"includes/startsWith is not a function\" errors\r\n const stringValue = String(value);\r\n\r\n // Check if it's an email (contains @)\r\n if (stringValue.includes('@')) return 'email';\r\n\r\n // Check if it's a phone number - starts with +\r\n if (stringValue.startsWith('+')) return 'phone';\r\n\r\n // Check if it's all numeric (phone without +)\r\n // This handles the case when PhoneInput returns just numbers\r\n // const isAllNumeric = /^\\d+$/.test(value);\r\n // if (isAllNumeric && value.length >= 10) return 'phone';\r\n\r\n // Otherwise it's an ID (KTP/SIM/Passport - mixed alphanumeric or short numbers)\r\n return 'id';\r\n};\r\n\r\nconst detectEmailOrPhone = (value: string): 'email' | 'phone' | 'none' => {\r\n if (!value) return 'none';\r\n\r\n // Check if it's an email (contains @)\r\n if (value.includes('@')) return 'email';\r\n\r\n // Check if it's a phone number - starts with +\r\n if (value.startsWith('+')) return 'phone';\r\n\r\n return 'none';\r\n};\r\n\r\n// Helper function khusus untuk emailOrPhone type - deteksi lebih strict\r\nconst detectEmailOrPhoneStrict = (value: string): 'email' | 'phone' | 'none' => {\r\n if (!value) return 'none';\r\n\r\n // Check if it's an email (contains @)\r\n if (value.includes('@')) return 'email';\r\n\r\n // Check if it's a phone number - starts with + (international format)\r\n if (value.startsWith('+')) return 'phone';\r\n\r\n // Check if it's Indonesian phone format starting with 0 (e.g., 08xxx)\r\n if (/^0\\d/.test(value)) return 'phone';\r\n\r\n // Check if it's Indonesian phone without + (e.g., 628xxx)\r\n if (/^62\\d/.test(value)) return 'phone';\r\n\r\n return 'none';\r\n};\r\n\r\nfunction InputDynamic<T extends FieldValues = FieldValues>({\r\n name,\r\n control,\r\n label,\r\n type,\r\n placeholder,\r\n required = false,\r\n disabled = false,\r\n options = [],\r\n multiple = false,\r\n accept,\r\n rows = 3,\r\n min,\r\n max,\r\n step,\r\n isMultiSelect = false,\r\n selectScrollbarColor,\r\n contentBefore,\r\n appearance = 'outline',\r\n validationRules,\r\n helperText,\r\n className,\r\n layout,\r\n size,\r\n onClick,\r\n style,\r\n countryCodes = DEFAULT_COUNTRY_CODES,\r\n defaultCountry = 'ID',\r\n maxLength,\r\n autoAdvance = false,\r\n otpIndex,\r\n hasError = false,\r\n autoComplete,\r\n onInput,\r\n contentAfter,\r\n onChange,\r\n}: InputDynamicProps<T>) {\r\n const styles = useStyles();\r\n const [showPassword, setShowPassword] = useState(false);\r\n const [isPhoneMode, setIsPhoneMode] = useState(false);\r\n const [emailOrPhoneType, setEmailOrPhoneType] = useState<'email' | 'phone' | 'none'>('none');\r\n const [identityType, setIdentityType] = useState<'email' | 'phone' | 'id'>('id');\r\n const [lastPhoneValue, setLastPhoneValue] = useState('');\r\n const [lastEmailOrPhoneValue, setLastEmailOrPhoneValue] = useState('');\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n const phoneInputRef = useRef<any>(null);\r\n const emailOrPhoneInputRef = useRef<any>(null);\r\n const shouldFocusRef = useRef(false);\r\n const isBackspaceNavigationRef = useRef(false);\r\n\r\n // Custom styles untuk react-select\r\n const getSelectStyles = (hasError: boolean) => ({\r\n menuPortal: (base: any) => ({\r\n ...base,\r\n zIndex: 9999999,\r\n borderRadius: tokens.borderRadiusMedium,\r\n }),\r\n control: (provided: any, state: any) => ({\r\n ...provided,\r\n borderColor: hasError\r\n ? tokens.colorPaletteRedBorder2\r\n : state.isFocused\r\n ? tokens.colorBrandStroke1\r\n : tokens.colorNeutralStroke1,\r\n borderRadius: tokens.borderRadiusMedium,\r\n minHeight: '40px',\r\n fontSize: tokens.fontSizeBase400,\r\n backgroundColor: tokens.colorNeutralBackground1,\r\n boxShadow: state.isFocused\r\n ? `0 0 0 2px ${hasError ? tokens.colorPaletteRedBorder2 : tokens.colorBrandStroke1}`\r\n : 'none',\r\n '&:hover': {\r\n borderColor: hasError ? tokens.colorPaletteRedBorder2 : tokens.colorNeutralStroke1Hover,\r\n },\r\n }),\r\n menu: (provided: any) => ({\r\n ...provided,\r\n border: `1px solid ${tokens.colorNeutralStroke1}`,\r\n borderRadius: tokens.borderRadiusMedium,\r\n zIndex: 9999,\r\n }),\r\n menuList: (provided: any) => ({\r\n ...provided,\r\n padding: 0, // Opsional: bersihkan padding agar scrollbar mepet ke pinggir\r\n maxHeight: '300px', // Pastikan ada limit height agar scrollbar muncul\r\n\r\n /* Targetkan Webkit Scrollbar di menuList */\r\n '&::-webkit-scrollbar': {\r\n width: '8px',\r\n display: 'block', // Pastikan tampil\r\n },\r\n '&::-webkit-scrollbar-track': {\r\n backgroundColor: tokens.colorNeutralBackground2,\r\n borderRadius: '4px',\r\n },\r\n '&::-webkit-scrollbar-thumb': {\r\n backgroundColor: selectScrollbarColor || tokens.colorNeutralStroke2,\r\n borderRadius: '4px',\r\n },\r\n '&::-webkit-scrollbar-thumb:hover': {\r\n backgroundColor: selectScrollbarColor || tokens.colorBrandBackground,\r\n },\r\n '&::-webkit-scrollbar-thumb:active': {\r\n backgroundColor: selectScrollbarColor || tokens.colorBrandBackgroundPressed,\r\n },\r\n }),\r\n option: (provided: any, state: any) => ({\r\n ...provided,\r\n fontSize: tokens.fontSizeBase300,\r\n color: state.isSelected\r\n ? tokens.colorNeutralForegroundOnBrand\r\n : tokens.colorNeutralForeground1,\r\n backgroundColor: state.isSelected\r\n ? tokens.colorBrandBackground\r\n : state.isFocused\r\n ? tokens.colorNeutralBackground1Hover\r\n : 'transparent',\r\n }),\r\n placeholder: (provided: any) => ({\r\n ...provided,\r\n color: tokens.colorNeutralForeground3,\r\n fontSize: tokens.fontSizeBase400,\r\n }),\r\n singleValue: (provided: any) => ({\r\n ...provided,\r\n color: tokens.colorNeutralForeground1,\r\n fontSize: tokens.fontSizeBase400,\r\n }),\r\n });\r\n\r\n // Focus the input when mode changes\r\n useEffect(() => {\r\n if (shouldFocusRef.current) {\r\n // Small delay to ensure the new input is mounted\r\n setTimeout(() => {\r\n // console.log(\r\n // 'Focusing input for type:',\r\n // identityType,\r\n // 'shouldFocusRef:',\r\n // shouldFocusRef.current,\r\n // );\r\n if (identityType === 'phone' && phoneInputRef.current) {\r\n // PhoneInput uses an internal input element\r\n const phoneInput = phoneInputRef.current.querySelector('input.form-control');\r\n if (phoneInput) {\r\n phoneInput.focus();\r\n // Set cursor to end of input\r\n const len = phoneInput.value.length;\r\n phoneInput.setSelectionRange(len, len);\r\n }\r\n } else if (inputRef.current) {\r\n inputRef.current.focus();\r\n // Set cursor to end of input only for text-like inputs\r\n // email, number, date, etc. don't support setSelectionRange\r\n const inputType = inputRef.current.type;\r\n if (\r\n inputType === 'text' ||\r\n inputType === 'tel' ||\r\n inputType === 'url' ||\r\n inputType === 'search'\r\n ) {\r\n const len = inputRef.current.value.length;\r\n inputRef.current.setSelectionRange(len, len);\r\n }\r\n }\r\n shouldFocusRef.current = false;\r\n }, 50);\r\n }\r\n }, [identityType]);\r\n\r\n // Focus handling for emailOrPhone type\r\n useEffect(() => {\r\n if (shouldFocusRef.current && type === 'emailOrPhone') {\r\n setTimeout(() => {\r\n if (emailOrPhoneType === 'phone' && emailOrPhoneInputRef.current) {\r\n const phoneInput = emailOrPhoneInputRef.current.querySelector('input.form-control');\r\n if (phoneInput) {\r\n phoneInput.focus();\r\n const len = phoneInput.value.length;\r\n phoneInput.setSelectionRange(len, len);\r\n }\r\n } else if (inputRef.current) {\r\n inputRef.current.focus();\r\n const inputType = inputRef.current.type;\r\n // Only use setSelectionRange on input types that support it\r\n if (\r\n inputType === 'text' ||\r\n inputType === 'tel' ||\r\n inputType === 'url' ||\r\n inputType === 'search'\r\n ) {\r\n const len = inputRef.current.value.length;\r\n inputRef.current.setSelectionRange(len, len);\r\n }\r\n }\r\n shouldFocusRef.current = false;\r\n }, 50);\r\n }\r\n }, [emailOrPhoneType, type]);\r\n\r\n // const updatePhoneMode = (value: any) => {\r\n // const stringValue = typeof value === 'string' ? value : value?.phoneNumber || '';\r\n // const nextMode = isValidPhoneStart(stringValue);\r\n // if (nextMode !== isPhoneMode) {\r\n // setIsPhoneMode(nextMode);\r\n // }\r\n // };\r\n\r\n const updateIdentityType = (value: any) => {\r\n const stringValue = typeof value === 'string' ? value : value?.phoneNumber || '';\r\n const detectedType = detectIdentityType(stringValue);\r\n if (detectedType !== identityType) {\r\n setIdentityType(detectedType);\r\n }\r\n };\r\n\r\n const updateEmailOrPhoneType = (value: any) => {\r\n const stringValue = typeof value === 'string' ? value : '';\r\n const detectedType = detectEmailOrPhoneStrict(stringValue);\r\n if (detectedType !== emailOrPhoneType) {\r\n setEmailOrPhoneType(detectedType);\r\n }\r\n };\r\n\r\n const renderInput = (field: any, error?: string) => {\r\n // Make border transparent when disabled and appearance is not outline/underline\r\n const shouldTransparentBorder =\r\n disabled && appearance !== 'outline' && appearance !== 'underline';\r\n\r\n const inputStyle = shouldTransparentBorder ? { ...style, border: 'transparent' } : style;\r\n\r\n const handleInputChange = (e: any) => {\r\n field.onChange(e);\r\n if (onChange) {\r\n onChange(e.target?.value ?? e);\r\n }\r\n };\r\n\r\n const commonProps = {\r\n ...field,\r\n onChange: handleInputChange,\r\n value: field.value ?? '',\r\n placeholder,\r\n disabled,\r\n appearance: error ? 'invalid' : appearance,\r\n size,\r\n contentBefore,\r\n onClick,\r\n style: inputStyle,\r\n maxLength,\r\n autoComplete: autoComplete || 'off',\r\n contentAfter,\r\n max,\r\n } as const;\r\n const otpMatch = /^otp(\\d+)$/.exec(String(name));\r\n const otpIndex = otpMatch ? parseInt(otpMatch[1], 10) : null;\r\n\r\n // Handle emailOrPhone type - khusus untuk email atau nomor HP saja\r\n if (type === 'emailOrPhone') {\r\n updateEmailOrPhoneType(field.value);\r\n\r\n const stringValue = typeof field.value === 'string' ? field.value : '';\r\n\r\n // Determine input type and placeholder based on detected type\r\n let inputType: 'text' | 'email' | 'tel' = 'text';\r\n let inputPlaceholder = placeholder || 'Email atau Nomor HP';\r\n\r\n if (emailOrPhoneType === 'email') {\r\n inputType = 'email';\r\n inputPlaceholder = placeholder || 'Email';\r\n } else if (emailOrPhoneType === 'phone') {\r\n inputType = 'tel';\r\n inputPlaceholder = placeholder || 'Nomor HP';\r\n }\r\n\r\n // Normalize Indonesian phone numbers: convert 08xxx to +628xxx\r\n const normalizePhoneNumber = (val: string): string => {\r\n if (!val) return val;\r\n // Convert 08xxx to +628xxx\r\n if (val.startsWith('08')) {\r\n return '+62' + val.substring(1);\r\n }\r\n // Convert 628xxx to +628xxx\r\n if (val.startsWith('62') && !val.startsWith('+')) {\r\n return '+' + val;\r\n }\r\n return val;\r\n };\r\n\r\n // Clean phone value: remove leading zero after country code\r\n const cleanPhoneValue = (val: string): string => {\r\n if (!val) return val;\r\n const match = val.match(/^(\\d{1,4})(0\\d+)$/);\r\n if (match) {\r\n return match[1] + match[2].substring(1);\r\n }\r\n return val;\r\n };\r\n\r\n const displayValue =\r\n emailOrPhoneType === 'phone' ? cleanPhoneValue(stringValue) : stringValue;\r\n\r\n return (\r\n <div className={styles.phoneContainer}>\r\n {emailOrPhoneType === 'phone' ? (\r\n <div\r\n ref={emailOrPhoneInputRef}\r\n className={`${styles.phoneInputWrapper} ${error ? styles.phoneInputError : ''}`}\r\n >\r\n <PhoneInput\r\n country={defaultCountry.toLowerCase()}\r\n value={stringValue.startsWith('+') ? stringValue.substring(1) : stringValue}\r\n onChange={(value: string, data: any) => {\r\n if (!value) {\r\n shouldFocusRef.current = true;\r\n field.onChange('');\r\n updateEmailOrPhoneType('');\r\n setLastEmailOrPhoneValue('');\r\n return;\r\n }\r\n\r\n const countryDialCode = data?.dialCode || '';\r\n\r\n if (value === countryDialCode) {\r\n const dialCodeChanged =\r\n lastEmailOrPhoneValue &&\r\n lastEmailOrPhoneValue !== countryDialCode &&\r\n !lastEmailOrPhoneValue.startsWith(countryDialCode);\r\n\r\n const isInitial = !lastEmailOrPhoneValue;\r\n const wasFullNumber = lastEmailOrPhoneValue && lastEmailOrPhoneValue.length > 3;\r\n\r\n if (isInitial || dialCodeChanged || wasFullNumber) {\r\n const phoneValue = '+' + value;\r\n field.onChange(phoneValue);\r\n updateEmailOrPhoneType(phoneValue);\r\n setLastEmailOrPhoneValue(value);\r\n return;\r\n } else {\r\n shouldFocusRef.current = true;\r\n field.onChange('');\r\n updateEmailOrPhoneType('');\r\n setLastEmailOrPhoneValue('');\r\n return;\r\n }\r\n }\r\n\r\n const phoneValue = '+' + value;\r\n field.onChange(phoneValue);\r\n updateEmailOrPhoneType(phoneValue);\r\n setLastEmailOrPhoneValue(value);\r\n }}\r\n placeholder={inputPlaceholder}\r\n disabled={disabled}\r\n enableSearch\r\n />\r\n </div>\r\n ) : (\r\n <Input\r\n ref={inputRef}\r\n value={stringValue}\r\n maxLength={maxLength}\r\n autoComplete={autoComplete || 'off'}\r\n onChange={(e: any) => {\r\n const newValue = e.target.value;\r\n const willSwitchType = emailOrPhoneType !== detectEmailOrPhoneStrict(newValue);\r\n\r\n if (willSwitchType) shouldFocusRef.current = true;\r\n\r\n // Auto-normalize phone numbers for Indonesian format\r\n let normalizedValue = newValue;\r\n const detectedType = detectEmailOrPhoneStrict(newValue);\r\n if (detectedType === 'phone') {\r\n normalizedValue = normalizePhoneNumber(newValue);\r\n }\r\n\r\n field.onChange(normalizedValue);\r\n updateEmailOrPhoneType(normalizedValue);\r\n }}\r\n placeholder={inputPlaceholder}\r\n disabled={disabled}\r\n appearance={appearance}\r\n size={size}\r\n type={inputType}\r\n style={{ width: '100%' }}\r\n />\r\n )}\r\n </div>\r\n );\r\n }\r\n\r\n // If this is an identity type, check and update mode\r\n if (type === 'identity') {\r\n // update type whenever value changes\r\n updateIdentityType(field.value);\r\n\r\n const stringValue = typeof field.value === 'string' ? field.value : '';\r\n\r\n // Determine input type and placeholder based on detected type\r\n let inputType: 'text' | 'email' | 'tel' | 'number' = 'text';\r\n let inputPlaceholder = placeholder || 'Email, KTP, SIM, Passport, atau Nomor Telepon';\r\n\r\n if (identityType === 'email') {\r\n inputType = 'email';\r\n inputPlaceholder = placeholder || 'Email';\r\n } else if (identityType === 'phone') {\r\n inputType = 'tel';\r\n inputPlaceholder = placeholder || 'Nomor telepon';\r\n } else if (identityType === 'id') {\r\n inputType = 'text';\r\n inputPlaceholder = placeholder || 'KTP, SIM, atau Passport';\r\n }\r\n\r\n // Clean phone value: remove leading zero after country code\r\n const cleanPhoneValue = (val: string): string => {\r\n if (!val) return val;\r\n // Ensure val is a string to prevent \"match is not a function\" error\r\n const stringVal = String(val);\r\n // Check if value starts with common country codes followed by 0\r\n // E.g., 6208... should become 628...\r\n const match = stringVal.match(/^(\\d{1,4})(0\\d+)$/);\r\n if (match) {\r\n return match[1] + match[2].substring(1);\r\n }\r\n return stringVal;\r\n };\r\n\r\n const displayValue = identityType === 'phone' ? cleanPhoneValue(stringValue) : stringValue;\r\n\r\n return (\r\n <div className={styles.phoneContainer}>\r\n {identityType === 'phone' ? (\r\n <div\r\n ref={phoneInputRef}\r\n className={`${styles.phoneInputWrapper} ${error ? styles.phoneInputError : ''}`}\r\n >\r\n <PhoneInput\r\n country={defaultCountry.toLowerCase()}\r\n value={stringValue.startsWith('+') ? stringValue.substring(1) : stringValue}\r\n onChange={(value: string, data: any) => {\r\n // If completely empty, switch back to id mode\r\n if (!value) {\r\n shouldFocusRef.current = true;\r\n field.onChange('');\r\n updateIdentityType('');\r\n setLastPhoneValue('');\r\n return;\r\n }\r\n\r\n // Get the country dial code\r\n const countryDialCode = data?.dialCode || '';\r\n\r\n // If value is just the country code\r\n if (value === countryDialCode) {\r\n // Check if dial code changed (user is changing country)\r\n const dialCodeChanged =\r\n lastPhoneValue &&\r\n lastPhoneValue !== countryDialCode &&\r\n !lastPhoneValue.startsWith(countryDialCode);\r\n\r\n // Check if this is initial state (user just typed +)\r\n const isInitial = !lastPhoneValue;\r\n\r\n // Check if user had a full number and now changing country\r\n const wasFullNumber = lastPhoneValue && lastPhoneValue.length > 3;\r\n\r\n if (isInitial || dialCodeChanged || wasFullNumber) {\r\n // Keep in phone mode\r\n const phoneValue = '+' + value;\r\n field.onChange(phoneValue);\r\n updateIdentityType(phoneValue);\r\n setLastPhoneValue(value);\r\n return;\r\n } else {\r\n // User is deleting digits back to dial code only - switch to ID\r\n shouldFocusRef.current = true; // Set focus flag before switching\r\n field.onChange('');\r\n updateIdentityType('');\r\n setLastPhoneValue('');\r\n return;\r\n }\r\n }\r\n\r\n // PhoneInput returns value without +, so we add it\r\n const phoneValue = '+' + value;\r\n\r\n field.onChange(phoneValue);\r\n updateIdentityType(phoneValue);\r\n setLastPhoneValue(value);\r\n }}\r\n placeholder={inputPlaceholder}\r\n disabled={disabled}\r\n enableSearch\r\n disableSearchIcon\r\n />\r\n </div>\r\n ) : (\r\n <Input\r\n ref={inputRef}\r\n value={stringValue}\r\n maxLength={maxLength}\r\n autoComplete={autoComplete || 'off'}\r\n onChange={(e: any) => {\r\n const newValue = e.target.value;\r\n const willSwitchType = identityType !== detectIdentityType(newValue);\r\n\r\n if (willSwitchType) shouldFocusRef.current = true;\r\n\r\n field.onChange(newValue);\r\n\r\n // Update type whenever input changes\r\n updateIdentityType(newValue);\r\n }}\r\n placeholder={inputPlaceholder}\r\n disabled={disabled}\r\n appearance={appearance}\r\n size={size}\r\n type={inputType}\r\n style={{ width: '100%' }}\r\n />\r\n )}\r\n </div>\r\n );\r\n }\r\n\r\n switch (type) {\r\n case 'textarea':\r\n return <Textarea {...commonProps} rows={rows} resize=\"vertical\" />;\r\n\r\n case 'select':\r\n return (\r\n <Select\r\n {...field}\r\n name={`${String(name)}_${Math.random().toString(36).substring(7)}`}\r\n isDisabled={disabled}\r\n placeholder={placeholder}\r\n options={options}\r\n styles={getSelectStyles(!!error)}\r\n className={styles.reactSelect}\r\n classNamePrefix=\"react-select\"\r\n isMulti={isMultiSelect}\r\n inputProps={{\r\n autoComplete: 'new-password',\r\n autoCorrect: 'off',\r\n autoCapitalize: 'off',\r\n spellCheck: 'false',\r\n }}\r\n value={\r\n isMultiSelect\r\n ? options.filter(option => field.value?.includes(option.value))\r\n : options.find(option => option.value === field.value) || null\r\n }\r\n onChange={(selectedOption: any) => {\r\n if (isMultiSelect) {\r\n const values = selectedOption\r\n ? selectedOption.map((opt: SelectOption) => opt.value)\r\n : [];\r\n field.onChange(values);\r\n } else {\r\n field.onChange(selectedOption ? selectedOption.value : '');\r\n }\r\n }}\r\n getOptionLabel={(option: SelectOption) => option.label}\r\n getOptionValue={(option: SelectOption) => option.value}\r\n isOptionDisabled={(option: SelectOption) => option.disabled || false}\r\n \r\n />\r\n );\r\n\r\n case 'phone': {\r\n // Clean phone value: remove leading zero after country code\r\n const cleanPhoneValue = (val: string): string => {\r\n if (!val) return val;\r\n // Ensure val is a string to prevent \"match is not a function\" error\r\n const stringVal = String(val);\r\n // Check if value starts with common country codes followed by 0\r\n const match = stringVal.match(/^(\\d{1,4})(0\\d+)$/);\r\n if (match) {\r\n return match[1] + match[2].substring(1);\r\n }\r\n return stringVal;\r\n };\r\n\r\n const cleanedFieldValue = cleanPhoneValue(field.value || '');\r\n\r\n return (\r\n <div className={`${styles.phoneInputWrapper} ${error ? styles.phoneInputError : ''}`}>\r\n <PhoneInput\r\n country={defaultCountry.toLowerCase()}\r\n value={cleanedFieldValue}\r\n onChange={(value: string, data: any) => {\r\n const cleanedValue = cleanPhoneValue(value || '');\r\n field.onChange(cleanedValue);\r\n }}\r\n placeholder={placeholder || 'Nomor telepon'}\r\n disabled={disabled}\r\n enableSearch\r\n disableSearchIcon\r\n />\r\n </div>\r\n );\r\n }\r\n\r\n case 'passport': {\r\n const passportValue: PhoneValue = field.value || {\r\n countryCode: defaultCountry,\r\n phoneNumber: '',\r\n };\r\n\r\n const countryOptions = countryCodes.map(country => ({\r\n value: country.code,\r\n label: country.name,\r\n code: country.code,\r\n passportRegex: country.passportRegex,\r\n }));\r\n\r\n const formatOptionLabel = (option: any) => (\r\n <div style={{ display: 'flex', alignItems: 'center', gap: '8px' }}>\r\n <span style={{ fontSize: '18px' }}>\r\n {String.fromCodePoint(\r\n ...option.code.split('').map((char: string) => 127397 + char.charCodeAt(0)),\r\n )}\r\n </span>\r\n <span>{option.label}</span>\r\n </div>\r\n );\r\n\r\n const selectedCountry = countryOptions.find(opt => opt.value === passportValue.countryCode);\r\n const isCountrySelected = !!selectedCountry;\r\n\r\n return (\r\n <div className={styles.phoneContainer}>\r\n <div className={styles.phoneCountrySelect}>\r\n <Select\r\n value={selectedCountry || null}\r\n onChange={(selectedOption: any) => {\r\n field.onChange({\r\n ...passportValue,\r\n countryCode: selectedOption ? selectedOption.value : defaultCountry,\r\n });\r\n }}\r\n options={countryOptions}\r\n isDisabled={disabled}\r\n placeholder=\"ðŸ³ï¸\"\r\n styles={getSelectStyles(!!error)}\r\n isSearchable\r\n formatOptionLabel={formatOptionLabel}\r\n />\r\n </div>\r\n <div style={{ flex: 1, minWidth: 0 }}>\r\n <Input\r\n value={passportValue.phoneNumber}\r\n maxLength={maxLength}\r\n autoComplete={autoComplete || 'off'}\r\n onChange={(e: any) => {\r\n field.onChange({\r\n ...passportValue,\r\n phoneNumber: e.target.value,\r\n });\r\n }}\r\n placeholder={placeholder || 'Nomor paspor'}\r\n disabled={disabled || !isCountrySelected}\r\n appearance={appearance}\r\n size={size}\r\n type=\"text\"\r\n style={{ width: '100%' }}\r\n />\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n case 'file':\r\n return (\r\n <input\r\n {...field}\r\n type=\"file\"\r\n multiple={multiple}\r\n accept={accept}\r\n disabled={disabled}\r\n className={styles.fileInput}\r\n value={undefined}\r\n onChange={e => {\r\n const files = e.target.files;\r\n field.onChange(multiple ? files : files?.[0]);\r\n }}\r\n />\r\n );\r\n\r\n case 'switch':\r\n return (\r\n <div className={styles.switchWrapper}>\r\n <Switch\r\n {...field}\r\n checked={field.value || false}\r\n disabled={disabled}\r\n onChange={(_, data) => field.onChange(data.checked)}\r\n />\r\n </div>\r\n );\r\n\r\n case 'date':\r\n return <DatePickerInput {...commonProps} field={field} />;\r\n\r\n case 'radio':\r\n return (\r\n <RadioGroup {...field} disabled={disabled} layout={layout ?? 'vertical'}>\r\n {options.map(option => (\r\n <Radio\r\n key={option.value}\r\n value={option.value}\r\n label={option.label}\r\n disabled={option.disabled}\r\n />\r\n ))}\r\n </RadioGroup>\r\n );\r\n\r\n case 'radiobutton':\r\n return (\r\n <RadioGroup\r\n {...field}\r\n disabled={disabled}\r\n layout={layout ?? 'horizontal'}\r\n className={styles.classRadioGroup}\r\n >\r\n {options.map(option => (\r\n <Radio\r\n key={option.value}\r\n value={option.value}\r\n label={option.label}\r\n disabled={option.disabled}\r\n className={styles.classRadio}\r\n />\r\n ))}\r\n </RadioGroup>\r\n );\r\n\r\n case 'checkbox':\r\n return (\r\n <Checkbox\r\n {...field}\r\n checked={field.value || false}\r\n disabled={disabled}\r\n onChange={(_, data) => field.onChange(data.checked)}\r\n label={label}\r\n />\r\n );\r\n\r\n case 'number':\r\n return (\r\n <Input\r\n {...commonProps}\r\n type=\"number\"\r\n min={min}\r\n max={max}\r\n step={step}\r\n className={styles.inputWithAutocomplete}\r\n />\r\n );\r\n\r\n case 'time':\r\n case 'datetime-local':\r\n return (\r\n <Input\r\n {...commonProps}\r\n type={type}\r\n min={min}\r\n max={max}\r\n className={styles.inputWithAutocomplete}\r\n />\r\n );\r\n\r\n case 'password':\r\n return (\r\n <Input\r\n {...commonProps}\r\n type={showPassword ? 'text' : 'password'}\r\n className={styles.inputWithAutocomplete}\r\n contentAfter={\r\n <Button\r\n appearance=\"transparent\"\r\n icon={\r\n showPassword ? (\r\n <Icon icon=\"fluent:eye-off-24-filled\" />\r\n ) : (\r\n <Icon icon=\"fluent:eye-24-filled\" />\r\n )\r\n }\r\n aria-label={showPassword ? 'Hide password' : 'Show password'}\r\n onClick={() => setShowPassword(!showPassword)}\r\n tabIndex={-1}\r\n type=\"button\"\r\n />\r\n }\r\n />\r\n );\r\n\r\n case 'otp': {\r\n // OTP specific handling\r\n const setRefs = (el: any) => {\r\n try {\r\n if (field.ref) {\r\n if (typeof field.ref === 'function') field.ref(el);\r\n else (field.ref as MutableRefObject<any>).current = el;\r\n }\r\n } catch {\r\n /* ignore */\r\n }\r\n (inputRef as MutableRefObject<HTMLInputElement | null>).current = el;\r\n };\r\n\r\n const handleChange = (e: any) => {\r\n const val = e?.target?.value ?? '';\r\n const numericValue = val.replace(/\\D/g, '');\r\n\r\n // Update nilai input langsung\r\n if (inputRef.current) {\r\n inputRef.current.value = numericValue;\r\n }\r\n\r\n // Buat event baru dengan nilai numeric\r\n const numericEvent = {\r\n ...e,\r\n target: {\r\n ...e.target,\r\n value: numericValue,\r\n },\r\n };\r\n\r\n field.onChange(numericEvent);\r\n\r\n if (autoAdvance && otpIndex && maxLength && numericValue.length >= maxLength) {\r\n const next = document.querySelector<HTMLInputElement>(\r\n `[data-otp-index=\"${otpIndex + 1}\"]`,\r\n );\r\n if (next) next.focus();\r\n }\r\n };\r\n\r\n const handleKeyPress = (e: any) => {\r\n const char = e.key;\r\n if (\r\n !/^\\d$/.test(char) &&\r\n char !== 'Backspace' &&\r\n char !== 'Delete' &&\r\n char !== 'Tab' &&\r\n char !== 'ArrowLeft' &&\r\n char !== 'ArrowRight'\r\n ) {\r\n e.preventDefault();\r\n }\r\n };\r\n\r\n const handleKeyDown = (e: any) => {\r\n if (e.key === 'Backspace') {\r\n const curVal = field.value || '';\r\n if (!curVal && otpIndex !== null && otpIndex !== undefined) {\r\n const prevIndex = otpIndex - 1;\r\n if (prevIndex >= 1) {\r\n // Set flag before focusing to prevent handleFocus interference\r\n isBackspaceNavigationRef.current = true;\r\n const prev = document.querySelector<HTMLInputElement>(\r\n `[data-otp-index=\"${prevIndex}\"]`,\r\n );\r\n if (prev) {\r\n prev.focus();\r\n // Flag will be reset in handleFocus after navigation completes\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n const handleClick = (e: any) => {\r\n // Prevent clicking on previous inputs - redirect to correct position\r\n if (otpIndex) {\r\n // Find the last filled input\r\n let lastFilledIndex = 0;\r\n for (let i = 1; i <= 6; i++) {\r\n const input = document.querySelector<HTMLInputElement>(`[data-otp-index=\"${i}\"]`);\r\n if (input && input.value) {\r\n lastFilledIndex = i;\r\n } else {\r\n break;\r\n }\r\n }\r\n\r\n // Determine target index: if all filled, stay on last; otherwise go to first empty\r\n const targetIndex = lastFilledIndex === 6 ? 6 : lastFilledIndex + 1;\r\n\r\n // If user clicks on any input before the target, redirect to target\r\n if (otpIndex < targetIndex) {\r\n e.preventDefault();\r\n const targetInput = document.querySelector<HTMLInputElement>(\r\n `[data-otp-index=\"${targetIndex}\"]`,\r\n );\r\n if (targetInput) {\r\n targetInput.focus();\r\n const length = targetInput.value?.length || 0;\r\n setTimeout(() => {\r\n targetInput.setSelectionRange(length, length);\r\n }, 0);\r\n }\r\n return;\r\n }\r\n }\r\n\r\n // If click on current input, ensure cursor is at the end\r\n if (inputRef.current) {\r\n const length = inputRef.current.value?.length || 0;\r\n setTimeout(() => {\r\n inputRef.current?.setSelectionRange(length, length);\r\n }, 0);\r\n }\r\n };\r\n\r\n const handleMouseDown = (e: any) => {\r\n // Track that user is clicking (not using keyboard navigation)\r\n isBackspaceNavigationRef.current = false;\r\n\r\n // Cegah seleksi teks dengan mouse\r\n if (field.value) {\r\n e.preventDefault();\r\n if (inputRef.current) {\r\n inputRef.current.focus();\r\n const length = inputRef.current.value.length;\r\n inputRef.current.setSelectionRange(length, length);\r\n }\r\n }\r\n };\r\n\r\n const handleSelect = (e: any) => {\r\n // Paksa kursor tetap di akhir\r\n if (inputRef.current && field.value) {\r\n const length = inputRef.current.value.length;\r\n inputRef.current.setSelectionRange(length, length);\r\n }\r\n };\r\n\r\n const handleFocus = (e: any) => {};\r\n\r\n const inputAttrs: any = {};\r\n if (otpIndex) inputAttrs['data-otp-index'] = otpIndex;\r\n\r\n // Default OTP styles\r\n const otpStyles = {\r\n height: '57px',\r\n borderRadius: tokens.borderRadiusXLarge,\r\n textAlign: 'center' as const,\r\n ...typographyStyles.title2,\r\n fontWeight: fontWeight.Medium,\r\n lineHeight: tokens.lineHeightHero800,\r\n borderColor: hasError ? sharedColors.Shared_Cranberry_Primary : undefined,\r\n ...style, // Allow override from props\r\n };\r\n\r\n return (\r\n <Input\r\n {...commonProps}\r\n type=\"tel\"\r\n onChange={handleChange}\r\n onKeyDown={handleKeyDown}\r\n onKeyPress={handleKeyPress}\r\n onClick={handleClick}\r\n onMouseDown={handleMouseDown}\r\n onSelect={handleSelect}\r\n onFocus={handleFocus}\r\n ref={setRefs}\r\n style={otpStyles}\r\n className={styles.otpInput}\r\n {...inputAttrs}\r\n />\r\n );\r\n }\r\n\r\n default:\r\n return (\r\n <Input\r\n {...commonProps}\r\n type={type}\r\n onInput={onInput}\r\n className={styles.inputWithAutocomplete}\r\n />\r\n );\r\n }\r\n };\r\n\r\n const getValidationRules = () => {\r\n const rules: any = {};\r\n\r\n if (required) {\r\n rules.required = validationRules?.required || 'Field ini wajib diisi';\r\n }\r\n\r\n if (validationRules?.minLength) {\r\n rules.minLength = validationRules.minLength;\r\n }\r\n\r\n if (validationRules?.maxLength) {\r\n rules.maxLength = validationRules.maxLength;\r\n }\r\n\r\n if (validationRules?.pattern) {\r\n rules.pattern = validationRules.pattern;\r\n }\r\n\r\n if (validationRules?.min) {\r\n rules.min = validationRules.min;\r\n }\r\n\r\n if (validationRules?.max) {\r\n rules.max = validationRules.max;\r\n }\r\n\r\n if (validationRules?.validate) {\r\n rules.validate = validationRules.validate;\r\n }\r\n\r\n // Add default email validation\r\n if (type === 'email') {\r\n rules.pattern = {\r\n value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i,\r\n message: 'Email tidak valid',\r\n };\r\n }\r\n\r\n // Add validation for emailOrPhone type - khusus email atau nomor HP\r\n if (type === 'emailOrPhone') {\r\n rules.validate = (value: any) => {\r\n if (required && !value) {\r\n return 'Email atau nomor HP wajib diisi';\r\n }\r\n\r\n const stringValue = typeof value === 'string' ? value : '';\r\n\r\n if (!stringValue) return true;\r\n\r\n const detectedType = detectEmailOrPhoneStrict(stringValue);\r\n\r\n if (detectedType === 'email') {\r\n // Validate email format\r\n if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i.test(stringValue)) {\r\n return 'Format email tidak valid';\r\n }\r\n } else if (detectedType === 'phone') {\r\n // Validate phone number (must start with + and contain only digits after)\r\n if (!stringValue.startsWith('+')) {\r\n return 'Nomor HP harus dalam format internasional (contoh: +628123456789)';\r\n }\r\n const phoneDigits = stringValue.substring(1);\r\n if (!/^\\d+$/.test(phoneDigits)) {\r\n return 'Nomor HP hanya boleh berisi angka setelah +';\r\n }\r\n if (phoneDigits.length < 10) {\r\n return 'Nomor HP minimal 10 digit';\r\n }\r\n } else {\r\n return 'Masukkan email atau nomor HP yang valid';\r\n }\r\n\r\n return true;\r\n };\r\n }\r\n\r\n // Add validation for identity type (can be email, phone, or other ID)\r\n if (type === 'identity') {\r\n rules.validate = (value: any) => {\r\n if (required && !value) {\r\n return 'Field ini wajib diisi';\r\n }\r\n\r\n const stringValue = typeof value === 'string' ? value : value?.phoneNumber || '';\r\n\r\n if (!stringValue) return true;\r\n\r\n const detectedType = detectIdentityType(stringValue);\r\n\r\n // Validate based on detected type\r\n if (detectedType === 'email') {\r\n // Validate email format\r\n if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i.test(stringValue)) {\r\n return 'Format email tidak valid';\r\n }\r\n } else if (detectedType === 'phone') {\r\n // Validate phone number (must start with + and contain only digits after)\r\n if (!stringValue.startsWith('+')) {\r\n return 'Nomor telepon harus diawali dengan +';\r\n }\r\n const phoneDigits = stringValue.substring(1); // Remove + prefix\r\n if (!/^\\d+$/.test(phoneDigits)) {\r\n return 'Nomor telepon hanya boleh berisi angka setelah +';\r\n }\r\n }\r\n // else if (detectedType === 'id') {\r\n // // Validate ID (only digits for KTP/SIM/Passport numbers)\r\n // if (!/^\\d+$/.test(stringValue)) {\r\n // return 'Nomor identitas hanya boleh berisi angka';\r\n // }\r\n // }\r\n\r\n return true;\r\n };\r\n }\r\n\r\n // Add default phone validation\r\n if (type === 'phone') {\r\n rules.validate = (value: string) => {\r\n if (required && !value) {\r\n return 'Nomor telepon wajib diisi';\r\n }\r\n // react-phone-number-input already handles validation\r\n return true;\r\n };\r\n }\r\n\r\n // Add passport validation with country-specific regex\r\n if (type === 'passport') {\r\n rules.validate = (value: PhoneValue) => {\r\n if (required && !value?.phoneNumber) {\r\n return 'Nomor paspor wajib diisi';\r\n }\r\n if (value?.phoneNumber) {\r\n const selectedCountry = countryCodes.find(c => c.code === value.countryCode);\r\n if (selectedCountry?.passportRegex) {\r\n const passportRegex = new RegExp(selectedCountry.passportRegex);\r\n if (!passportRegex.test(value.phoneNumber)) {\r\n return `Format paspor ${selectedCountry.name} tidak valid`;\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n }\r\n\r\n return rules;\r\n };\r\n\r\n return (\r\n <Controller\r\n name={name}\r\n control={control}\r\n rules={getValidationRules()}\r\n render={({ field, fieldState: { error } }) => (\r\n <Field\r\n className={`${styles.field} ${className || ''}`}\r\n validationMessage={error?.message}\r\n validationState={error ? 'error' : 'none'}\r\n >\r\n {label && type !== 'checkbox' && <Label required={required}>{label}</Label>}\r\n\r\n {renderInput(field, error?.message)}\r\n\r\n {helperText && !error && (\r\n <Text size={200} style={{ textAlign: 'left' }} className={styles.helperText}>\r\n {helperText}\r\n </Text>\r\n )}\r\n </Field>\r\n )}\r\n />\r\n );\r\n}\r\n\r\nexport default InputDynamic;\r\n\r\n","import { CountryCode } from './types';\n\n// Default country codes\r\nexport const DEFAULT_COUNTRY_CODES: CountryCode[] = [\r\n { code: 'AF', name: 'Afghanistan', dialCode: '+93', passportRegex: '^[A-Z][0-9]{7}$' },\r\n { code: 'AL', name: 'Albania', dialCode: '+355', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'DZ', name: 'Algeria', dialCode: '+213', passportRegex: '^[0-9]{9}$' },\r\n { code: 'AS', name: 'American Samoa', dialCode: '+1', passportRegex: '^[0-9]{9}$' },\r\n { code: 'AD', name: 'Andorra', dialCode: '+376', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'AO', name: 'Angola', dialCode: '+244', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'AI', name: 'Anguilla', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'AQ', name: 'Antarctica', dialCode: '+672', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'AG', name: 'Antigua and Barbuda', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'AR', name: 'Argentina', dialCode: '+54', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\r\n { code: 'AM', name: 'Armenia', dialCode: '+374', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'AW', name: 'Aruba', dialCode: '+297', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'AU', name: 'Australia', dialCode: '+61', passportRegex: '^[A-Z][0-9]{7}$' },\r\n { code: 'AT', name: 'Austria', dialCode: '+43', passportRegex: '^[A-Z0-9]{8}$' },\r\n { code: 'AZ', name: 'Azerbaijan', dialCode: '+994', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'BS', name: 'Bahamas', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BH', name: 'Bahrain', dialCode: '+973', passportRegex: '^[A-Z][0-9]{7}$' },\r\n { code: 'BD', name: 'Bangladesh', dialCode: '+880', passportRegex: '^[A-Z][0-9]{7}$' },\r\n { code: 'BB', name: 'Barbados', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BY', name: 'Belarus', dialCode: '+375', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BE', name: 'Belgium', dialCode: '+32', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BZ', name: 'Belize', dialCode: '+501', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BJ', name: 'Benin', dialCode: '+229', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'BM', name: 'Bermuda', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'BT', name: 'Bhutan', dialCode: '+975', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BO', name: 'Bolivia', dialCode: '+591', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n {\r\n code: 'BA',\r\n name: 'Bosnia and Herzegovina',\r\n dialCode: '+387',\r\n passportRegex: '^[A-Z]{2}[0-9]{6}$',\r\n },\r\n { code: 'BW', name: 'Botswana', dialCode: '+267', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BR', name: 'Brazil', dialCode: '+55', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'BN', name: 'Brunei', dialCode: '+673', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BG', name: 'Bulgaria', dialCode: '+359', passportRegex: '^[0-9]{9}$' },\r\n { code: 'BF', name: 'Burkina Faso', dialCode: '+226', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'BI', name: 'Burundi', dialCode: '+257', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n\r\n { code: 'KH', name: 'Cambodia', dialCode: '+855', passportRegex: '^[A-Z][0-9]{7}$' },\r\n { code: 'CM', name: 'Cameroon', dialCode: '+237', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'CA', name: 'Canada', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'CV', name: 'Cape Verde', dialCode: '+238', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'KY', name: 'Cayman Islands', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n {\r\n code: 'CF',\r\n name: 'Central African Republic',\r\n dialCode: '+236',\r\n passportRegex: '^[A-Z0-9]{6,10}$',\r\n },\r\n { code: 'TD', name: 'Chad', dialCode: '+235', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'CL', name: 'Chile', dialCode: '+56', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'CN', name: 'China', dialCode: '+86', passportRegex: '^[0-9]{9}$' },\r\n { code: 'CO', name: 'Colombia', dialCode: '+57', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\r\n { code: 'KM', name: 'Comoros', dialCode: '+269', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'CG', name: 'Congo', dialCode: '+242', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'CR', name: 'Costa Rica', dialCode: '+506', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'HR', name: 'Croatia', dialCode: '+385', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\r\n { code: 'CU', name: 'Cuba', dialCode: '+53', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'CY', name: 'Cyprus', dialCode: '+357', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'CZ', name: 'Czech Republic', dialCode: '+420', passportRegex: '^[0-9]{8}$' },\r\n\r\n { code: 'DK', name: 'Denmark', dialCode: '+45', passportRegex: '^[A-Z0-9]{9}$' },\r\n { code: 'DJ', name: 'Djibouti', dialCode: '+253', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'DM', name: 'Dominica', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'DO', name: 'Dominican Republic', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n\r\n { code: 'EC', name: 'Ecuador', dialCode: '+593', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'EG', name: 'Egypt', dialCode: '+20', passportRegex: '^[A-Z][0-9]{7}$' },\r\n { code: 'SV', name: 'El Salvador', dialCode: '+503', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'GQ', name: 'Equatorial Guinea', dialCode: '+240', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'ER', name: 'Eritrea', dialCode: '+291', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'EE', name: 'Estonia', dialCode: '+372', passportRegex: '^[A-Z0-9]{8}$' },\r\n { code: 'SZ', name: 'Eswatini', dialCode: '+268', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'ET', name: 'Ethiopia', dialCode: '+251', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n\r\n { code: 'FJ', name: 'Fiji', dialCode: '+679', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'FI', name: 'Finland', dialCode: '+358', passportRegex: '^[A-Z0-9]{9}$' },\r\n { code: 'FR', name: 'France', dialCode: '+33', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'GA', name: 'Gabon', dialCode: '+241', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'GM', name: 'Gambia', dialCode: '+220', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'GE', name: 'Georgia', dialCode: '+995', passportRegex: '^[A-Z0-9]{8}$' },\r\n { code: 'DE', name: 'Germany', dialCode: '+49', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'GH', name: 'Ghana', dialCode: '+233', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'GR', name: 'Greece', dialCode: '+30', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'GD', name: 'Grenada', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'GT', name: 'Guatemala', dialCode: '+502', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\r\n { code: 'GN', name: 'Guinea', dialCode: '+224', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'GW', name: 'Guinea-Bissau', dialCode: '+245', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'GY', name: 'Guyana', dialCode: '+592', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'HT', name: 'Haiti', dialCode: '+509', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'HN', name: 'Honduras', dialCode: '+504', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'HK', name: 'Hong Kong', dialCode: '+852', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'HU', name: 'Hungary', dialCode: '+36', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n\r\n { code: 'IS', name: 'Iceland', dialCode: '+354', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'IN', name: 'India', dialCode: '+91', passportRegex: '^[A-Z][0-9]{7}$' },\r\n { code: 'ID', name: 'Indonesia', dialCode: '+62', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'IR', name: 'Iran', dialCode: '+98', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'IQ', name: 'Iraq', dialCode: '+964', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'IE', name: 'Ireland', dialCode: '+353', passportRegex: '^[A-Z0-9]{2}[0-9]{7}$' },\r\n { code: 'IL', name: 'Israel', dialCode: '+972', passportRegex: '^[0-9]{8,9}$' },\r\n { code: 'IT', name: 'Italy', dialCode: '+39', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'JM', name: 'Jamaica', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'JP', name: 'Japan', dialCode: '+81', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'JO', name: 'Jordan', dialCode: '+962', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'KZ', name: 'Kazakhstan', dialCode: '+7', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'KE', name: 'Kenya', dialCode: '+254', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'KI', name: 'Kiribati', dialCode: '+686', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'KP', name: 'North Korea', dialCode: '+850', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'KR', name: 'South Korea', dialCode: '+82', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\r\n { code: 'KW', name: 'Kuwait', dialCode: '+965', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'KG', name: 'Kyrgyzstan', dialCode: '+996', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'LA', name: 'Laos', dialCode: '+856', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'LV', name: 'Latvia', dialCode: '+371', passportRegex: '^[A-Z0-9]{8}$' },\r\n { code: 'LB', name: 'Lebanon', dialCode: '+961', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'LS', name: 'Lesotho', dialCode: '+266', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'LR', name: 'Liberia', dialCode: '+231', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'LY', name: 'Libya', dialCode: '+218', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'LI', name: 'Liechtenstein', dialCode: '+423', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'LT', name: 'Lithuania', dialCode: '+370', passportRegex: '^[A-Z0-9]{8}$' },\r\n { code: 'LU', name: 'Luxembourg', dialCode: '+352', passportRegex: '^[A-Z0-9]{8}$' },\r\n\r\n { code: 'MO', name: 'Macau', dialCode: '+853', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'MG', name: 'Madagascar', dialCode: '+261', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'MW', name: 'Malawi', dialCode: '+265', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'MY', name: 'Malaysia', dialCode: '+60', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\r\n { code: 'MV', name: 'Maldives', dialCode: '+960', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'ML', name: 'Mali', dialCode: '+223', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'MT', name: 'Malta', dialCode: '+356', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'MH', name: 'Marshall Islands', dialCode: '+692', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'MQ', name: 'Martinique', dialCode: '+596', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'MR', name: 'Mauritania', dialCode: '+222', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'MU', name: 'Mauritius', dialCode: '+230', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'MX', name: 'Mexico', dialCode: '+52', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\r\n { code: 'FM', name: 'Micronesia', dialCode: '+691', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'MD', name: 'Moldova', dialCode: '+373', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'MC', name: 'Monaco', dialCode: '+377', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'MN', name: 'Mongolia', dialCode: '+976', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'ME', name: 'Montenegro', dialCode: '+382', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'MS', name: 'Montserrat', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'MA', name: 'Morocco', dialCode: '+212', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'MZ', name: 'Mozambique', dialCode: '+258', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n\r\n { code: 'MM', name: 'Myanmar', dialCode: '+95', passportRegex: '^[A-Z]{1}[0-9]{6,7}$' },\r\n\r\n { code: 'NA', name: 'Namibia', dialCode: '+264', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'NR', name: 'Nauru', dialCode: '+674', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'NP', name: 'Nepal', dialCode: '+977', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'NL', name: 'Netherlands', dialCode: '+31', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'NC', name: 'New Caledonia', dialCode: '+687', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'NZ', name: 'New Zealand', dialCode: '+64', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'NI', name: 'Nicaragua', dialCode: '+505', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\r\n { code: 'NE', name: 'Niger', dialCode: '+227', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'NG', name: 'Nigeria', dialCode: '+234', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'NO', name: 'Norway', dialCode: '+47', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'OM', name: 'Oman', dialCode: '+968', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n\r\n { code: 'PK', name: 'Pakistan', dialCode: '+92', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'PW', name: 'Palau', dialCode: '+680', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'PS', name: 'Palestine', dialCode: '+970', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'PA', name: 'Panama', dialCode: '+507', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'PG', name: 'Papua New Guinea', dialCode: '+675', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'PY', name: 'Paraguay', dialCode: '+595', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'PE', name: 'Peru', dialCode: '+51', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'PH', name: 'Philippines', dialCode: '+63', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'PL', name: 'Poland', dialCode: '+48', passportRegex: '^[A-Z0-9]{2}[0-9]{7}$' },\r\n { code: 'PT', name: 'Portugal', dialCode: '+351', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n\r\n { code: 'RO', name: 'Romania', dialCode: '+40', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'RU', name: 'Russia', dialCode: '+7', passportRegex: '^[0-9]{9}$' },\r\n { code: 'RW', name: 'Rwanda', dialCode: '+250', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n\r\n {\r\n code: 'KN',\r\n name: 'Saint Kitts and Nevis',\r\n dialCode: '+1',\r\n passportRegex: '^[A-Z]{2}[0-9]{7}$',\r\n },\r\n { code: 'LC', name: 'Saint Lucia', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n {\r\n code: 'VC',\r\n name: 'Saint Vincent and the Grenadines',\r\n dialCode: '+1',\r\n passportRegex: '^[A-Z]{2}[0-9]{7}$',\r\n },\r\n\r\n { code: 'WS', name: 'Samoa', dialCode: '+685', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'SM', name: 'San Marino', dialCode: '+378', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n {\r\n code: 'ST',\r\n name: 'Sao Tome and Principe',\r\n dialCode: '+239',\r\n passportRegex: '^[A-Z0-9]{6,10}$',\r\n },\r\n\r\n { code: 'SA', name: 'Saudi Arabia', dialCode: '+966', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'SN', name: 'Senegal', dialCode: '+221', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'RS', name: 'Serbia', dialCode: '+381', passportRegex: '^[A-Z0-9]{9}$' },\r\n { code: 'SC', name: 'Seychelles', dialCode: '+248', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'SL', name: 'Sierra Leone', dialCode: '+232', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'SG', name: 'Singapore', dialCode: '+65', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'SK', name: 'Slovakia', dialCode: '+421', passportRegex: '^[0-9]{9}$' },\r\n { code: 'SI', name: 'Slovenia', dialCode: '+386', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'SB', name: 'Solomon Islands', dialCode: '+677', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'SO', name: 'Somalia', dialCode: '+252', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'ZA', name: 'South Africa', dialCode: '+27', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'ES', name: 'Spain', dialCode: '+34', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\r\n { code: 'LK', name: 'Sri Lanka', dialCode: '+94', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'SD', name: 'Sudan', dialCode: '+249', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'SR', name: 'Suriname', dialCode: '+597', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'SE', name: 'Sweden', dialCode: '+46', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'CH', name: 'Switzerland', dialCode: '+41', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'SY', name: 'Syria', dialCode: '+963', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n\r\n { code: 'TW', name: 'Taiwan', dialCode: '+886', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\r\n { code: 'TJ', name: 'Tajikistan', dialCode: '+992', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'TZ', name: 'Tanzania', dialCode: '+255', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'TH', name: 'Thailand', dialCode: '+66', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'TL', name: 'Timor-Leste', dialCode: '+670', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'TG', name: 'Togo', dialCode: '+228', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'TO', name: 'Tonga', dialCode: '+676', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'TT', name: 'Trinidad and Tobago', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'TN', name: 'Tunisia', dialCode: '+216', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'TR', name: 'Turkey', dialCode: '+90', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'TM', name: 'Turkmenistan', dialCode: '+993', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n {\r\n code: 'TC',\r\n name: 'Turks and Caicos Islands',\r\n dialCode: '+1',\r\n passportRegex: '^[A-Z0-9]{6,10}$',\r\n },\r\n { code: 'TV', name: 'Tuvalu', dialCode: '+688', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n\r\n { code: 'UG', name: 'Uganda', dialCode: '+256', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'UA', name: 'Ukraine', dialCode: '+380', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n {\r\n code: 'AE',\r\n name: 'United Arab Emirates',\r\n dialCode: '+971',\r\n passportRegex: '^[A-Z]{1}[0-9]{7}$',\r\n },\r\n { code: 'GB', name: 'United Kingdom', dialCode: '+44', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'US', name: 'United States', dialCode: '+1', passportRegex: '^[0-9]{9}$' },\r\n { code: 'UY', name: 'Uruguay', dialCode: '+598', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\r\n { code: 'UZ', name: 'Uzbekistan', dialCode: '+998', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'VU', name: 'Vanuatu', dialCode: '+678', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'VA', name: 'Vatican City', dialCode: '+379', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'VE', name: 'Venezuela', dialCode: '+58', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'VN', name: 'Vietnam', dialCode: '+84', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n\r\n { code: 'YE', name: 'Yemen', dialCode: '+967', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n\r\n { code: 'ZM', name: 'Zambia', dialCode: '+260', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'ZW', name: 'Zimbabwe', dialCode: '+263', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n];\r\n","import {\r\n Body1,\r\n Body1Strong,\r\n Button,\r\n Caption1,\r\n Dialog,\r\n DialogBody,\r\n DialogContent,\r\n DialogSurface,\r\n DialogTitle,\r\n Divider,\r\n Input,\r\n makeStyles,\r\n tokens,\r\n} from '@fluentui/react-components';\r\nimport { Icon } from '@iconify/react';\r\n\r\nconst useStyles = makeStyles({\r\n dialogTitle: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n paddingRight: '8px',\r\n },\r\n dialogSurface: {\r\n maxWidth: '600px',\r\n width: '100%',\r\n },\r\n closeButton: {\r\n minWidth: '32px',\r\n minHeight: '32px',\r\n },\r\n content: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '0px',\r\n paddingTop: '10px',\r\n paddingLeft: '10px',\r\n paddingRight: '10px',\r\n },\r\n searchInput: {\r\n width: '100%',\r\n marginBottom: '16px',\r\n },\r\n resultList: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '0px',\r\n maxHeight: '400px',\r\n overflowY: 'auto',\r\n paddingRight: '1rem',\r\n },\r\n resultItem: {\r\n padding: '16px 20px',\r\n borderBottom: `1px solid ${tokens.colorNeutralStroke2}`,\r\n cursor: 'pointer',\r\n transition: 'all 0.2s ease',\r\n backgroundColor: tokens.colorNeutralBackground1,\r\n position: 'relative',\r\n ':hover': {\r\n backgroundColor: tokens.colorNeutralBackground1Hover,\r\n borderBottom: `1px solid ${tokens.colorBrandBackground}`,\r\n },\r\n },\r\n resultItemSelected: {\r\n backgroundColor: tokens.colorNeutralBackground1,\r\n borderLeft: `4px solid ${tokens.colorBrandBackground}`,\r\n paddingLeft: '16px',\r\n },\r\n harborName: {\r\n fontSize: tokens.fontSizeBase300,\r\n fontWeight: tokens.fontWeightRegular,\r\n color: tokens.colorNeutralForeground1,\r\n marginBottom: '2px',\r\n },\r\n harborLocation: {\r\n fontSize: tokens.fontSizeBase200,\r\n color: tokens.colorNeutralForeground3,\r\n },\r\n buttonContainer: {\r\n display: 'flex',\r\n gap: '1rem',\r\n marginBottom: '1rem',\r\n flexWrap: 'wrap',\r\n },\r\n circularButton: {\r\n borderRadius: tokens.borderRadiusCircular,\r\n },\r\n headerRow: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n marginTop: '1rem',\r\n marginBottom: '1rem',\r\n },\r\n dangerText: {\r\n color: tokens.colorStatusDangerForeground1,\r\n },\r\n historyItem: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n marginTop: '1rem',\r\n marginBottom: '1rem',\r\n },\r\n iconMargin: {\r\n marginRight: '0.5rem',\r\n },\r\n cursorPointer: {\r\n cursor: 'pointer',\r\n },\r\n sectionTitle: {\r\n marginTop: '1rem',\r\n marginBottom: '1rem',\r\n },\r\n harborList: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '1rem',\r\n marginBottom: '1rem',\r\n },\r\n harborItem: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n },\r\n emptyState: {\r\n textAlign: 'center',\r\n padding: '32px',\r\n color: tokens.colorNeutralForeground3,\r\n },\r\n});\r\n\r\n/**\r\n * Harbor item interface\r\n */\r\nexport interface HarborItem {\r\n /**\r\n * Unique identifier for the harbor\r\n */\r\n id: number;\r\n \r\n /**\r\n * Display name of the harbor\r\n */\r\n name: string;\r\n}\r\n\r\n/**\r\n * Props for ModalSearchHarbor component\r\n */\r\nexport interface ModalSearchHarborProps {\r\n /**\r\n * Whether the modal is open\r\n */\r\n open: boolean;\r\n \r\n /**\r\n * Callback when modal should close\r\n */\r\n onClose: () => void;\r\n \r\n /**\r\n * Modal title\r\n * @default \"Pilih Pelabuhan\"\r\n */\r\n title?: string;\r\n \r\n /**\r\n * Type of modal - origin or destination\r\n * @default \"origin\"\r\n */\r\n modalType?: 'origin' | 'destination';\r\n \r\n /**\r\n * List of harbors to display\r\n */\r\n harbors: HarborItem[];\r\n \r\n /**\r\n * List of favorite harbors\r\n */\r\n favoriteHarbors: HarborItem[];\r\n \r\n /**\r\n * List of last searched harbors\r\n */\r\n lastSearchedHarbors: HarborItem[];\r\n \r\n /**\r\n * Loading state\r\n * @default false\r\n */\r\n isLoading?: boolean;\r\n \r\n /**\r\n * Current search query value\r\n */\r\n searchQuery: string;\r\n \r\n /**\r\n * Callback when search query changes\r\n */\r\n onSearchChange: (query: string) => void;\r\n \r\n /**\r\n * Callback when a harbor is selected\r\n */\r\n onSelectHarbor: (harbor: HarborItem) => void;\r\n \r\n /**\r\n * Callback when favorite is toggled\r\n */\r\n onToggleFavorite: (harbor: HarborItem) => void;\r\n \r\n /**\r\n * Callback when adding to last searched\r\n */\r\n onAddLastSearched: (harbor: HarborItem) => void;\r\n \r\n /**\r\n * Callback when removing from last searched\r\n */\r\n onRemoveLastSearched: (harborId: number) => void;\r\n \r\n /**\r\n * Callback when clearing all last searched\r\n */\r\n onClearLastSearched: () => void;\r\n}\r\n\r\n/**\r\n * ModalSearchHarbor - A reusable modal component for searching and selecting harbors\r\n * \r\n * This component provides a searchable modal interface for selecting harbors with features like:\r\n * - Search functionality\r\n * - Favorite harbors quick access\r\n * - Last searched history\r\n * - Loading states\r\n * \r\n * @example\r\n * ```tsx\r\n * <ModalSearchHarbor\r\n * open={isOpen}\r\n * onClose={() => setIsOpen(false)}\r\n * title=\"Pilih Pelabuhan Asal\"\r\n * harbors={harborList}\r\n * favoriteHarbors={favorites}\r\n * lastSearchedHarbors={history}\r\n * searchQuery={search}\r\n * onSearchChange={setSearch}\r\n * onSelectHarbor={handleSelect}\r\n * onToggleFavorite={handleToggleFavorite}\r\n * onAddLastSearched={handleAddHistory}\r\n * onRemoveLastSearched={handleRemoveHistory}\r\n * onClearLastSearched={handleClearHistory}\r\n * />\r\n * ```\r\n */\r\nexport const ModalSearchHarbor: React.FC<ModalSearchHarborProps> = ({\r\n open,\r\n onClose,\r\n title = 'Pilih Pelabuhan',\r\n modalType = 'origin',\r\n harbors,\r\n favoriteHarbors,\r\n lastSearchedHarbors,\r\n isLoading = false,\r\n searchQuery,\r\n onSearchChange,\r\n onSelectHarbor,\r\n onToggleFavorite,\r\n onAddLastSearched,\r\n onRemoveLastSearched,\r\n onClearLastSearched,\r\n}) => {\r\n const styles = useStyles();\r\n\r\n const handleSelect = (harbor: HarborItem) => {\r\n onAddLastSearched(harbor);\r\n onSelectHarbor(harbor);\r\n onSearchChange('');\r\n };\r\n\r\n const handleClose = () => {\r\n onClose();\r\n onSearchChange('');\r\n };\r\n\r\n return (\r\n <Dialog\r\n open={open}\r\n onOpenChange={(_, data) => {\r\n if (!data.open) {\r\n onClose();\r\n }\r\n }}\r\n >\r\n <DialogSurface className={styles.dialogSurface}>\r\n <DialogBody>\r\n <DialogTitle\r\n action={\r\n <Button\r\n appearance=\"subtle\"\r\n aria-label=\"close\"\r\n icon={<Icon icon=\"fluent:dismiss-24-regular\" />}\r\n onClick={handleClose}\r\n className={styles.closeButton}\r\n />\r\n }\r\n >\r\n {title}\r\n </DialogTitle>\r\n <DialogContent className={styles.content}>\r\n <div>\r\n <Input\r\n className={styles.searchInput}\r\n value={searchQuery}\r\n onChange={e => onSearchChange(e.target.value)}\r\n placeholder=\"Cari Pelabuhan...\"\r\n contentBefore={\r\n <Icon icon=\"fluent:search-24-regular\" color={tokens.colorNeutralForeground3} />\r\n }\r\n size=\"large\"\r\n />\r\n </div>\r\n \r\n {/* Favorite Harbors */}\r\n {favoriteHarbors.length > 0 && (\r\n <div className={styles.buttonContainer}>\r\n {favoriteHarbors.map(harbor => (\r\n <Button\r\n onClick={() => handleSelect(harbor)}\r\n key={harbor.id}\r\n size=\"medium\"\r\n appearance=\"outline\"\r\n iconPosition=\"before\"\r\n className={styles.circularButton}\r\n icon={<Icon icon=\"fluent:ribbon-20-filled\" />}\r\n >\r\n <Body1>{harbor.name}</Body1>\r\n </Button>\r\n ))}\r\n </div>\r\n )}\r\n \r\n <Divider />\r\n\r\n <div className={styles.resultList}>\r\n {/* Last Searched Section */}\r\n {lastSearchedHarbors.length > 0 && (\r\n <>\r\n <div className={styles.headerRow}>\r\n <Body1Strong>Terakhir dicari</Body1Strong>\r\n <Caption1\r\n className={`${styles.dangerText} ${styles.cursorPointer}`}\r\n onClick={onClearLastSearched}\r\n >\r\n Hapus Semua\r\n </Caption1>\r\n </div>\r\n\r\n <div>\r\n {lastSearchedHarbors.map(harbor => (\r\n <div className={styles.historyItem} key={harbor.id}>\r\n <div\r\n style={{ cursor: 'pointer' }}\r\n onClick={() => handleSelect(harbor)}\r\n >\r\n <Icon icon=\"fluent:vehicle-ship-24-regular\" className={styles.iconMargin} />\r\n {harbor.name}\r\n </div>\r\n <Icon\r\n onClick={() => onRemoveLastSearched(harbor.id)}\r\n icon=\"fluent:dismiss-24-regular\"\r\n color={tokens.colorStatusDangerForeground1}\r\n className={styles.cursorPointer}\r\n />\r\n </div>\r\n ))}\r\n </div>\r\n <Divider />\r\n </>\r\n )}\r\n\r\n {/* All Harbors Section */}\r\n <Body1Strong className={styles.sectionTitle}>Semua Pelabuhan</Body1Strong>\r\n <div className={styles.harborList}>\r\n {isLoading ? (\r\n <div className={styles.emptyState}>Memuat data...</div>\r\n ) : harbors.length > 0 ? (\r\n harbors.map((harbor, index) => (\r\n <div key={index} className={styles.harborItem}>\r\n <div\r\n className={styles.cursorPointer}\r\n onClick={() => handleSelect(harbor)}\r\n >\r\n <Icon icon=\"fluent:vehicle-ship-24-regular\" className={styles.iconMargin} />\r\n {harbor.name}\r\n </div>\r\n <Icon\r\n icon={\r\n favoriteHarbors.find(fav => fav.id === harbor.id)\r\n ? 'fluent:star-24-filled'\r\n : 'fluent:star-24-regular'\r\n }\r\n color={tokens.colorBrandBackground}\r\n className={styles.cursorPointer}\r\n onClick={() => onToggleFavorite(harbor)}\r\n />\r\n </div>\r\n ))\r\n ) : (\r\n <div className={styles.emptyState}>Pelabuhan tidak ditemukan</div>\r\n )}\r\n </div>\r\n </div>\r\n </DialogContent>\r\n </DialogBody>\r\n </DialogSurface>\r\n </Dialog>\r\n );\r\n};\r\n\r\nexport default ModalSearchHarbor;\r\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/components/CardTicket/CardTicket.tsx","../src/components/BackgroundTicketCard/BackgroundTicketCard.tsx","../src/components/BackgroundTicketCard/BackgroundTicketCardVertical.tsx","../src/components/CardServiceMenu/CardServiceMenu.tsx","../src/constants/generated/tokensV2.ts","../src/components/InputDynamic/DatePickerInput.tsx","../src/components/InputDynamic/InputDynamic.tsx","../src/components/InputDynamic/constants.ts","../src/components/ModalSearchHarbor/ModalSearchHarbor.tsx","../src/components/ModalSelectDate/ModalSelectDate.tsx"],"names":["makeStyles","tokens","jsx","Dialog","DialogSurface","DialogBody","DialogTitle","DialogContent","jsxs","Body1","Button","useStyles","shorthands","useState","useCallback","Carousel","mergeClasses","CarouselViewport","CarouselSlider","CarouselNav","CarouselNavButton","CarouselCard","Subtitle2","Card","Tooltip","Badge","Caption1","Title2","Caption2","Divider","Title3","Caption1Strong","React","Fragment","forwardRef","Popover","PopoverTrigger","Input","Icon","PopoverSurface","Calendar","useRef","hasError","useEffect","otpIndex","PhoneInput","phoneValue","Textarea","Select","Switch","RadioGroup","Radio","Checkbox","typographyStyles","Controller","Field","Label","Text","DEFAULT_COUNTRY_CODES","Body1Strong","useMemo","moment"],"mappings":"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","file":"index.js","sourcesContent":["import React, { ReactNode } from 'react';\r\nimport {\r\n Body1,\r\n Button,\r\n Dialog,\r\n DialogBody,\r\n DialogContent,\r\n DialogSurface,\r\n DialogTitle,\r\n makeStyles,\r\n tokens,\r\n} from '@fluentui/react-components';\r\n\r\nconst useStyles = makeStyles({\r\n dialogSurface: {\r\n maxWidth: '600px',\r\n width: '100%',\r\n },\r\n iconContainer: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n gap: tokens.spacingVerticalL,\r\n textAlign: 'center',\r\n paddingTop: tokens.spacingVerticalL,\r\n paddingBottom: tokens.spacingVerticalL,\r\n },\r\n image: {\r\n maxWidth: '100%',\r\n height: 'auto',\r\n },\r\n buttonContainer: {\r\n display: 'flex',\r\n width: '100%',\r\n gap: tokens.spacingHorizontalM,\r\n },\r\n});\r\n\r\nexport interface ModalIllustrationButton {\r\n /**\r\n * Button text\r\n */\r\n text: string;\r\n \r\n /**\r\n * Button click handler\r\n */\r\n onClick: () => void;\r\n \r\n /**\r\n * Button appearance\r\n * @default \"primary\"\r\n */\r\n appearance?: 'primary' | 'outline' | 'secondary' | 'subtle' | 'transparent';\r\n}\r\n\r\nexport interface ModalIllustrationProps {\r\n /**\r\n * Whether the modal is open\r\n */\r\n open: boolean;\r\n \r\n /**\r\n * Callback when modal should close\r\n */\r\n onClose: () => void;\r\n \r\n /**\r\n * Modal title\r\n */\r\n title: string;\r\n \r\n /**\r\n * Modal message content\r\n * Can be a string or React node for more complex content\r\n */\r\n message: string | ReactNode;\r\n \r\n /**\r\n * Image source URL\r\n * @default \"/assets/images/illustrations/radius.svg\"\r\n * @remarks\r\n * When using this component in your application, ensure the asset is available at this path\r\n * in your public directory, or provide a custom imageSrc prop pointing to your own image.\r\n * The asset is included in the published package at `node_modules/@asdp/ferryui/dist/assets/images/illustrations/`\r\n */\r\n imageSrc?: string;\r\n \r\n /**\r\n * Image alt text\r\n * @default \"Illustration\"\r\n */\r\n imageAlt?: string;\r\n \r\n /**\r\n * Image width\r\n * @default 361\r\n */\r\n imageWidth?: number;\r\n \r\n /**\r\n * Image height\r\n * @default 203\r\n */\r\n imageHeight?: number;\r\n \r\n /**\r\n * Primary button configuration\r\n */\r\n primaryButton: ModalIllustrationButton;\r\n \r\n /**\r\n * Optional secondary button configuration\r\n * If provided, buttons will be displayed side by side\r\n */\r\n secondaryButton?: ModalIllustrationButton;\r\n}\r\n\r\nexport const ModalIllustration: React.FC<ModalIllustrationProps> = ({\r\n open,\r\n onClose,\r\n title,\r\n message,\r\n imageSrc = '/assets/images/illustrations/radius.svg',\r\n imageAlt = 'Illustration',\r\n imageWidth = 361,\r\n imageHeight = 203,\r\n primaryButton,\r\n secondaryButton,\r\n}) => {\r\n const styles = useStyles();\r\n\r\n return (\r\n <Dialog open={open} onOpenChange={(_, data) => !data.open && onClose()} modalType=\"modal\">\r\n <DialogSurface className={styles.dialogSurface}>\r\n <DialogBody>\r\n <DialogTitle>{title}</DialogTitle>\r\n <DialogContent>\r\n <div className={styles.iconContainer}>\r\n <img\r\n src={imageSrc}\r\n alt={imageAlt}\r\n width={imageWidth}\r\n height={imageHeight}\r\n className={styles.image}\r\n />\r\n {typeof message === 'string' ? (\r\n <Body1 style={{ textAlign: 'center' }}>{message}</Body1>\r\n ) : (\r\n message\r\n )}\r\n </div>\r\n <div className={styles.buttonContainer}>\r\n <Button\r\n style={{ width: '100%' }}\r\n type=\"button\"\r\n appearance={primaryButton.appearance || 'primary'}\r\n onClick={primaryButton.onClick}\r\n >\r\n {primaryButton.text}\r\n </Button>\r\n {secondaryButton && (\r\n <Button\r\n style={{ width: '100%' }}\r\n type=\"button\"\r\n appearance={secondaryButton.appearance || 'outline'}\r\n onClick={secondaryButton.onClick}\r\n >\r\n {secondaryButton.text}\r\n </Button>\r\n )}\r\n </div>\r\n </DialogContent>\r\n </DialogBody>\r\n </DialogSurface>\r\n </Dialog>\r\n );\r\n};\r\n\r\nexport default ModalIllustration;\r\n","import { ModalIllustrationProps } from './ModalIllustration';\r\n\r\n/**\r\n * Preset configurations for common modal use cases\r\n */\r\nexport const MODAL_PRESETS = {\r\n /**\r\n * Modal for radius/location restriction\r\n */\r\n RADIUS: {\r\n title: 'Anda berada di luar area pemesanan',\r\n message: 'Pemesanan tiket tidak dapat dilakukan dari lokasi Anda saat ini. Fitur pembatasan wilayah sedang aktif untuk mencegah pemesanan tidak sah.',\r\n imageSrc: '/assets/images/illustrations/radius.svg',\r\n imageAlt: 'Radius Limitation Illustration',\r\n },\r\n \r\n /**\r\n * Modal for expired session\r\n */\r\n SESSION_EXPIRED: {\r\n title: 'Sesi anda telah berakhir',\r\n message: 'Waktu sesi Anda telah habis untuk alasan keamanan. Silakan klik tombol dibawah untuk masuk kembali.',\r\n imageSrc: '/assets/images/illustrations/sessionexp.svg',\r\n imageAlt: 'Session Expired Illustration',\r\n },\r\n \r\n /**\r\n * Modal for purchase period expired\r\n */\r\n PURCHASE_PERIOD_EXPIRED: {\r\n title: 'Waktu pembelian telah berakhir',\r\n message: 'Pemesanan tiket ditutup 1 jam sebelum jadwal keberangkatan. Silakan pilih jadwal keberangkatan lain yang masih tersedia.',\r\n imageSrc: '/assets/images/illustrations/pay.svg',\r\n imageAlt: 'Purchase Period Expired Illustration',\r\n },\r\n \r\n /**\r\n * Modal for transaction limit reached\r\n */\r\n TRANSACTION_LIMIT: {\r\n title: 'Anda mencapai batas transaksi tertunda',\r\n message: 'Anda telah mencapai batas transaksi tertunda. Pemesanan dapat dilakukan kembali setelah transaksi sebelumnya diselesaikan.',\r\n imageSrc: '/assets/images/illustrations/mobile-pay.svg',\r\n imageAlt: 'Transaction Limit Illustration',\r\n },\r\n} as const;\r\n\r\n/**\r\n * Type for preset keys\r\n */\r\nexport type ModalPresetKey = keyof typeof MODAL_PRESETS;\r\n\r\n/**\r\n * Helper function to get preset configuration\r\n */\r\nexport const getModalPreset = (presetKey: ModalPresetKey): Partial<ModalIllustrationProps> => {\r\n return MODAL_PRESETS[presetKey];\r\n};\r\n","import React, { ReactNode, useCallback, useEffect, useRef, useState } from 'react';\r\nimport {\r\n Carousel,\r\n CarouselAnnouncerFunction,\r\n CarouselNav,\r\n CarouselNavButton,\r\n CarouselSlider,\r\n CarouselViewport,\r\n makeStyles,\r\n mergeClasses,\r\n shorthands,\r\n tokens,\r\n} from '@fluentui/react-components';\r\n\r\nconst useStyles = makeStyles({\r\n carousel: {},\r\n customCarouselNav: {\r\n display: 'flex',\r\n gap: tokens.spacingHorizontalXS,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n ...shorthands.padding(tokens.spacingVerticalS, tokens.spacingVerticalM),\r\n borderRadius: tokens.borderRadiusCircular,\r\n },\r\n carouselNavButton: {\r\n '& button': {\r\n padding: 0,\r\n marginInline: '0px',\r\n width: '45px',\r\n height: '16px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n transition: 'transform 0.4s cubic-bezier(0.4, 0, 0.2, 1)',\r\n '@media (max-width: 425px)': {\r\n width: '35px',\r\n height: '10px',\r\n },\r\n },\r\n '& button::after': {\r\n content: '\"\"',\r\n transition:\r\n 'all 0.4s cubic-bezier(0.4, 0, 0.2, 1), transform 0.4s cubic-bezier(0.4, 0, 0.2, 1)',\r\n },\r\n \"& button[aria-selected='true']::after\": {\r\n backgroundImage: 'linear-gradient(to right,#00B3BD, #8DC63F)',\r\n width: '55px',\r\n height: '16px',\r\n borderRadius: tokens.borderRadiusCircular,\r\n transform: 'translateX(0)',\r\n '@media (max-width: 425px)': {\r\n width: '25px',\r\n height: '10px',\r\n },\r\n '@media (max-width: 768px)': {\r\n width: '35px',\r\n height: '13px',\r\n },\r\n },\r\n \"& button[aria-selected='false']::after\": {\r\n backgroundColor: '#D1D1D1',\r\n width: '15px',\r\n height: '15px',\r\n opacity: '90%',\r\n transform: 'scale(0.9)',\r\n '@media (max-width: 425px)': {\r\n width: '10px',\r\n height: '10px',\r\n },\r\n },\r\n },\r\n});\r\n\r\nconst defaultAnnouncement: CarouselAnnouncerFunction = (index: number, totalSlides: number) => {\r\n return `Carousel slide ${index + 1} of ${totalSlides}`;\r\n};\r\n\r\nexport interface CarouselWithCustomNavProps {\r\n /**\r\n * Carousel items/children\r\n */\r\n children: ReactNode;\r\n \r\n /**\r\n * Whether carousel should loop (circular)\r\n * @default true\r\n */\r\n circular?: boolean;\r\n \r\n /**\r\n * Whether carousel is draggable\r\n * @default true\r\n */\r\n draggable?: boolean;\r\n \r\n /**\r\n * Alignment of carousel items\r\n * @default \"start\"\r\n */\r\n align?: 'start' | 'center' | 'end';\r\n \r\n /**\r\n * Whether to remove whitespace between items\r\n * @default false\r\n */\r\n whitespace?: boolean;\r\n \r\n /**\r\n * Announcement function for accessibility\r\n */\r\n announcement?: CarouselAnnouncerFunction;\r\n \r\n /**\r\n * Active index (controlled)\r\n */\r\n activeIndex?: number;\r\n \r\n /**\r\n * Callback when active index changes\r\n */\r\n onActiveIndexChange?: (index: number) => void;\r\n \r\n /**\r\n * ARIA label for the carousel slider\r\n * @default \"Carousel\"\r\n */\r\n ariaLabel?: string;\r\n \r\n /**\r\n * Whether to use dark background for navigation\r\n * @default true\r\n */\r\n darkNavBackground?: boolean;\r\n \r\n /**\r\n * Additional className for carousel container\r\n */\r\n className?: string;\r\n \r\n /**\r\n * Whether to enable card focus mode\r\n * @default false\r\n */\r\n cardFocus?: boolean;\r\n}\r\n\r\nexport const CarouselWithCustomNav: React.FC<CarouselWithCustomNavProps> = ({\r\n children,\r\n circular = true,\r\n draggable = true,\r\n align = 'start',\r\n whitespace = false,\r\n announcement = defaultAnnouncement,\r\n activeIndex: controlledIndex,\r\n onActiveIndexChange,\r\n ariaLabel = 'Carousel',\r\n darkNavBackground = true,\r\n className,\r\n cardFocus = false,\r\n}) => {\r\n const styles = useStyles();\r\n const [internalIndex, setInternalIndex] = useState(0);\r\n \r\n // Use controlled index if provided, otherwise use internal state\r\n const activeIndex = controlledIndex !== undefined ? controlledIndex : internalIndex;\r\n \r\n const handleIndexChange = useCallback((index: number) => {\r\n if (controlledIndex === undefined) {\r\n setInternalIndex(index);\r\n }\r\n onActiveIndexChange?.(index);\r\n }, [controlledIndex, onActiveIndexChange]);\r\n\r\n return (\r\n <Carousel\r\n circular={circular}\r\n draggable={draggable}\r\n align={align}\r\n className={mergeClasses(styles.carousel, className)}\r\n whitespace={whitespace}\r\n announcement={announcement}\r\n activeIndex={activeIndex}\r\n onActiveIndexChange={(_, data) => handleIndexChange(data.index)}\r\n >\r\n <CarouselViewport>\r\n <CarouselSlider\r\n cardFocus={cardFocus}\r\n aria-label={ariaLabel}\r\n >\r\n {children}\r\n </CarouselSlider>\r\n </CarouselViewport>\r\n <CarouselNav\r\n style={{\r\n backgroundColor: darkNavBackground\r\n ? tokens.colorSubtleBackgroundInverted\r\n : tokens.colorSubtleBackground,\r\n marginTop: tokens.spacingVerticalXL,\r\n }}\r\n appearance=\"brand\"\r\n className={styles.carouselNavButton}\r\n >\r\n {index => <CarouselNavButton aria-label={`Slide ${index + 1}`} />}\r\n </CarouselNav>\r\n </Carousel>\r\n );\r\n};\r\n\r\nexport default CarouselWithCustomNav;\r\n","import React from 'react';\r\nimport {\r\n Body1,\r\n CarouselCard,\r\n makeStyles,\r\n Subtitle2,\r\n tokens,\r\n} from '@fluentui/react-components';\r\n\r\nconst useStyles = makeStyles({\r\n actionCard: {\r\n borderRadius: tokens.borderRadiusXLarge,\r\n overflow: 'hidden',\r\n textAlign: 'center',\r\n width: '360px',\r\n maxWidth: '360px',\r\n margin: '0px 6px',\r\n boxShadow: tokens.shadow4,\r\n backgroundColor: tokens.colorNeutralForegroundInverted,\r\n '@media (max-width: 1024px)': {\r\n width: '200px',\r\n maxWidth: '200px',\r\n },\r\n '@media (max-width: 768px)': {\r\n width: '190px',\r\n maxWidth: '190px',\r\n },\r\n '@media (max-width: 480px)': {\r\n width: '180px',\r\n maxWidth: '180px',\r\n margin: '0px 4px',\r\n },\r\n },\r\n imageContainer: {\r\n position: 'relative',\r\n width: '100%',\r\n height: '202px',\r\n overflow: 'hidden',\r\n '@media (max-width: 1024px)': {\r\n height: '120px',\r\n },\r\n '@media (max-width: 768px)': {\r\n height: '110px',\r\n },\r\n '@media (max-width: 480px)': {\r\n height: '100px',\r\n },\r\n },\r\n image: {\r\n width: '100%',\r\n height: '100%',\r\n objectFit: 'cover',\r\n objectPosition: 'center',\r\n },\r\n info: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n padding: tokens.spacingHorizontalM,\r\n width: '100%',\r\n alignContent: 'center',\r\n justifyContent: 'space-between',\r\n gap: tokens.spacingVerticalSNudge,\r\n '@media (max-width: 1024px)': {\r\n padding: tokens.spacingHorizontalSNudge,\r\n gap: tokens.spacingVerticalSNudge,\r\n },\r\n '@media (max-width: 768px)': {\r\n padding: tokens.spacingVerticalS,\r\n gap: tokens.spacingVerticalXS,\r\n },\r\n '@media (max-width: 480px)': {\r\n padding: tokens.spacingVerticalSNudge,\r\n gap: tokens.spacingVerticalXS,\r\n },\r\n },\r\n});\r\n\r\nexport interface CardPromoProps {\r\n /**\r\n * Image URL for the promo\r\n */\r\n imageUrl: string;\r\n \r\n /**\r\n * Promo title/heading\r\n */\r\n title: string;\r\n \r\n /**\r\n * Promo description/subtitle\r\n */\r\n description: string;\r\n \r\n /**\r\n * Image alt text\r\n * @default \"Promo image\"\r\n */\r\n imageAlt?: string;\r\n \r\n /**\r\n * Index of the card (for accessibility)\r\n */\r\n index?: number;\r\n \r\n /**\r\n * Total number of cards (for accessibility)\r\n */\r\n totalCards?: number;\r\n \r\n /**\r\n * Click handler for the card\r\n */\r\n onClick?: () => void;\r\n}\r\n\r\nexport const CardPromo: React.FC<CardPromoProps> = ({\r\n imageUrl,\r\n title,\r\n description,\r\n imageAlt = 'Promo image',\r\n index = 0,\r\n totalCards,\r\n onClick,\r\n}) => {\r\n const classes = useStyles();\r\n\r\n const ariaLabel = totalCards\r\n ? `Card ${index + 1} of ${totalCards}`\r\n : `Promo card ${index + 1}`;\r\n\r\n return (\r\n <CarouselCard\r\n autoSize\r\n className={classes.actionCard}\r\n aria-label={ariaLabel}\r\n onClick={onClick}\r\n style={{ cursor: onClick ? 'pointer' : 'default' }}\r\n >\r\n <div className={classes.imageContainer}>\r\n <img\r\n className={classes.image}\r\n src={imageUrl}\r\n role=\"presentation\"\r\n alt={imageAlt}\r\n />\r\n </div>\r\n <div className={classes.info}>\r\n <Subtitle2>{title}</Subtitle2>\r\n <Body1>{description}</Body1>\r\n </div>\r\n </CarouselCard>\r\n );\r\n};\r\n\r\nexport default CardPromo;\r\n","import React from 'react';\r\nimport {\r\n CarouselCard,\r\n makeStyles,\r\n} from '@fluentui/react-components';\r\n\r\nconst useStyles = makeStyles({\r\n bannerCard: {\r\n overflow: 'hidden',\r\n width: '100%',\r\n maxWidth: '100%',\r\n margin: 0,\r\n padding: 0,\r\n backgroundColor: 'transparent',\r\n border: 'none',\r\n },\r\n bannerImage: {\r\n width: '100%',\r\n height: 'auto',\r\n objectFit: 'cover',\r\n display: 'block',\r\n cursor: 'pointer',\r\n },\r\n});\r\n\r\nexport interface CardBannerProps {\r\n /**\r\n * Banner image URL\r\n */\r\n imageUrl: string;\r\n \r\n /**\r\n * Banner alt text\r\n */\r\n alt: string;\r\n \r\n /**\r\n * Index of the banner (for accessibility)\r\n */\r\n index?: number;\r\n \r\n /**\r\n * Total number of banners (for accessibility)\r\n */\r\n totalBanners?: number;\r\n \r\n /**\r\n * Click handler for the banner\r\n */\r\n onClick?: () => void;\r\n}\r\n\r\nexport const CardBanner: React.FC<CardBannerProps> = ({\r\n imageUrl,\r\n alt,\r\n index = 0,\r\n totalBanners,\r\n onClick,\r\n}) => {\r\n const classes = useStyles();\r\n\r\n const ariaLabel = totalBanners\r\n ? `Banner ${index + 1} of ${totalBanners}`\r\n : `Banner ${index + 1}`;\r\n\r\n return (\r\n <CarouselCard\r\n className={classes.bannerCard}\r\n aria-label={ariaLabel}\r\n >\r\n <img\r\n className={classes.bannerImage}\r\n src={imageUrl}\r\n alt={alt}\r\n role=\"presentation\"\r\n onClick={onClick}\r\n style={{ cursor: onClick ? 'pointer' : 'default' }}\r\n />\r\n </CarouselCard>\r\n );\r\n};\r\n\r\nexport default CardBanner;\r\n","import React, { ReactNode } from 'react';\r\nimport {\r\n Badge,\r\n Button,\r\n Caption1,\r\n Caption1Strong,\r\n Caption2,\r\n Card,\r\n Divider,\r\n makeStyles,\r\n mergeClasses,\r\n shorthands,\r\n Subtitle2,\r\n Title2,\r\n Title3,\r\n tokens,\r\n Tooltip,\r\n} from '@fluentui/react-components';\r\n\r\nconst useStyles = makeStyles({\r\n ticketWrapper: {\r\n borderRadius: tokens.borderRadiusXLarge,\r\n overflow: 'visible',\r\n boxShadow: tokens.shadow4,\r\n display: 'flex',\r\n width: '100%',\r\n marginBottom: '2rem',\r\n minHeight: '323px',\r\n padding: 0,\r\n '@media (max-width: 1200px)': {\r\n flexDirection: 'column',\r\n },\r\n },\r\n ticketLeftCard: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n gap: '3em',\r\n width: '100%',\r\n height: '100%',\r\n boxShadow: 'none',\r\n position: 'relative',\r\n overflow: 'visible',\r\n flexDirection: 'column',\r\n '@media (min-width: 1200px)': {\r\n borderRight: `0.7em dashed ${tokens.colorNeutralBackground1Hover}`,\r\n borderEndEndRadius: 0,\r\n borderEndStartRadius: 0,\r\n borderTopLeftRadius: tokens.borderRadiusXLarge,\r\n borderBottomLeftRadius: tokens.borderRadiusXLarge,\r\n },\r\n '@media (max-width: 1200px)': {\r\n borderBottom: `0.5em dashed ${tokens.colorNeutralBackground1Hover}`,\r\n borderTopLeftRadius: tokens.borderRadiusXLarge,\r\n borderTopRightRadius: tokens.borderRadiusXLarge,\r\n borderEndEndRadius: 0,\r\n borderEndStartRadius: 0,\r\n gap: '1rem',\r\n flexDirection: 'row',\r\n justifyContent: 'space-around',\r\n padding: '2rem',\r\n },\r\n },\r\n circularLeft: {\r\n position: 'absolute',\r\n width: '100px',\r\n height: '50px',\r\n borderRadius: '50%',\r\n backgroundColor: tokens.colorNeutralBackground1Hover,\r\n left: '-50px',\r\n boxShadow: 'inset -3px 0px 1px rgba(0, 0, 0, 0.1)',\r\n },\r\n circularLeftMd: {\r\n position: 'absolute',\r\n width: '50px',\r\n height: '30px',\r\n borderRadius: '50%',\r\n backgroundColor: tokens.colorNeutralBackground1Hover,\r\n left: '-25px',\r\n bottom: '-18px',\r\n zIndex: 2,\r\n boxShadow: 'inset -3px 0px 1px rgba(0, 0, 0, 0.1)',\r\n },\r\n circularRightMd: {\r\n position: 'absolute',\r\n width: '50px',\r\n height: '30px',\r\n borderRadius: '50%',\r\n backgroundColor: tokens.colorNeutralBackground1Hover,\r\n right: '-25px',\r\n bottom: '-18px',\r\n zIndex: 2,\r\n boxShadow: 'inset 3px 0px 1px rgba(0, 0, 0, 0.1)',\r\n },\r\n ticketMiddleCard: {\r\n width: '100%',\r\n height: '100%',\r\n boxShadow: 'none',\r\n borderRadius: 0,\r\n padding: '2rem',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'space-between',\r\n '@media (max-width: 768px)': {\r\n padding: '1rem',\r\n },\r\n },\r\n ticketInfo: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n gap: '0.5em',\r\n },\r\n ticketTime: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'start',\r\n gap: '0.5em',\r\n },\r\n ticketDuration: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n gap: '0.5rem',\r\n },\r\n dividerContainer: {\r\n position: 'relative',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justifyItems: 'center',\r\n width: '100%',\r\n },\r\n ticketButtons: {\r\n display: 'flex',\r\n gap: '1rem',\r\n marginTop: '1rem',\r\n '@media (max-width: 768px)': {\r\n flexDirection: 'column',\r\n },\r\n },\r\n ticketRightCard: {\r\n width: '100%',\r\n height: '100%',\r\n boxShadow: 'none',\r\n borderRadius: 0,\r\n borderTopLeftRadius: 0,\r\n borderBottomLeftRadius: 0,\r\n borderTopRightRadius: tokens.borderRadiusXLarge,\r\n borderBottomRightRadius: tokens.borderRadiusXLarge,\r\n position: 'relative',\r\n overflow: 'visible',\r\n background: 'linear-gradient(75deg, #58C91B 0%, #1949E0 103.3%)',\r\n padding: '5em',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'space-between',\r\n color: tokens.colorNeutralForegroundInverted,\r\n '@media (max-width: 1200px)': {\r\n padding: '2rem',\r\n borderTopRightRadius: 0,\r\n borderBottomLeftRadius: tokens.borderRadiusXLarge,\r\n borderBottomRightRadius: tokens.borderRadiusXLarge,\r\n },\r\n '@media (max-width: 768px)': {\r\n padding: '1rem',\r\n },\r\n },\r\n priceCard: {\r\n border: '1px solid #FFF',\r\n background: 'rgba(255, 255, 255, 0.30)',\r\n backdropFilter: 'blur(17.5px)',\r\n borderRadius: tokens.borderRadiusLarge,\r\n padding: '1.2rem',\r\n gap: '1rem',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n flexWrap: 'wrap',\r\n '@media (max-width: 768px)': {\r\n padding: '1rem',\r\n },\r\n },\r\n facilitiesSection: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '0.5rem',\r\n },\r\n facilitiesList: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n gap: '0.75rem',\r\n },\r\n facilityItem: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '0.5rem',\r\n fontSize: '14px',\r\n },\r\n circularRight: {\r\n position: 'absolute',\r\n width: '100px',\r\n height: '50px',\r\n borderRadius: '50%',\r\n backgroundColor: tokens.colorNeutralBackground1Hover,\r\n right: '-50px',\r\n boxShadow: 'inset 3px 0px 1px rgba(0, 0, 0, 0.1)',\r\n },\r\n asdpLogo: {\r\n width: 'clamp(50px, 20vw, 150px)',\r\n },\r\n});\r\n\r\nexport interface CardTicketButton {\r\n label: string;\r\n icon?: JSX.Element;\r\n onClick?: () => void;\r\n}\r\n\r\nexport interface CardTicketProps {\r\n /**\r\n * Ship type badge configuration\r\n */\r\n shipType: {\r\n label: string;\r\n color: 'brand' | 'danger' | 'important' | 'informative' | 'severe' | 'subtle' | 'success' | 'warning';\r\n tooltip?: string;\r\n };\r\n \r\n /**\r\n * Logo image source\r\n * @default \"/assets/logo/asdp-default.svg\"\r\n */\r\n logoSrc?: string;\r\n \r\n /**\r\n * Ship name\r\n */\r\n shipName: string;\r\n \r\n /**\r\n * Available seats configuration\r\n */\r\n availableSeats: {\r\n count: number;\r\n threshold?: number; // Seats count threshold for color (default: 50)\r\n };\r\n \r\n /**\r\n * Departure information\r\n */\r\n departure: {\r\n day: string;\r\n time: string;\r\n location: string;\r\n };\r\n \r\n /**\r\n * Arrival information\r\n */\r\n arrival: {\r\n day: string;\r\n time: string;\r\n location: string;\r\n };\r\n \r\n /**\r\n * Duration text\r\n */\r\n duration: string;\r\n \r\n /**\r\n * Middle section action buttons (max 2)\r\n */\r\n actionButtons?: CardTicketButton[];\r\n \r\n /**\r\n * Price display (formatted string)\r\n */\r\n price: string;\r\n \r\n /**\r\n * Primary button configuration\r\n */\r\n primaryButton: CardTicketButton;\r\n \r\n /**\r\n * List of facilities\r\n */\r\n facilities: string[];\r\n \r\n /**\r\n * Custom icon for ship indicator\r\n */\r\n shipIcon?: JSX.Element;\r\n \r\n /**\r\n * Custom icon for facilities checkmark\r\n */\r\n facilityIcon?: JSX.Element;\r\n}\r\n\r\nexport const CardTicket: React.FC<CardTicketProps> = ({\r\n shipType,\r\n logoSrc = '/assets/logo/asdp-default.svg',\r\n shipName,\r\n availableSeats,\r\n departure,\r\n arrival,\r\n duration,\r\n actionButtons = [],\r\n price,\r\n primaryButton,\r\n facilities,\r\n shipIcon,\r\n facilityIcon,\r\n}) => {\r\n const styles = useStyles();\r\n const threshold = availableSeats.threshold ?? 50;\r\n const isLowSeats = availableSeats.count <= threshold;\r\n\r\n return (\r\n <div className={styles.ticketWrapper}>\r\n {/* Left Section */}\r\n <Card className={styles.ticketLeftCard}>\r\n <Tooltip\r\n content={shipType.tooltip || shipType.label}\r\n relationship=\"label\"\r\n appearance=\"inverted\"\r\n >\r\n <Badge\r\n size=\"large\"\r\n appearance=\"filled\"\r\n color={shipType.color}\r\n iconPosition=\"before\"\r\n shape=\"rounded\"\r\n >\r\n {shipType.label}\r\n </Badge>\r\n </Tooltip>\r\n \r\n <img\r\n src={logoSrc}\r\n className={styles.asdpLogo}\r\n alt=\"Logo\"\r\n />\r\n \r\n {/* Mobile: Show availability badge */}\r\n <div style={{ display: 'none' }}>\r\n <Badge\r\n size=\"large\"\r\n appearance=\"tint\"\r\n color={isLowSeats ? 'danger' : 'success'}\r\n iconPosition=\"after\"\r\n shape=\"rounded\"\r\n >\r\n Tersedia {availableSeats.count}\r\n </Badge>\r\n </div>\r\n \r\n <Subtitle2>{shipName}</Subtitle2>\r\n \r\n {/* Circular decorations - Desktop */}\r\n <div style={{ display: 'none' }}>\r\n {Array.from({ length: 5 }).map((_, index) => (\r\n <div\r\n key={index}\r\n className={styles.circularLeft}\r\n style={{\r\n top: `${18 + index * 60}px`,\r\n }}\r\n />\r\n ))}\r\n </div>\r\n \r\n {/* Circular decorations - Mobile */}\r\n <div className={styles.circularLeftMd} />\r\n <div className={styles.circularRightMd} />\r\n </Card>\r\n\r\n {/* Middle Section */}\r\n <Card className={styles.ticketMiddleCard}>\r\n {/* Desktop: Show availability badge */}\r\n <Badge\r\n size=\"extra-large\"\r\n appearance=\"tint\"\r\n color={isLowSeats ? 'danger' : 'success'}\r\n iconPosition=\"after\"\r\n shape=\"rounded\"\r\n >\r\n Tersedia {availableSeats.count}\r\n </Badge>\r\n\r\n <div>\r\n <div className={styles.ticketInfo}>\r\n <div className={styles.ticketTime}>\r\n <Caption1>{departure.day}</Caption1>\r\n <Title2>{departure.time}</Title2>\r\n <Caption1>{departure.location}</Caption1>\r\n </div>\r\n \r\n <div className={styles.ticketDuration}>\r\n <Caption2>Estimasi {duration}</Caption2>\r\n <div className={styles.dividerContainer}>\r\n <Divider>\r\n {shipIcon || <span>🚢</span>}\r\n </Divider>\r\n </div>\r\n </div>\r\n \r\n <div className={styles.ticketTime}>\r\n <Caption1>{arrival.day}</Caption1>\r\n <Title2>{arrival.time}</Title2>\r\n <Caption1>{arrival.location}</Caption1>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n {actionButtons.length > 0 && (\r\n <div className={styles.ticketButtons}>\r\n {actionButtons.slice(0, 2).map((button, idx) => (\r\n <Button\r\n key={idx}\r\n appearance=\"outline\"\r\n shape=\"circular\"\r\n style={{\r\n flex: 1,\r\n borderColor: tokens.colorBrandBackground,\r\n color: tokens.colorBrandBackground,\r\n }}\r\n icon={button.icon}\r\n size=\"medium\"\r\n onClick={button.onClick}\r\n >\r\n {button.label}\r\n </Button>\r\n ))}\r\n </div>\r\n )}\r\n </Card>\r\n\r\n {/* Right Section */}\r\n <Card className={styles.ticketRightCard}>\r\n <div className={styles.priceCard}>\r\n <div style={{ display: 'flex', flexDirection: 'column', gap: '0.25rem' }}>\r\n <Subtitle2>Total harga</Subtitle2>\r\n <Title3 style={{ display: 'flex', flexDirection: 'row', alignItems: 'center' }}>\r\n IDR {price}\r\n </Title3>\r\n </div>\r\n <Button\r\n onClick={primaryButton.onClick}\r\n appearance=\"primary\"\r\n size=\"medium\"\r\n shape=\"circular\"\r\n icon={primaryButton.icon}\r\n style={{ backgroundColor: '#58C91B' }}\r\n >\r\n {primaryButton.label}\r\n </Button>\r\n </div>\r\n \r\n <div className={styles.facilitiesSection}>\r\n <Subtitle2>Fasilitas</Subtitle2>\r\n <div className={styles.facilitiesList}>\r\n {facilities.map((facility, idx) => (\r\n <div key={idx} className={styles.facilityItem}>\r\n {facilityIcon || <span>✓</span>}\r\n <Caption1Strong>{facility}</Caption1Strong>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n \r\n {/* Circular decorations - Desktop */}\r\n <div style={{ display: 'none' }}>\r\n {Array.from({ length: 5 }).map((_, index) => (\r\n <div\r\n key={index}\r\n className={styles.circularRight}\r\n style={{\r\n top: `${18 + index * 60}px`,\r\n }}\r\n />\r\n ))}\r\n </div>\r\n </Card>\r\n </div>\r\n );\r\n};\r\n\r\nexport default CardTicket;\r\n","import React from 'react';\r\n\r\n/**\r\n * Horizontal ticket card background with decorative perforated edges\r\n * Use this for desktop/landscape layouts\r\n */\r\nconst BackgroundTicketCard = (props: React.SVGProps<SVGSVGElement>) => (\r\n <svg\r\n viewBox=\"0 0 1850 465\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n preserveAspectRatio=\"none\"\r\n {...props}\r\n >\r\n <g filter=\"url(#filter0_dd_156_32114)\">\r\n <path\r\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\"\r\n fill=\"white\"\r\n />\r\n </g>\r\n <defs>\r\n <filter\r\n id=\"filter0_dd_156_32114\"\r\n x=\"0\"\r\n y=\"0\"\r\n width=\"1850\"\r\n height=\"465\"\r\n filterUnits=\"userSpaceOnUse\"\r\n colorInterpolationFilters=\"sRGB\"\r\n >\r\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix\r\n in=\"SourceAlpha\"\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\"\r\n />\r\n <feOffset />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\r\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\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_156_32114\" />\r\n <feColorMatrix\r\n in=\"SourceAlpha\"\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\"\r\n />\r\n <feOffset dy=\"8\" />\r\n <feGaussianBlur stdDeviation=\"8\" />\r\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\r\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\" />\r\n <feBlend\r\n mode=\"normal\"\r\n in2=\"effect1_dropShadow_156_32114\"\r\n result=\"effect2_dropShadow_156_32114\"\r\n />\r\n <feBlend\r\n mode=\"normal\"\r\n in=\"SourceGraphic\"\r\n in2=\"effect2_dropShadow_156_32114\"\r\n result=\"shape\"\r\n />\r\n </filter>\r\n </defs>\r\n </svg>\r\n);\r\n\r\nexport default BackgroundTicketCard;\r\n","import React from 'react';\r\n\r\n/**\r\n * Vertical ticket card background with decorative perforated edges\r\n * Use this for mobile/portrait layouts\r\n */\r\nconst BackgroundTicketCardVertical = (props: React.SVGProps<SVGSVGElement>) => (\r\n <svg\r\n viewBox=\"0 0 465 1750\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n preserveAspectRatio=\"none\"\r\n {...props}\r\n >\r\n <g filter=\"url(#filter0_dd_156_32115)\">\r\n <path\r\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\"\r\n fill=\"white\"\r\n />\r\n </g>\r\n <defs>\r\n <filter\r\n id=\"filter0_dd_156_32115\"\r\n x=\"0\"\r\n y=\"0\"\r\n width=\"465\"\r\n height=\"1750\"\r\n filterUnits=\"userSpaceOnUse\"\r\n colorInterpolationFilters=\"sRGB\"\r\n >\r\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix\r\n in=\"SourceAlpha\"\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\"\r\n />\r\n <feOffset />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\r\n <feColorMatrix\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12 0\"\r\n />\r\n <feBlend\r\n mode=\"normal\"\r\n in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_156_32115\"\r\n />\r\n <feColorMatrix\r\n in=\"SourceAlpha\"\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\"\r\n />\r\n <feOffset dy=\"8\" />\r\n <feGaussianBlur stdDeviation=\"8\" />\r\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\r\n <feColorMatrix\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14 0\"\r\n />\r\n <feBlend\r\n mode=\"normal\"\r\n in2=\"effect1_dropShadow_156_32115\"\r\n result=\"effect2_dropShadow_156_32115\"\r\n />\r\n <feBlend\r\n mode=\"normal\"\r\n in=\"SourceGraphic\"\r\n in2=\"effect2_dropShadow_156_32115\"\r\n result=\"shape\"\r\n />\r\n </filter>\r\n </defs>\r\n </svg>\r\n);\r\n\r\nexport default BackgroundTicketCardVertical;\r\n","import React from 'react';\r\nimport {\r\n Button,\r\n Card,\r\n Divider,\r\n makeStyles,\r\n mergeClasses,\r\n tokens,\r\n} from '@fluentui/react-components';\r\n\r\nconst useStyles = makeStyles({\r\n card: {\r\n width: '100%',\r\n boxSizing: 'border-box',\r\n padding: '0px',\r\n borderRadius: tokens.borderRadiusXLarge,\r\n },\r\n menuList: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n '@media (max-width: 1200px)': {\r\n flexDirection: 'row',\r\n overflowX: 'auto',\r\n flexWrap: 'nowrap',\r\n gap: '0px',\r\n WebkitOverflowScrolling: 'touch',\r\n scrollbarWidth: 'thin',\r\n justifyContent: 'space-around',\r\n },\r\n },\r\n menuItem: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n justifyContent: 'flex-start',\r\n padding: '12px',\r\n borderRadius: tokens.borderRadiusMedium,\r\n cursor: 'pointer',\r\n textAlign: 'left',\r\n transition: 'background-color 0.2s ease',\r\n textDecoration: 'none',\r\n color: tokens.colorNeutralForeground1,\r\n backgroundColor: tokens.colorNeutralBackground1,\r\n border: 'none',\r\n gap: '12px',\r\n '&:hover': {\r\n backgroundColor: tokens.colorNeutralBackground1Hover,\r\n },\r\n '@media (max-width: 1200px)': {\r\n padding: '10px 12px',\r\n flexShrink: 0,\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n textAlign: 'center',\r\n },\r\n },\r\n menuItemActive: {\r\n backgroundColor: tokens.colorNeutralBackground3,\r\n color: tokens.colorNeutralForeground1,\r\n '&:hover': {\r\n backgroundColor: tokens.colorNeutralBackground3Hover,\r\n },\r\n },\r\n logo: {\r\n height: '32px',\r\n width: '32px',\r\n flexShrink: 0,\r\n },\r\n textContent: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '4px',\r\n '@media (max-width: 1200px)': {\r\n alignItems: 'center',\r\n },\r\n },\r\n label: {\r\n fontSize: tokens.fontSizeBase300,\r\n fontWeight: tokens.fontWeightSemibold,\r\n lineHeight: '1.2',\r\n },\r\n description: {\r\n fontSize: tokens.fontSizeBase200,\r\n fontWeight: tokens.fontWeightRegular,\r\n color: tokens.colorNeutralForeground2,\r\n lineHeight: '1.4',\r\n '@media (max-width: 1200px)': {\r\n fontSize: tokens.fontSizeBase100,\r\n whiteSpace: 'nowrap',\r\n },\r\n },\r\n dividerVertical: {\r\n '@media (min-width: 1200px)': {\r\n display: 'none',\r\n },\r\n },\r\n dividerHorizontal: {\r\n '@media (max-width: 1200px)': {\r\n display: 'none',\r\n },\r\n },\r\n});\r\n\r\nexport interface ServiceMenuItem {\r\n id: string;\r\n label: string;\r\n logo?: string;\r\n description?: string;\r\n customStyle?: React.CSSProperties;\r\n}\r\n\r\nexport interface CardServiceMenuProps {\r\n /**\r\n * Array of menu items to display\r\n */\r\n items: ServiceMenuItem[];\r\n \r\n /**\r\n * Currently active item ID\r\n */\r\n activeItemId?: string;\r\n \r\n /**\r\n * Callback when an item is clicked\r\n */\r\n onItemClick?: (itemId: string) => void;\r\n \r\n /**\r\n * Whether to show descriptions on desktop\r\n * @default true\r\n */\r\n showDescriptions?: boolean;\r\n \r\n /**\r\n * Custom className for the card\r\n */\r\n className?: string;\r\n}\r\n\r\nexport const CardServiceMenu: React.FC<CardServiceMenuProps> = ({\r\n items,\r\n activeItemId,\r\n onItemClick,\r\n showDescriptions = true,\r\n className,\r\n}) => {\r\n const styles = useStyles();\r\n\r\n const getMenuItemClass = (itemId: string) => {\r\n const isActive = activeItemId === itemId;\r\n return mergeClasses(\r\n styles.menuItem,\r\n isActive && styles.menuItemActive\r\n );\r\n };\r\n\r\n return (\r\n <Card className={mergeClasses(styles.card, className)}>\r\n <div className={styles.menuList}>\r\n {items.map((item, index) => (\r\n <React.Fragment key={item.id}>\r\n <Button\r\n className={getMenuItemClass(item.id)}\r\n onClick={() => onItemClick?.(item.id)}\r\n style={item.customStyle}\r\n >\r\n {item.logo && (\r\n <img\r\n src={item.logo}\r\n alt={item.label}\r\n className={styles.logo}\r\n />\r\n )}\r\n <div className={styles.textContent}>\r\n <span className={styles.label}>{item.label}</span>\r\n {showDescriptions && item.description && (\r\n <span className={styles.description}>\r\n {item.description}\r\n </span>\r\n )}\r\n </div>\r\n </Button>\r\n {index < items.length - 1 && (\r\n <>\r\n <Divider className={styles.dividerHorizontal} />\r\n <Divider vertical className={styles.dividerVertical} />\r\n </>\r\n )}\r\n </React.Fragment>\r\n ))}\r\n </div>\r\n </Card>\r\n );\r\n};\r\n\r\nexport default CardServiceMenu;\r\n","/**\r\n * Auto-generated Figma Tokens\r\n * Generated by custom build script\r\n * Source: tokens.json\r\n * DO NOT EDIT MANUALLY - Run 'npm run tokens:build' to regenerate\r\n */\r\n\r\n// Brand Colors (Brand-10 to Brand-160)\r\nexport const brandColors = {\r\n '10': '#001a1bff',\r\n '20': '#02383bff',\r\n '30': '#002426',\r\n '40': '#004044',\r\n '50': '#005D62',\r\n '60': '#007A81',\r\n '70': '#00969F',\r\n '80': '#00B3BD',\r\n '90': '#29BFC8',\r\n '100': '#52CBD2',\r\n '110': '#7AD7DD',\r\n '120': '#A3E4E7',\r\n '130': '#CCF0F2',\r\n '140': '#E1F7F8',\r\n '150': '#fdfdff',\r\n '160': '#ffffff',\r\n};\r\n\r\n// Design System Tokens\r\nexport const spacing = {\r\n '20': 2,\r\n '40': 4,\r\n '60': 6,\r\n '70': 7,\r\n '80': 8,\r\n '100': 10,\r\n '120': 12,\r\n '150': 15,\r\n '160': 16,\r\n '170': 17,\r\n '180': 18,\r\n '190': 19,\r\n '200': 20,\r\n '220': 22,\r\n '240': 24,\r\n '260': 26,\r\n '270': 27,\r\n '280': 28,\r\n '320': 32,\r\n '360': 36,\r\n '400': 40,\r\n '480': 48,\r\n '520': 52,\r\n '560': 56,\r\n '580': 58,\r\n '600': 60,\r\n '640': 64,\r\n '680': 68,\r\n '720': 72,\r\n '760': 76,\r\n '800': 80,\r\n '860': 86,\r\n '900': 90,\r\n '960': 96,\r\n '1000': 100,\r\n '1020': 102,\r\n};\r\n\r\nexport const borderRadius = {\r\n '20': 2,\r\n '40': 4,\r\n '60': 6,\r\n '80': 8,\r\n '120': 12,\r\n '160': 16,\r\n '240': 24,\r\n '320': 32,\r\n '400': 40,\r\n 'Circular': 9999,\r\n};\r\n\r\nexport const fontSize = {\r\n '190': 19,\r\n '200': 20,\r\n '220': 22,\r\n};\r\n\r\nexport const fontWeight = {\r\n 'Regular': 400,\r\n 'Medium': 500,\r\n 'Semibold': 600,\r\n};\r\n\r\nexport const lineHeight = {\r\n 'lineHeightBase210': 21,\r\n};\r\n\r\nexport const strokeWidth = {\r\n '10': 1,\r\n '15': 1.5,\r\n '20': 2,\r\n '30': 3,\r\n '40': 4,\r\n '60': 6,\r\n '05': 0.5,\r\n};\r\n\r\n// Shared Global Colors (Palettes: Secondary, Green, Blue, etc.)\r\nexport const sharedColors = {\r\n 'Shared_Dark_red_Shade_50': '#130204',\r\n 'Shared_Dark_red_Shade_40': '#230308',\r\n 'Shared_Dark_red_Shade_30': '#420610',\r\n 'Shared_Dark_red_Shade_20': '#590815',\r\n 'Shared_Dark_red_Shade_10': '#690a19',\r\n 'Shared_Dark_red_Primary': '#750b1c',\r\n 'Shared_Dark_red_Tint_10': '#861b2c',\r\n 'Shared_Dark_red_Tint_20': '#962f3f',\r\n 'Shared_Dark_red_Tint_30': '#ac4f5e',\r\n 'Shared_Dark_red_Tint_40': '#d69ca5',\r\n 'Shared_Dark_red_Tint_50': '#e9c7cd',\r\n 'Shared_Dark_red_Tint_60': '#f9f0f2',\r\n 'Shared_Burgundy_Shade_50': '#1a0607',\r\n 'Shared_Burgundy_Shade_40': '#310b0d',\r\n 'Shared_Burgundy_Shade_30': '#5c1519',\r\n 'Shared_Burgundy_Shade_20': '#7d1d21',\r\n 'Shared_Burgundy_Shade_10': '#942228',\r\n 'Shared_Burgundy_Primary': '#a4262c',\r\n 'Shared_Burgundy_Tint_10': '#af393e',\r\n 'Shared_Burgundy_Tint_20': '#ba4d52',\r\n 'Shared_Burgundy_Tint_30': '#c86c70',\r\n 'Shared_Burgundy_Tint_40': '#e4afb2',\r\n 'Shared_Burgundy_Tint_50': '#f0d3d4',\r\n 'Shared_Burgundy_Tint_60': '#fbf4f4',\r\n 'Shared_Cranberry_Shade_50': '#200205',\r\n 'Shared_Cranberry_Shade_40': '#3b0509',\r\n 'Shared_Cranberry_Shade_30': '#6e0811',\r\n 'Shared_Cranberry_Shade_20': '#960b18',\r\n 'Shared_Cranberry_Shade_10': '#b10e1c',\r\n 'Shared_Cranberry_Primary': '#c50f1f',\r\n 'Shared_Cranberry_Tint_10': '#cc2635',\r\n 'Shared_Cranberry_Tint_20': '#d33f4c',\r\n 'Shared_Cranberry_Tint_30': '#dc626d',\r\n 'Shared_Cranberry_Tint_40': '#eeacb2',\r\n 'Shared_Cranberry_Tint_50': '#f6d1d5',\r\n 'Shared_Cranberry_Tint_60': '#fdf3f4',\r\n 'Shared_Red_Shade_50': '#210809',\r\n 'Shared_Red_Shade_40': '#3f1011',\r\n 'Shared_Red_Shade_30': '#751d1f',\r\n 'Shared_Red_Shade_20': '#9f282b',\r\n 'Shared_Red_Shade_10': '#bc2f32',\r\n 'Shared_Red_Primary': '#d13438',\r\n 'Shared_Red_Tint_10': '#d7494c',\r\n 'Shared_Red_Tint_20': '#dc5e62',\r\n 'Shared_Red_Tint_30': '#e37d80',\r\n 'Shared_Red_Tint_40': '#f1bbbc',\r\n 'Shared_Red_Tint_50': '#f8dadb',\r\n 'Shared_Red_Tint_60': '#fdf6f6',\r\n 'Shared_Dark_orange_Shade_50': '#230900',\r\n 'Shared_Dark_orange_Shade_40': '#411200',\r\n 'Shared_Dark_orange_Shade_30': '#7a2101',\r\n 'Shared_Dark_orange_Shade_20': '#a62d01',\r\n 'Shared_Dark_orange_Shade_10': '#c43501',\r\n 'Shared_Dark_orange_Primary': '#da3b01',\r\n 'Shared_Dark_orange_Tint_10': '#de501c',\r\n 'Shared_Dark_orange_Tint_20': '#e36537',\r\n 'Shared_Dark_orange_Tint_30': '#e9835e',\r\n 'Shared_Dark_orange_Tint_40': '#f4bfab',\r\n 'Shared_Dark_orange_Tint_50': '#f9dcd1',\r\n 'Shared_Dark_orange_Tint_60': '#fdf6f3',\r\n 'Shared_Bronze_Shade_50': '#1b0a01',\r\n 'Shared_Bronze_Shade_40': '#321303',\r\n 'Shared_Bronze_Shade_30': '#5e2405',\r\n 'Shared_Bronze_Shade_20': '#7f3107',\r\n 'Shared_Bronze_Shade_10': '#963a08',\r\n 'Shared_Bronze_Primary': '#a74109',\r\n 'Shared_Bronze_Tint_10': '#b2521e',\r\n 'Shared_Bronze_Tint_20': '#bc6535',\r\n 'Shared_Bronze_Tint_30': '#ca8057',\r\n 'Shared_Bronze_Tint_40': '#e5bba4',\r\n 'Shared_Bronze_Tint_50': '#f1d9cc',\r\n 'Shared_Bronze_Tint_60': '#fbf5f2',\r\n 'Shared_Pumpkin_Shade_50': '#200d03',\r\n 'Shared_Pumpkin_Shade_40': '#3d1805',\r\n 'Shared_Pumpkin_Shade_30': '#712d09',\r\n 'Shared_Pumpkin_Shade_20': '#9a3d0c',\r\n 'Shared_Pumpkin_Shade_10': '#b6480e',\r\n 'Shared_Pumpkin_Primary': '#ca5010',\r\n 'Shared_Pumpkin_Tint_10': '#d06228',\r\n 'Shared_Pumpkin_Tint_20': '#d77440',\r\n 'Shared_Pumpkin_Tint_30': '#df8e64',\r\n 'Shared_Pumpkin_Tint_40': '#efc4ad',\r\n 'Shared_Pumpkin_Tint_50': '#f7dfd2',\r\n 'Shared_Pumpkin_Tint_60': '#fdf7f4',\r\n 'Shared_Orange_Shade_50': '#271002',\r\n 'Shared_Orange_Shade_40': '#4a1e04',\r\n 'Shared_Orange_Shade_30': '#8a3707',\r\n 'Shared_Orange_Shade_20': '#bc4b09',\r\n 'Shared_Orange_Shade_10': '#de590b',\r\n 'Shared_Orange_Primary': '#f7630c',\r\n 'Shared_Orange_Tint_10': '#f87528',\r\n 'Shared_Orange_Tint_20': '#f98845',\r\n 'Shared_Orange_Tint_30': '#faa06b',\r\n 'Shared_Orange_Tint_40': '#fdcfb4',\r\n 'Shared_Orange_Tint_50': '#fee5d7',\r\n 'Shared_Orange_Tint_60': '#fff9f5',\r\n 'Shared_Peach_Shade_50': '#291600',\r\n 'Shared_Peach_Shade_40': '#4d2a00',\r\n 'Shared_Peach_Shade_30': '#8f4e00',\r\n 'Shared_Peach_Shade_20': '#c26a00',\r\n 'Shared_Peach_Shade_10': '#e67e00',\r\n 'Shared_Peach_Primary': '#ff8c00',\r\n 'Shared_Peach_Tint_10': '#ff9a1f',\r\n 'Shared_Peach_Tint_20': '#ffa83d',\r\n 'Shared_Peach_Tint_30': '#ffba66',\r\n 'Shared_Peach_Tint_40': '#ffddb3',\r\n 'Shared_Peach_Tint_50': '#ffedd6',\r\n 'Shared_Peach_Tint_60': '#fffaf5',\r\n 'Shared_Marigold_Shade_50': '#251a00',\r\n 'Shared_Marigold_Shade_40': '#463100',\r\n 'Shared_Marigold_Shade_30': '#835b00',\r\n 'Shared_Marigold_Shade_20': '#b27c00',\r\n 'Shared_Marigold_Shade_10': '#d39300',\r\n 'Shared_Marigold_Primary': '#eaa300',\r\n 'Shared_Marigold_Tint_10': '#edad1c',\r\n 'Shared_Marigold_Tint_20': '#efb839',\r\n 'Shared_Marigold_Tint_30': '#f2c661',\r\n 'Shared_Marigold_Tint_40': '#f9e2ae',\r\n 'Shared_Marigold_Tint_50': '#fcefd3',\r\n 'Shared_Marigold_Tint_60': '#fefbf4',\r\n 'Shared_Yellow_Shade_50': '#282400',\r\n 'Shared_Yellow_Shade_40': '#4c4400',\r\n 'Shared_Yellow_Shade_30': '#817400',\r\n 'Shared_Yellow_Shade_20': '#c0ad00',\r\n 'Shared_Yellow_Shade_10': '#e4cc00',\r\n 'Shared_Yellow_Primary': '#fde300',\r\n 'Shared_Yellow_Tint_10': '#fde61e',\r\n 'Shared_Yellow_Tint_20': '#fdea3d',\r\n 'Shared_Yellow_Tint_30': '#feee66',\r\n 'Shared_Yellow_Tint_40': '#fef7b2',\r\n 'Shared_Yellow_Tint_50': '#fffad6',\r\n 'Shared_Yellow_Tint_60': '#fffef5',\r\n 'Shared_Gold_Shade_50': '#1f1900',\r\n 'Shared_Gold_Shade_40': '#3a2f00',\r\n 'Shared_Gold_Shade_30': '#6c5700',\r\n 'Shared_Gold_Shade_20': '#937700',\r\n 'Shared_Gold_Shade_10': '#ae8c00',\r\n 'Shared_Gold_Primary': '#c19c00',\r\n 'Shared_Gold_Tint_10': '#c8a718',\r\n 'Shared_Gold_Tint_20': '#d0b232',\r\n 'Shared_Gold_Tint_30': '#dac157',\r\n 'Shared_Gold_Tint_40': '#ecdfa5',\r\n 'Shared_Gold_Tint_50': '#f5eece',\r\n 'Shared_Gold_Tint_60': '#fdfbf2',\r\n 'Shared_Brass_Shade_50': '#181202',\r\n 'Shared_Brass_Shade_40': '#2e2103',\r\n 'Shared_Brass_Shade_30': '#553e06',\r\n 'Shared_Brass_Shade_20': '#745408',\r\n 'Shared_Brass_Shade_10': '#89640a',\r\n 'Shared_Brass_Primary': '#986f0b',\r\n 'Shared_Brass_Tint_10': '#a47d1e',\r\n 'Shared_Brass_Tint_20': '#b18c34',\r\n 'Shared_Brass_Tint_30': '#c1a256',\r\n 'Shared_Brass_Tint_40': '#e0cea2',\r\n 'Shared_Brass_Tint_50': '#efe4cb',\r\n 'Shared_Brass_Tint_60': '#fbf8f2',\r\n 'Shared_Brown_Shade_50': '#170e07',\r\n 'Shared_Brown_Shade_40': '#2b1a0e',\r\n 'Shared_Brown_Shade_30': '#50301a',\r\n 'Shared_Brown_Shade_20': '#6c4123',\r\n 'Shared_Brown_Shade_10': '#804d29',\r\n 'Shared_Brown_Primary': '#8e562e',\r\n 'Shared_Brown_Tint_10': '#9c663f',\r\n 'Shared_Brown_Tint_20': '#a97652',\r\n 'Shared_Brown_Tint_30': '#bb8f6f',\r\n 'Shared_Brown_Tint_40': '#ddc3b0',\r\n 'Shared_Brown_Tint_50': '#edded3',\r\n 'Shared_Brown_Tint_60': '#faf7f4',\r\n 'Shared_Dark_brown_Shade_50': '#0c0704',\r\n 'Shared_Dark_brown_Shade_40': '#170c08',\r\n 'Shared_Dark_brown_Shade_30': '#2b1710',\r\n 'Shared_Dark_brown_Shade_20': '#3a1f15',\r\n 'Shared_Dark_brown_Shade_10': '#452519',\r\n 'Shared_Dark_brown_Primary': '#4d291c',\r\n 'Shared_Dark_brown_Tint_10': '#623a2b',\r\n 'Shared_Dark_brown_Tint_20': '#784d3e',\r\n 'Shared_Dark_brown_Tint_30': '#946b5c',\r\n 'Shared_Dark_brown_Tint_40': '#caada3',\r\n 'Shared_Dark_brown_Tint_50': '#e3d2cb',\r\n 'Shared_Dark_brown_Tint_60': '#f8f3f2',\r\n 'Shared_Lime_Shade_50': '#121b06',\r\n 'Shared_Lime_Shade_40': '#23330b',\r\n 'Shared_Lime_Shade_30': '#405f14',\r\n 'Shared_Lime_Shade_20': '#57811b',\r\n 'Shared_Lime_Shade_10': '#689920',\r\n 'Shared_Lime_Primary': '#73aa24',\r\n 'Shared_Lime_Tint_10': '#81b437',\r\n 'Shared_Lime_Tint_20': '#90be4c',\r\n 'Shared_Lime_Tint_30': '#a4cc6c',\r\n 'Shared_Lime_Tint_40': '#cfe5af',\r\n 'Shared_Lime_Tint_50': '#e5f1d3',\r\n 'Shared_Lime_Tint_60': '#f8fcf4',\r\n 'Shared_Forest_Shade_50': '#0c1501',\r\n 'Shared_Forest_Shade_40': '#162702',\r\n 'Shared_Forest_Shade_30': '#294903',\r\n 'Shared_Forest_Shade_20': '#376304',\r\n 'Shared_Forest_Shade_10': '#427505',\r\n 'Shared_Forest_Primary': '#498205',\r\n 'Shared_Forest_Tint_10': '#599116',\r\n 'Shared_Forest_Tint_20': '#6ba02b',\r\n 'Shared_Forest_Tint_30': '#85b44c',\r\n 'Shared_Forest_Tint_40': '#bdd99b',\r\n 'Shared_Forest_Tint_50': '#dbebc7',\r\n 'Shared_Forest_Tint_60': '#f6faf0',\r\n 'Shared_Seafoam_Shade_50': '#002111',\r\n 'Shared_Seafoam_Shade_40': '#003d20',\r\n 'Shared_Seafoam_Shade_30': '#00723b',\r\n 'Shared_Seafoam_Shade_20': '#009b51',\r\n 'Shared_Seafoam_Shade_10': '#00b85f',\r\n 'Shared_Seafoam_Primary': '#00cc6a',\r\n 'Shared_Seafoam_Tint_10': '#19d279',\r\n 'Shared_Seafoam_Tint_20': '#34d889',\r\n 'Shared_Seafoam_Tint_30': '#5ae0a0',\r\n 'Shared_Seafoam_Tint_40': '#a8f0cd',\r\n 'Shared_Seafoam_Tint_50': '#cff7e4',\r\n 'Shared_Seafoam_Tint_60': '#f3fdf8',\r\n 'Shared_Light_green_Shade_50': '#031a02',\r\n 'Shared_Light_green_Shade_40': '#063004',\r\n 'Shared_Light_green_Shade_30': '#0b5a08',\r\n 'Shared_Light_green_Shade_20': '#0e7a0b',\r\n 'Shared_Light_green_Shade_10': '#11910d',\r\n 'Shared_Light_green_Primary': '#13a10e',\r\n 'Shared_Light_green_Tint_10': '#27ac22',\r\n 'Shared_Light_green_Tint_20': '#3db838',\r\n 'Shared_Light_green_Tint_30': '#5ec75a',\r\n 'Shared_Light_green_Tint_40': '#a7e3a5',\r\n 'Shared_Light_green_Tint_50': '#cef0cd',\r\n 'Shared_Light_green_Tint_60': '#f2fbf2',\r\n 'Shared_Green_Shade_50': '#031403',\r\n 'Shared_Green_Shade_40': '#052505',\r\n 'Shared_Green_Shade_30': '#094509',\r\n 'Shared_Green_Shade_20': '#0c5e0c',\r\n 'Shared_Green_Shade_10': '#0e700e',\r\n 'Shared_Green_Primary': '#107c10',\r\n 'Shared_Green_Tint_10': '#218c21',\r\n 'Shared_Green_Tint_20': '#359b35',\r\n 'Shared_Green_Tint_30': '#54b054',\r\n 'Shared_Green_Tint_40': '#9fd89f',\r\n 'Shared_Green_Tint_50': '#c9eac9',\r\n 'Shared_Green_Tint_60': '#f1faf1',\r\n 'Shared_Dark_green_Shade_50': '#021102',\r\n 'Shared_Dark_green_Shade_40': '#032003',\r\n 'Shared_Dark_green_Shade_30': '#063b06',\r\n 'Shared_Dark_green_Shade_20': '#085108',\r\n 'Shared_Dark_green_Shade_10': '#0a5f0a',\r\n 'Shared_Dark_green_Primary': '#0b6a0b',\r\n 'Shared_Dark_green_Tint_10': '#1a7c1a',\r\n 'Shared_Dark_green_Tint_20': '#2d8e2d',\r\n 'Shared_Dark_green_Tint_30': '#4da64d',\r\n 'Shared_Dark_green_Tint_40': '#9ad29a',\r\n 'Shared_Dark_green_Tint_50': '#c6e7c6',\r\n 'Shared_Dark_green_Tint_60': '#f0f9f0',\r\n 'Shared_Light_teal_Shade_50': '#001d1f',\r\n 'Shared_Light_teal_Shade_40': '#00373a',\r\n 'Shared_Light_teal_Shade_30': '#00666d',\r\n 'Shared_Light_teal_Shade_20': '#008b94',\r\n 'Shared_Light_teal_Shade_10': '#00a5af',\r\n 'Shared_Light_teal_Primary': '#00b7c3',\r\n 'Shared_Light_teal_Tint_10': '#18bfca',\r\n 'Shared_Light_teal_Tint_20': '#32c8d1',\r\n 'Shared_Light_teal_Tint_30': '#58d3db',\r\n 'Shared_Light_teal_Tint_40': '#a6e9ed',\r\n 'Shared_Light_teal_Tint_50': '#cef3f5',\r\n 'Shared_Light_teal_Tint_60': '#f2fcfd',\r\n 'Shared_Teal_Shade_50': '#001516',\r\n 'Shared_Teal_Shade_40': '#012728',\r\n 'Shared_Teal_Shade_30': '#02494c',\r\n 'Shared_Teal_Shade_20': '#026467',\r\n 'Shared_Teal_Shade_10': '#037679',\r\n 'Shared_Teal_Primary': '#038387',\r\n 'Shared_Teal_Tint_10': '#159195',\r\n 'Shared_Teal_Tint_20': '#2aa0a4',\r\n 'Shared_Teal_Tint_30': '#4cb4b7',\r\n 'Shared_Teal_Tint_40': '#9bd9db',\r\n 'Shared_Teal_Tint_50': '#c7ebec',\r\n 'Shared_Teal_Tint_60': '#f0fafa',\r\n 'Shared_Dark_teal_Shade_50': '#001010',\r\n 'Shared_Dark_teal_Shade_40': '#001f1f',\r\n 'Shared_Dark_teal_Shade_30': '#003939',\r\n 'Shared_Dark_teal_Shade_20': '#004e4e',\r\n 'Shared_Dark_teal_Shade_10': '#005c5c',\r\n 'Shared_Dark_teal_Primary': '#006666',\r\n 'Shared_Dark_teal_Tint_10': '#0e7878',\r\n 'Shared_Dark_teal_Tint_20': '#218b8b',\r\n 'Shared_Dark_teal_Tint_30': '#41a3a3',\r\n 'Shared_Dark_teal_Tint_40': '#92d1d1',\r\n 'Shared_Dark_teal_Tint_50': '#c2e7e7',\r\n 'Shared_Dark_teal_Tint_60': '#eff9f9',\r\n 'Shared_Cyan_Shade_50': '#00181e',\r\n 'Shared_Cyan_Shade_40': '#002e38',\r\n 'Shared_Cyan_Shade_30': '#005669',\r\n 'Shared_Cyan_Shade_20': '#00748f',\r\n 'Shared_Cyan_Shade_10': '#008aa9',\r\n 'Shared_Cyan_Primary': '#0099bc',\r\n 'Shared_Cyan_Tint_10': '#18a4c4',\r\n 'Shared_Cyan_Tint_20': '#31afcc',\r\n 'Shared_Cyan_Tint_30': '#56bfd7',\r\n 'Shared_Cyan_Tint_40': '#a4deeb',\r\n 'Shared_Cyan_Tint_50': '#cdedf4',\r\n 'Shared_Cyan_Tint_60': '#f2fafc',\r\n 'Shared_Steel_Shade_50': '#000f12',\r\n 'Shared_Steel_Shade_40': '#001b22',\r\n 'Shared_Steel_Shade_30': '#00333f',\r\n 'Shared_Steel_Shade_20': '#004555',\r\n 'Shared_Steel_Shade_10': '#005265',\r\n 'Shared_Steel_Primary': '#005b70',\r\n 'Shared_Steel_Tint_10': '#0f6c81',\r\n 'Shared_Steel_Tint_20': '#237d92',\r\n 'Shared_Steel_Tint_30': '#4496a9',\r\n 'Shared_Steel_Tint_40': '#94c8d4',\r\n 'Shared_Steel_Tint_50': '#c3e1e8',\r\n 'Shared_Steel_Tint_60': '#eff7f9',\r\n 'Shared_Light_blue_Shade_50': '#091823',\r\n 'Shared_Light_blue_Shade_40': '#112d42',\r\n 'Shared_Light_blue_Shade_30': '#20547c',\r\n 'Shared_Light_blue_Shade_20': '#2c72a8',\r\n 'Shared_Light_blue_Shade_10': '#3487c7',\r\n 'Shared_Light_blue_Primary': '#3a96dd',\r\n 'Shared_Light_blue_Tint_10': '#4fa1e1',\r\n 'Shared_Light_blue_Tint_20': '#65ade5',\r\n 'Shared_Light_blue_Tint_30': '#83bdeb',\r\n 'Shared_Light_blue_Tint_40': '#bfddf5',\r\n 'Shared_Light_blue_Tint_50': '#dcedfa',\r\n 'Shared_Light_blue_Tint_60': '#f6fafe',\r\n 'Shared_Blue_Shade_50': '#001322',\r\n 'Shared_Blue_Shade_40': '#002440',\r\n 'Shared_Blue_Shade_30': '#004377',\r\n 'Shared_Blue_Shade_20': '#005ba1',\r\n 'Shared_Blue_Shade_10': '#006cbf',\r\n 'Shared_Blue_Primary': '#0078d4',\r\n 'Shared_Blue_Tint_10': '#1a86d9',\r\n 'Shared_Blue_Tint_20': '#3595de',\r\n 'Shared_Blue_Tint_30': '#5caae5',\r\n 'Shared_Blue_Tint_40': '#a9d3f2',\r\n 'Shared_Blue_Tint_50': '#d0e7f8',\r\n 'Shared_Blue_Tint_60': '#f3f9fd',\r\n 'Shared_Royal_blue_Shade_50': '#000c16',\r\n 'Shared_Royal_blue_Shade_40': '#00172a',\r\n 'Shared_Royal_blue_Shade_30': '#002c4e',\r\n 'Shared_Royal_blue_Shade_20': '#003b6a',\r\n 'Shared_Royal_blue_Shade_10': '#00467e',\r\n 'Shared_Royal_blue_Primary': '#004e8c',\r\n 'Shared_Royal_blue_Tint_10': '#125e9a',\r\n 'Shared_Royal_blue_Tint_20': '#286fa8',\r\n 'Shared_Royal_blue_Tint_30': '#4a89ba',\r\n 'Shared_Royal_blue_Tint_40': '#9abfdc',\r\n 'Shared_Royal_blue_Tint_50': '#c7dced',\r\n 'Shared_Royal_blue_Tint_60': '#f0f6fa',\r\n 'Shared_Dark_blue_Shade_50': '#000910',\r\n 'Shared_Dark_blue_Shade_40': '#00111f',\r\n 'Shared_Dark_blue_Shade_30': '#002039',\r\n 'Shared_Dark_blue_Shade_20': '#002b4e',\r\n 'Shared_Dark_blue_Shade_10': '#00335c',\r\n 'Shared_Dark_blue_Primary': '#003966',\r\n 'Shared_Dark_blue_Tint_10': '#0e4a78',\r\n 'Shared_Dark_blue_Tint_20': '#215c8b',\r\n 'Shared_Dark_blue_Tint_30': '#4178a3',\r\n 'Shared_Dark_blue_Tint_40': '#92b5d1',\r\n 'Shared_Dark_blue_Tint_50': '#c2d6e7',\r\n 'Shared_Dark_blue_Tint_60': '#eff4f9',\r\n 'Shared_Cornflower_Shade_50': '#0d1126',\r\n 'Shared_Cornflower_Shade_40': '#182047',\r\n 'Shared_Cornflower_Shade_30': '#2c3c85',\r\n 'Shared_Cornflower_Shade_20': '#3c51b4',\r\n 'Shared_Cornflower_Shade_10': '#4760d5',\r\n 'Shared_Cornflower_Primary': '#4f6bed',\r\n 'Shared_Cornflower_Tint_10': '#637cef',\r\n 'Shared_Cornflower_Tint_20': '#778df1',\r\n 'Shared_Cornflower_Tint_30': '#93a4f4',\r\n 'Shared_Cornflower_Tint_40': '#c8d1fa',\r\n 'Shared_Cornflower_Tint_50': '#e1e6fc',\r\n 'Shared_Cornflower_Tint_60': '#f7f9fe',\r\n 'Shared_Navy_Shade_50': '#00061d',\r\n 'Shared_Navy_Shade_40': '#000c36',\r\n 'Shared_Navy_Shade_30': '#001665',\r\n 'Shared_Navy_Shade_20': '#001e89',\r\n 'Shared_Navy_Shade_10': '#0023a2',\r\n 'Shared_Navy_Primary': '#0027b4',\r\n 'Shared_Navy_Tint_10': '#173bbd',\r\n 'Shared_Navy_Tint_20': '#3050c6',\r\n 'Shared_Navy_Tint_30': '#546fd2',\r\n 'Shared_Navy_Tint_40': '#a3b2e8',\r\n 'Shared_Navy_Tint_50': '#ccd5f3',\r\n 'Shared_Navy_Tint_60': '#f2f4fc',\r\n 'Shared_Lavender_Shade_50': '#120f25',\r\n 'Shared_Lavender_Shade_40': '#221d46',\r\n 'Shared_Lavender_Shade_30': '#3f3682',\r\n 'Shared_Lavender_Shade_20': '#5649b0',\r\n 'Shared_Lavender_Shade_10': '#6656d1',\r\n 'Shared_Lavender_Primary': '#7160e8',\r\n 'Shared_Lavender_Tint_10': '#8172eb',\r\n 'Shared_Lavender_Tint_20': '#9184ee',\r\n 'Shared_Lavender_Tint_30': '#a79cf1',\r\n 'Shared_Lavender_Tint_40': '#d2ccf8',\r\n 'Shared_Lavender_Tint_50': '#e7e4fb',\r\n 'Shared_Lavender_Tint_60': '#f9f8fe',\r\n 'Shared_Purple_Shade_50': '#0f0717',\r\n 'Shared_Purple_Shade_40': '#1c0e2b',\r\n 'Shared_Purple_Shade_30': '#341a51',\r\n 'Shared_Purple_Shade_20': '#46236e',\r\n 'Shared_Purple_Shade_10': '#532982',\r\n 'Shared_Purple_Primary': '#5c2e91',\r\n 'Shared_Purple_Tint_10': '#6b3f9e',\r\n 'Shared_Purple_Tint_20': '#7c52ab',\r\n 'Shared_Purple_Tint_30': '#9470bd',\r\n 'Shared_Purple_Tint_40': '#c6b1de',\r\n 'Shared_Purple_Tint_50': '#e0d3ed',\r\n 'Shared_Purple_Tint_60': '#f7f4fb',\r\n 'Shared_Dark_purple_Shade_50': '#0a0411',\r\n 'Shared_Dark_purple_Shade_40': '#130820',\r\n 'Shared_Dark_purple_Shade_30': '#240f3c',\r\n 'Shared_Dark_purple_Shade_20': '#311552',\r\n 'Shared_Dark_purple_Shade_10': '#3a1861',\r\n 'Shared_Dark_purple_Primary': '#401b6c',\r\n 'Shared_Dark_purple_Tint_10': '#512b7e',\r\n 'Shared_Dark_purple_Tint_20': '#633e8f',\r\n 'Shared_Dark_purple_Tint_30': '#7e5ca7',\r\n 'Shared_Dark_purple_Tint_40': '#b9a3d3',\r\n 'Shared_Dark_purple_Tint_50': '#d8cce7',\r\n 'Shared_Dark_purple_Tint_60': '#f5f2f9',\r\n 'Shared_Orchid_Shade_50': '#16101d',\r\n 'Shared_Orchid_Shade_40': '#281e37',\r\n 'Shared_Orchid_Shade_30': '#4c3867',\r\n 'Shared_Orchid_Shade_20': '#674c8c',\r\n 'Shared_Orchid_Shade_10': '#795aa6',\r\n 'Shared_Orchid_Primary': '#8764b8',\r\n 'Shared_Orchid_Tint_10': '#9373c0',\r\n 'Shared_Orchid_Tint_20': '#a083c9',\r\n 'Shared_Orchid_Tint_30': '#b29ad4',\r\n 'Shared_Orchid_Tint_40': '#d7caea',\r\n 'Shared_Orchid_Tint_50': '#e9e2f4',\r\n 'Shared_Orchid_Tint_60': '#f9f8fc',\r\n 'Shared_Grape_Shade_50': '#160418',\r\n 'Shared_Grape_Shade_40': '#29072e',\r\n 'Shared_Grape_Shade_30': '#4c0d55',\r\n 'Shared_Grape_Shade_20': '#671174',\r\n 'Shared_Grape_Shade_10': '#7a1589',\r\n 'Shared_Grape_Primary': '#881798',\r\n 'Shared_Grape_Tint_10': '#952aa4',\r\n 'Shared_Grape_Tint_20': '#a33fb1',\r\n 'Shared_Grape_Tint_30': '#b55fc1',\r\n 'Shared_Grape_Tint_40': '#d9a7e0',\r\n 'Shared_Grape_Tint_50': '#eaceef',\r\n 'Shared_Grape_Tint_60': '#faf2fb',\r\n 'Shared_Berry_Shade_50': '#1f091d',\r\n 'Shared_Berry_Shade_40': '#3a1136',\r\n 'Shared_Berry_Shade_30': '#6d2064',\r\n 'Shared_Berry_Shade_20': '#932b88',\r\n 'Shared_Berry_Shade_10': '#af33a1',\r\n 'Shared_Berry_Primary': '#c239b3',\r\n 'Shared_Berry_Tint_10': '#c94cbc',\r\n 'Shared_Berry_Tint_20': '#d161c4',\r\n 'Shared_Berry_Tint_30': '#da7ed0',\r\n 'Shared_Berry_Tint_40': '#edbbe7',\r\n 'Shared_Berry_Tint_50': '#f5daf2',\r\n 'Shared_Berry_Tint_60': '#fdf5fc',\r\n 'Shared_Lilac_Shade_50': '#1c0b1f',\r\n 'Shared_Lilac_Shade_40': '#35153a',\r\n 'Shared_Lilac_Shade_30': '#63276d',\r\n 'Shared_Lilac_Shade_20': '#863593',\r\n 'Shared_Lilac_Shade_10': '#9f3faf',\r\n 'Shared_Lilac_Primary': '#b146c2',\r\n 'Shared_Lilac_Tint_10': '#ba58c9',\r\n 'Shared_Lilac_Tint_20': '#c36bd1',\r\n 'Shared_Lilac_Tint_30': '#cf87da',\r\n 'Shared_Lilac_Tint_40': '#e6bfed',\r\n 'Shared_Lilac_Tint_50': '#f2dcf5',\r\n 'Shared_Lilac_Tint_60': '#fcf6fd',\r\n 'Shared_Pink_Shade_50': '#24091b',\r\n 'Shared_Pink_Shade_40': '#441232',\r\n 'Shared_Pink_Shade_30': '#80215d',\r\n 'Shared_Pink_Shade_20': '#ad2d7e',\r\n 'Shared_Pink_Shade_10': '#cd3595',\r\n 'Shared_Pink_Primary': '#e43ba6',\r\n 'Shared_Pink_Tint_10': '#e750b0',\r\n 'Shared_Pink_Tint_20': '#ea66ba',\r\n 'Shared_Pink_Tint_30': '#ef85c8',\r\n 'Shared_Pink_Tint_40': '#f7c0e3',\r\n 'Shared_Pink_Tint_50': '#fbddf0',\r\n 'Shared_Pink_Tint_60': '#fef6fb',\r\n 'Shared_Hot_pink_Shade_50': '#240016',\r\n 'Shared_Hot_pink_Shade_40': '#44002a',\r\n 'Shared_Hot_pink_Shade_30': '#7f004e',\r\n 'Shared_Hot_pink_Shade_20': '#ad006a',\r\n 'Shared_Hot_pink_Shade_10': '#cc007e',\r\n 'Shared_Hot_pink_Primary': '#e3008c',\r\n 'Shared_Hot_pink_Tint_10': '#e61c99',\r\n 'Shared_Hot_pink_Tint_20': '#ea38a6',\r\n 'Shared_Hot_pink_Tint_30': '#ee5fb7',\r\n 'Shared_Hot_pink_Tint_40': '#f7adda',\r\n 'Shared_Hot_pink_Tint_50': '#fbd2eb',\r\n 'Shared_Hot_pink_Tint_60': '#fef4fa',\r\n 'Shared_Magenta_Shade_50': '#1f0013',\r\n 'Shared_Magenta_Shade_40': '#390024',\r\n 'Shared_Magenta_Shade_30': '#6b0043',\r\n 'Shared_Magenta_Shade_20': '#91005a',\r\n 'Shared_Magenta_Shade_10': '#ac006b',\r\n 'Shared_Magenta_Primary': '#bf0077',\r\n 'Shared_Magenta_Tint_10': '#c71885',\r\n 'Shared_Magenta_Tint_20': '#ce3293',\r\n 'Shared_Magenta_Tint_30': '#d957a8',\r\n 'Shared_Magenta_Tint_40': '#eca5d1',\r\n 'Shared_Magenta_Tint_50': '#f5cee6',\r\n 'Shared_Magenta_Tint_60': '#fcf2f9',\r\n 'Shared_Plum_Shade_50': '#13000c',\r\n 'Shared_Plum_Shade_40': '#240017',\r\n 'Shared_Plum_Shade_30': '#43002b',\r\n 'Shared_Plum_Shade_20': '#5a003b',\r\n 'Shared_Plum_Shade_10': '#6b0045',\r\n 'Shared_Plum_Primary': '#77004d',\r\n 'Shared_Plum_Tint_10': '#87105d',\r\n 'Shared_Plum_Tint_20': '#98246f',\r\n 'Shared_Plum_Tint_30': '#ad4589',\r\n 'Shared_Plum_Tint_40': '#d696c0',\r\n 'Shared_Plum_Tint_50': '#e9c4dc',\r\n 'Shared_Plum_Tint_60': '#faf0f6',\r\n 'Shared_Beige_Shade_50': '#141313',\r\n 'Shared_Beige_Shade_40': '#252323',\r\n 'Shared_Beige_Shade_30': '#444241',\r\n 'Shared_Beige_Shade_20': '#5d5958',\r\n 'Shared_Beige_Shade_10': '#6e6968',\r\n 'Shared_Beige_Primary': '#7a7574',\r\n 'Shared_Beige_Tint_10': '#8a8584',\r\n 'Shared_Beige_Tint_20': '#9a9594',\r\n 'Shared_Beige_Tint_30': '#afabaa',\r\n 'Shared_Beige_Tint_40': '#d7d4d4',\r\n 'Shared_Beige_Tint_50': '#eae8e8',\r\n 'Shared_Beige_Tint_60': '#faf9f9',\r\n 'Shared_Mink_Shade_50': '#0f0e0e',\r\n 'Shared_Mink_Shade_40': '#1c1b1a',\r\n 'Shared_Mink_Shade_30': '#343231',\r\n 'Shared_Mink_Shade_20': '#474443',\r\n 'Shared_Mink_Shade_10': '#54514f',\r\n 'Shared_Mink_Primary': '#5d5a58',\r\n 'Shared_Mink_Tint_10': '#706d6b',\r\n 'Shared_Mink_Tint_20': '#84817e',\r\n 'Shared_Mink_Tint_30': '#9e9b99',\r\n 'Shared_Mink_Tint_40': '#cecccb',\r\n 'Shared_Mink_Tint_50': '#e5e4e3',\r\n 'Shared_Mink_Tint_60': '#f8f8f8',\r\n 'Shared_Silver_Shade_50': '#151818',\r\n 'Shared_Silver_Shade_40': '#282d2e',\r\n 'Shared_Silver_Shade_30': '#4a5356',\r\n 'Shared_Silver_Shade_20': '#657174',\r\n 'Shared_Silver_Shade_10': '#78868a',\r\n 'Shared_Silver_Primary': '#859599',\r\n 'Shared_Silver_Tint_10': '#92a1a5',\r\n 'Shared_Silver_Tint_20': '#a0aeb1',\r\n 'Shared_Silver_Tint_30': '#b3bfc2',\r\n 'Shared_Silver_Tint_40': '#d8dfe0',\r\n 'Shared_Silver_Tint_50': '#eaeeef',\r\n 'Shared_Silver_Tint_60': '#fafbfb',\r\n 'Shared_Platinum_Shade_50': '#111314',\r\n 'Shared_Platinum_Shade_40': '#1f2426',\r\n 'Shared_Platinum_Shade_30': '#3b4447',\r\n 'Shared_Platinum_Shade_20': '#505c60',\r\n 'Shared_Platinum_Shade_10': '#5f6d71',\r\n 'Shared_Platinum_Primary': '#69797e',\r\n 'Shared_Platinum_Tint_10': '#79898d',\r\n 'Shared_Platinum_Tint_20': '#89989d',\r\n 'Shared_Platinum_Tint_30': '#a0adb2',\r\n 'Shared_Platinum_Tint_40': '#cdd6d8',\r\n 'Shared_Platinum_Tint_50': '#e4e9ea',\r\n 'Shared_Platinum_Tint_60': '#f8f9fa',\r\n 'Shared_Anchor_Shade_50': '#090a0b',\r\n 'Shared_Anchor_Shade_40': '#111315',\r\n 'Shared_Anchor_Shade_30': '#202427',\r\n 'Shared_Anchor_Shade_20': '#2b3135',\r\n 'Shared_Anchor_Shade_10': '#333a3f',\r\n 'Shared_Anchor_Primary': '#394146',\r\n 'Shared_Anchor_Tint_10': '#4d565c',\r\n 'Shared_Anchor_Tint_20': '#626c72',\r\n 'Shared_Anchor_Tint_30': '#808a90',\r\n 'Shared_Anchor_Tint_40': '#bcc3c7',\r\n 'Shared_Anchor_Tint_50': '#dbdfe1',\r\n 'Shared_Anchor_Tint_60': '#f6f7f8',\r\n 'Shared_Charcoal_Shade_50': '#090909',\r\n 'Shared_Charcoal_Shade_40': '#111111',\r\n 'Shared_Charcoal_Shade_30': '#202020',\r\n 'Shared_Charcoal_Shade_20': '#2b2b2b',\r\n 'Shared_Charcoal_Shade_10': '#333333',\r\n 'Shared_Charcoal_Primary': '#393939',\r\n 'Shared_Charcoal_Tint_10': '#515151',\r\n 'Shared_Charcoal_Tint_20': '#686868',\r\n 'Shared_Charcoal_Tint_30': '#888888',\r\n 'Shared_Charcoal_Tint_40': '#c4c4c4',\r\n 'Shared_Charcoal_Tint_50': '#dfdfdf',\r\n 'Shared_Charcoal_Tint_60': '#f7f7f7',\r\n 'Shared_Charcoal_Color': '#ffffff',\r\n 'Shared_Secondary_Shade_50': '#1c280d',\r\n 'Shared_Secondary_Shade_40': '#334717',\r\n 'Shared_Secondary_Shade_30': '#496721',\r\n 'Shared_Secondary_Shade_20': '#60872b',\r\n 'Shared_Secondary_Shade_10': '#76a635',\r\n 'Shared_Secondary_Primary': '#5C9F38',\r\n 'Shared_Secondary_Tint_10': '#9fcf5e',\r\n 'Shared_Secondary_Tint_20': '#b1d87c',\r\n 'Shared_Secondary_Tint_30': '#c4e19b',\r\n 'Shared_Secondary_Tint_40': '#d6eaba',\r\n 'Shared_Secondary_Tint_50': '#e8f4d9',\r\n 'Shared_Secondary_Tint_60': '#fafdf7',\r\n 'Shared_Tertiary_Shade_50': '#002330',\r\n 'Shared_Tertiary_Shade_40': '#003f56',\r\n 'Shared_Tertiary_Shade_30': '#005a7c',\r\n 'Shared_Tertiary_Shade_20': '#0076a3',\r\n 'Shared_Tertiary_Shade_10': '#0092c9',\r\n 'Shared_Tertiary_Primary': '#00aeef',\r\n 'Shared_Tertiary_Tint_10': '#29bbf2',\r\n 'Shared_Tertiary_Tint_20': '#52c8f4',\r\n 'Shared_Tertiary_Tint_30': '#7ad5f7',\r\n 'Shared_Tertiary_Tint_40': '#a3e2f9',\r\n 'Shared_Tertiary_Tint_50': '#cceffc',\r\n 'Shared_Tertiary_Tint_60': '#f5fcfe',\r\n 'Shared_Quarternary_Shade_50': '#002426',\r\n 'Shared_Quarternary_Shade_40': '#004044',\r\n 'Shared_Quarternary_Shade_30': '#005d62',\r\n 'Shared_Quarternary_Shade_20': '#007a81',\r\n 'Shared_Quarternary_Shade_10': '#00969f',\r\n 'Shared_Quarternary_Primary': '#00b3bd',\r\n 'Shared_Quarternary_Tint_10': '#29bfc8',\r\n 'Shared_Quarternary_Tint_20': '#52cbd2',\r\n 'Shared_Quarternary_Tint_30': '#7ad7dd',\r\n 'Shared_Quarternary_Tint_40': '#a3e4e7',\r\n 'Shared_Quarternary_Tint_50': '#ccf0f2',\r\n 'Shared_Quarternary_Tint_60': '#f5fcfc',\r\n};\r\n\r\nexport const foundationColors = {\r\n 'Foundation_Danger_error': '#FD3A3A',\r\n};\r\n\r\nexport const schemeColors = {\r\n 'Scheme_Secondary': '#426900',\r\n};\r\n\r\n// Light Mode Colors\r\nexport const lightModeColors = {\r\n 'Neutral_Background_1_Rest': '#ffffff',\r\n 'Neutral_Background_1_Hover': '#f5f5f5',\r\n 'Neutral_Background_1_Pressed': '#e0e0e0',\r\n 'Neutral_Background_1_Selected': '#ebebeb',\r\n 'Neutral_Background_2_Rest': '#fafafa',\r\n 'Neutral_Background_2_Hover': '#f0f0f0',\r\n 'Neutral_Background_2_Pressed': '#dbdbdb',\r\n 'Neutral_Background_2_Selected': '#e6e6e6',\r\n 'Neutral_Background_3_Rest': '#f5f5f5',\r\n 'Neutral_Background_3_Hover': '#ebebeb',\r\n 'Neutral_Background_3_Pressed': '#d6d6d6',\r\n 'Neutral_Background_3_Selected': '#e0e0e0',\r\n 'Neutral_Background_4_Rest': '#f0f0f0',\r\n 'Neutral_Background_4_Hover': '#fafafa',\r\n 'Neutral_Background_4_Pressed': '#f5f5f5',\r\n 'Neutral_Background_4_Selected': '#ffffff',\r\n 'Neutral_Background_5_Rest': '#ebebeb',\r\n 'Neutral_Background_5_Hover': '#f5f5f5',\r\n 'Neutral_Background_5_Pressed': '#f0f0f0',\r\n 'Neutral_Background_5_Selected': '#fafafa',\r\n 'Neutral_Background_6_Rest': '#e6e6e6',\r\n 'Neutral_Background_Inverted_Rest': '#292929',\r\n 'Neutral_Background_Inverted_Disabled_Rest': 1,\r\n 'Neutral_Background_Alpha_1_Rest': '#1a1a1a80',\r\n 'Neutral_Background_Alpha_2_Rest': 8,\r\n 'Neutral_Background_Static_Rest': '#333333',\r\n 'Neutral_Background_Subtle_Rest': '#00000000',\r\n 'Neutral_Background_Subtle_Hover': '#f5f5f5',\r\n 'Neutral_Background_Subtle_Pressed': '#e0e0e0',\r\n 'Neutral_Background_Subtle_Selected': '#ebebeb',\r\n 'Neutral_Background_Subtle_Light alpha_Hover': '#1a1a1ab3',\r\n 'Neutral_Background_Subtle_Light alpha_Pressed': '#1a1a1a80',\r\n 'Neutral_Background_Subtle_Light alpha_Selected': '#00000000',\r\n 'Neutral_Background_Subtle_Inverted_Rest': '#00000000',\r\n 'Neutral_Background_Subtle_Inverted_Hover': 1,\r\n 'Neutral_Background_Subtle_Inverted_Pressed': 3,\r\n 'Neutral_Background_Subtle_Inverted_Selected': 2,\r\n 'Neutral_Background_Transparent_Rest': '#00000000',\r\n 'Neutral_Background_Transparent_Hover': '#00000000',\r\n 'Neutral_Background_Transparent_Pressed': '#00000000',\r\n 'Neutral_Background_Transparent_Selected': '#00000000',\r\n 'Neutral_Background_Disabled_Rest': '#f0f0f0',\r\n 'Neutral_Background_Stencil_1_Rest': '#e6e6e6',\r\n 'Neutral_Background_Stencil_1_Alpha_Rest': 1,\r\n 'Neutral_Background_Stencil_2_Rest': '#fafafa',\r\n 'Neutral_Background_Stencil_2_Alpha_Rest': '#1a1a1a0d',\r\n 'Neutral_Background_Overlay_Rest': 4,\r\n 'Neutral_Background_Overlay_Scrollbar_Rest': '#1a1a1a80',\r\n 'Neutral_Foreground_1_Rest': '#242424',\r\n 'Neutral_Foreground_1_Hover': '#242424',\r\n 'Neutral_Foreground_1_Pressed': '#242424',\r\n 'Neutral_Foreground_1_Selected': '#242424',\r\n 'Neutral_Foreground_2_Rest': '#424242',\r\n 'Neutral_Foreground_2_Hover': '#242424',\r\n 'Neutral_Foreground_2_Pressed': '#242424',\r\n 'Neutral_Foreground_2_Selected': '#242424',\r\n 'Neutral_Foreground_2_Brand_Hover': '#1e398d',\r\n 'Neutral_Foreground_2_Brand_Pressed': '#182e71',\r\n 'Neutral_Foreground_2_Brand_Selected': '#1e398d',\r\n 'Neutral_Foreground_2_Link_Rest': '#424242',\r\n 'Neutral_Foreground_2_Link_Hover': '#242424',\r\n 'Neutral_Foreground_2_Link_Pressed': '#242424',\r\n 'Neutral_Foreground_2_Link_Selected': '#242424',\r\n 'Neutral_Foreground_3_Rest': '#616161',\r\n 'Neutral_Foreground_3_Hover': '#424242',\r\n 'Neutral_Foreground_3_Pressed': '#424242',\r\n 'Neutral_Foreground_3_Selected': '#424242',\r\n 'Neutral_Foreground_3_Brand_Hover': '#1e398d',\r\n 'Neutral_Foreground_3_Brand_Pressed': '#182e71',\r\n 'Neutral_Foreground_3_Brand_Selected': '#1e398d',\r\n 'Neutral_Foreground_4_Rest': '#707070',\r\n 'Neutral_Foreground_Disabled_Rest': '#bdbdbd',\r\n 'Neutral_Foreground_Static_Rest': '#242424',\r\n 'Neutral_Foreground_Static_Inverted_Rest': '#ffffff',\r\n 'Neutral_Foreground_Inverted_1_Rest': '#ffffff',\r\n 'Neutral_Foreground_Inverted_1_Hover': '#ffffff',\r\n 'Neutral_Foreground_Inverted_1_Pressed': '#ffffff',\r\n 'Neutral_Foreground_Inverted_1_Selected': '#ffffff',\r\n 'Neutral_Foreground_Inverted_2_Rest': '#ffffff',\r\n 'Neutral_Foreground_Inverted_Disabled_Rest': 4,\r\n 'Neutral_Foreground_Inverted_Link_Rest': '#ffffff',\r\n 'Neutral_Foreground_Inverted_Link_Hover': '#ffffff',\r\n 'Neutral_Foreground_Inverted_Link_Pressed': '#ffffff',\r\n 'Neutral_Foreground_Inverted_Link_Selected': '#ffffff',\r\n 'Neutral_Foreground_On Brand_Rest': '#ffffff',\r\n 'Neutral_Stroke_1_Rest': '#d1d1d1',\r\n 'Neutral_Stroke_1_Hover': '#c7c7c7',\r\n 'Neutral_Stroke_1_Pressed': '#b3b3b3',\r\n 'Neutral_Stroke_1_Selected': '#bdbdbd',\r\n 'Neutral_Stroke_2_Rest': '#e0e0e0',\r\n 'Neutral_Stroke_3_Rest': '#f0f0f0',\r\n 'Neutral_Stroke_Alpha_1_Rest': '#1a1a1a0d',\r\n 'Neutral_Stroke_Alpha_2_Rest': 2,\r\n 'Neutral_Stroke_Subtle_Rest': '#e0e0e0',\r\n 'Neutral_Stroke_on Brand_1_Rest': '#ffffff',\r\n 'Neutral_Stroke_on Brand_2_Rest': '#ffffff',\r\n 'Neutral_Stroke_on Brand_2_Hover': '#ffffff',\r\n 'Neutral_Stroke_on Brand_2_Pressed': '#ffffff',\r\n 'Neutral_Stroke_on Brand_2_Selected': '#ffffff',\r\n 'Neutral_Stroke_Accessible_Rest': '#616161',\r\n 'Neutral_Stroke_Accessible_Hover': '#575757',\r\n 'Neutral_Stroke_Accessible_Pressed': '#4d4d4d',\r\n 'Neutral_Stroke_Accessible_Selected': '#1e398d',\r\n 'Neutral_Stroke_Focus_1_Rest': '#ffffff',\r\n 'Neutral_Stroke_Focus_2_Rest': '#000000',\r\n 'Neutral_Stroke_Transparent_Interactive_Rest': '#00000000',\r\n 'Neutral_Stroke_Transparent_Disabled_Rest': '#00000000',\r\n 'Neutral_Stroke_Transparent_Rest': '#00000000',\r\n 'Neutral_Stroke_Disabled_Rest': '#e0e0e0',\r\n 'Neutral_Stroke_Disabled_Inverted_Rest': 4,\r\n 'Brand_Background_1_Rest': '#00B3BD',\r\n 'Brand_Background_1_Hover': '#182e71',\r\n 'Brand_Background_1_Pressed': '#09112a',\r\n 'Brand_Background_1_Selected': '#122255',\r\n 'Brand_Background_2_Rest': '#ffffff',\r\n 'Brand_Background_2_Hover': '#fdfdff',\r\n 'Brand_Background_2_Pressed': '#d0d6e8',\r\n 'Brand_Background_Inverted_Rest': '#ffffff',\r\n 'Brand_Background_Inverted_Hover': '#ffffff',\r\n 'Brand_Background_Inverted_Pressed': '#e7e9f4',\r\n 'Brand_Background_Inverted_Selected': '#fdfdff',\r\n 'Brand_Background_Compound_Rest': '#1e398d',\r\n 'Brand_Background_Compound_Hover': '#182e71',\r\n 'Brand_Background_Compound_Pressed': '#122255',\r\n 'Brand_Background_Static_1_Rest': '#1e398d',\r\n 'Brand_Background_Static_3_Rest': '#122255',\r\n 'Brand_Background_Static_4_Rest': '#09112a',\r\n 'Brand_Foreground_1_Rest': '#1e398d',\r\n 'Brand_Foreground_2_Rest': '#182e71',\r\n 'Brand_Foreground_2_Hover': '#122255',\r\n 'Brand_Foreground_2_Pressed': '#060b1c',\r\n 'Brand_Foreground_Link_Rest': '#182e71',\r\n 'Brand_Foreground_Link_Hover': '#122255',\r\n 'Brand_Foreground_Link_Pressed': '#09112a',\r\n 'Brand_Foreground_Link_Selected': '#182e71',\r\n 'Brand_Foreground_Inverted_Rest': '#7787bb',\r\n 'Brand_Foreground_Inverted_Hover': '#a4afd1',\r\n 'Brand_Foreground_Inverted_Pressed': '#7787bb',\r\n 'Brand_Foreground_On Light_Rest': '#1e398d',\r\n 'Brand_Foreground_On Light_Hover': '#182e71',\r\n 'Brand_Foreground_On Light_Pressed': '#0c1738',\r\n 'Brand_Foreground_On Light_Selected': '#122255',\r\n 'Brand_Foreground_Compound_Rest': '#1e398d',\r\n 'Brand_Foreground_Compound_Hover': '#182e71',\r\n 'Brand_Foreground_Compound_Pressed': '#122255',\r\n 'Brand_Stroke_1_Rest': '#00B3BD',\r\n 'Brand_Stroke_2_Rest': '#e7e9f4',\r\n 'Brand_Stroke_2_Hover': '#bac2dd',\r\n 'Brand_Stroke_2_Pressed': '#1e398d',\r\n 'Brand_Stroke_2_Contrast_Rest': '#e7e9f4',\r\n 'Brand_Stroke_Compound_Rest': '#1e398d',\r\n 'Brand_Stroke_Compound_Hover': '#182e71',\r\n 'Brand_Stroke_Compound_Pressed': '#122255',\r\n 'Status_Danger_Background_1_Rest': '#f5fcfc',\r\n 'Status_Danger_Background_2_Rest': '#a3e4e7',\r\n 'Status_Danger_Background_3_Rest': '#00b3bd',\r\n 'Status_Danger_Foreground_1_Rest': '#b10e1c',\r\n 'Status_Danger_Foreground_2_Rest': '#005d62',\r\n 'Status_Danger_Foreground_3_Rest': '#00b3bd',\r\n 'Status_Danger_Foreground_3_Pressed': '#007a81',\r\n 'Status_Danger_Foreground_3_Hover': '#00969f',\r\n 'Status_Danger_Foreground_Inverted_Rest': '#7ad7dd',\r\n 'Status_Danger_Stroke_1_Rest': '#a3e4e7',\r\n 'Status_Danger_Stroke_2_Rest': '#C50F1F',\r\n 'Status_Success_Background_1_Rest': '#f5fcfc',\r\n 'Status_Success_Background_2_Rest': '#a3e4e7',\r\n 'Status_Success_Background_3_Rest': '#00b3bd',\r\n 'Status_Success_Foreground_1_Rest': '#00969f',\r\n 'Status_Success_Foreground_2_Rest': '#005d62',\r\n 'Status_Success_Foreground_3_Rest': '#00b3bd',\r\n 'Status_Success_Foreground_Inverted_Rest': '#52cbd2',\r\n 'Status_Success_Stroke_1_Rest': '#a3e4e7',\r\n 'Status_Success_Stroke_2_Rest': '#00b3bd',\r\n 'Status_Warning_Background_1_Rest': '#f5fcfc',\r\n 'Status_Warning_Background_2_Rest': '#a3e4e7',\r\n 'Status_Warning_Background_3_Rest': '#00b3bd',\r\n 'Status_Warning_Foreground_1_Rest': '#007a81',\r\n 'Status_Warning_Foreground_2_Rest': '#005d62',\r\n 'Status_Warning_Foreground_3_Rest': '#007a81',\r\n 'Status_Warning_Foreground_Inverted_Rest': '#7ad7dd',\r\n 'Status_Warning_Stroke_1_Rest': '#a3e4e7',\r\n 'Status_Warning_Stroke_2_Rest': '#007a81',\r\n 'Status_Oof_Foreground_3_Rest': '#00b3bd',\r\n 'Status_Away_Background_3_Rest': '#00b3bd',\r\n 'Status_Available_Foreground_3_Rest': '#00b3bd',\r\n 'Status_Severe_Background_1_Rest': '#f5fcfc',\r\n 'Status_Severe_Background_2_Rest': '#a3e4e7',\r\n 'Status_Severe_Background_3_Rest': '#00b3bd',\r\n 'Status_Severe_Foreground_1_Rest': '#007a81',\r\n 'Status_Severe_Foreground_2_Rest': '#007a81',\r\n 'Status_Severe_Foreground_3_Rest': '#007a81',\r\n 'Status_Severe_Foreground_Inverted_Rest': '#7ad7dd',\r\n 'Status_Severe_Stroke_1_Rest': '#a3e4e7',\r\n 'Status_Severe_Stroke_2_Rest': '#007a81',\r\n 'Palette_Dark red_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Dark red_Foreground_2_Rest': '#005d62',\r\n 'Palette_Dark red_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Cranberry_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Cranberry_Foreground_2_Rest': '#005d62',\r\n 'Palette_Cranberry_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Red_Background_1_Rest': '#f5fcfc',\r\n 'Palette_Red_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Red_Background_3_Rest': '#00b3bd',\r\n 'Palette_Red_Foreground_1_Rest': '#00969f',\r\n 'Palette_Red_Foreground_2_Rest': '#005d62',\r\n 'Palette_Red_Foreground_3_Rest': '#00b3bd',\r\n 'Palette_Red_Foreground_Inverted_Rest': '#52cbd2',\r\n 'Palette_Red_Stroke_1_Rest': '#a3e4e7',\r\n 'Palette_Red_Stroke_2_Rest': '#00b3bd',\r\n 'Palette_Red_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Pumpkin_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Pumpkin_Foreground_2_Rest': '#005d62',\r\n 'Palette_Pumpkin_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Peach_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Peach_Foreground_2_Rest': '#005d62',\r\n 'Palette_Peach_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Marigold_Background_1_Rest': '#f5fcfc',\r\n 'Palette_Marigold_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Marigold_Background_3_Rest': '#00b3bd',\r\n 'Palette_Marigold_Foreground_1_Rest': '#00969f',\r\n 'Palette_Marigold_Foreground_1_Rest 2': '#00b3bd',\r\n 'Palette_Marigold_Foreground_2_Rest': '#005d62',\r\n 'Palette_Marigold_Foreground_3_Rest': '#00b3bd',\r\n 'Palette_Marigold_Stroke_1_Rest': '#a3e4e7',\r\n 'Palette_Marigold_Stroke_2_Rest': '#00b3bd',\r\n 'Palette_Marigold_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Gold_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Gold_Foreground_2_Rest': '#005d62',\r\n 'Palette_Gold_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Brass_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Brass_Foreground_2_Rest': '#005d62',\r\n 'Palette_Brass_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Brown_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Brown_Foreground_2_Rest': '#005d62',\r\n 'Palette_Brown_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Forest_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Forest_Foreground_2_Rest': '#005d62',\r\n 'Palette_Forest_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Seafoam_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Seafoam_Foreground_2_Rest': '#005d62',\r\n 'Palette_Seafoam_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Dark green_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Dark green_Foreground_2_Rest': '#005d62',\r\n 'Palette_Dark green_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Light teal_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Light teal_Foreground_2_Rest': '#005d62',\r\n 'Palette_Light teal_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Teal_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Teal_Foreground_2_Rest': '#005d62',\r\n 'Palette_Teal_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Steel_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Steel_Foreground_2_Rest': '#005d62',\r\n 'Palette_Steel_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Blue_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Blue_Foreground_2_Rest': '#005d62',\r\n 'Palette_Blue_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Royal blue_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Royal blue_Foreground_2_Rest': '#005d62',\r\n 'Palette_Royal blue_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Cornflower_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Cornflower_Foreground_2_Rest': '#005d62',\r\n 'Palette_Cornflower_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Navy_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Navy_Foreground_2_Rest': '#005d62',\r\n 'Palette_Navy_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Lavender_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Lavender_Foreground_2_Rest': '#005d62',\r\n 'Palette_Lavender_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Purple_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Purple_Foreground_2_Rest': '#005d62',\r\n 'Palette_Purple_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Grape_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Grape_Foreground_2_Rest': '#005d62',\r\n 'Palette_Grape_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Lilac_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Lilac_Foreground_2_Rest': '#005d62',\r\n 'Palette_Lilac_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Pink_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Pink_Foreground_2_Rest': '#005d62',\r\n 'Palette_Pink_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Magenta_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Magenta_Foreground_2_Rest': '#005d62',\r\n 'Palette_Magenta_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Plum_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Plum_Foreground_2_Rest': '#005d62',\r\n 'Palette_Plum_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Beige_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Beige_Foreground_2_Rest': '#005d62',\r\n 'Palette_Beige_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Mink_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Mink_Foreground_2_Rest': '#005d62',\r\n 'Palette_Mink_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Platinum_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Platinum_Foreground_2_Rest': '#005d62',\r\n 'Palette_Platinum_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Anchor_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Anchor_Foreground_2_Rest': '#005d62',\r\n 'Palette_Anchor_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Green_Background_1_Rest': '#f5fcfc',\r\n 'Palette_Green_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Green_Background_3_Rest': '#00b3bd',\r\n 'Palette_Green_Stroke_1_Rest': '#a3e4e7',\r\n 'Palette_Green_Stroke_2_Rest': '#00b3bd',\r\n 'Palette_Green_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Green_Foreground_1_Rest': '#00969f',\r\n 'Palette_Green_Foreground_2_Rest': '#005d62',\r\n 'Palette_Green_Foreground_3_Rest': '#00b3bd',\r\n 'Palette_Green_Foreground_Inverted_Rest': '#52cbd2',\r\n 'Palette_Dark orange_Foreground_1_Rest': '#00969f',\r\n 'Palette_Dark orange_Foreground_2_Rest': '#005d62',\r\n 'Palette_Dark orange_Foreground_3_Rest': '#00b3bd',\r\n 'Palette_Dark orange_Background_1_Rest': '#f5fcfc',\r\n 'Palette_Dark orange_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Dark orange_Background_3_Rest': '#00b3bd',\r\n 'Palette_Dark orange_Stroke_1_Rest': '#a3e4e7',\r\n 'Palette_Dark orange_Stroke_2_Rest': '#00b3bd',\r\n 'Palette_Dark orange_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Yellow_Foreground_1_Rest': '#005d62',\r\n 'Palette_Yellow_Foreground_2_Rest': '#005d62',\r\n 'Palette_Yellow_Foreground_3_Rest': '#00b3bd',\r\n 'Palette_Yellow_Foreground_Inverted_Rest': '#a3e4e7',\r\n 'Palette_Yellow_Stroke_1_Rest': '#a3e4e7',\r\n 'Palette_Yellow_Stroke_2_Rest': '#00b3bd',\r\n 'Palette_Yellow_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Yellow_Background_1_Rest': '#f5fcfc',\r\n 'Palette_Yellow_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Yellow_Background_3_Rest': '#00b3bd',\r\n 'Palette_Berry_Foreground_1_Rest': '#00969f',\r\n 'Palette_Berry_Foreground_2_Rest': '#005d62',\r\n 'Palette_Berry_Foreground_3_Rest': '#00b3bd',\r\n 'Palette_Berry_Background_1_Rest': '#f5fcfc',\r\n 'Palette_Berry_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Berry_Background_3_Rest': '#00b3bd',\r\n 'Palette_Berry_Stroke_1_Rest': '#a3e4e7',\r\n 'Palette_Berry_Stroke_2_Rest': '#00b3bd',\r\n 'Palette_Berry_Stroke_Active_Rest': '#00b3bd',\r\n 'Palette_Light Green_Foreground_1_Rest': '#00969f',\r\n 'Palette_Light Green_Foreground_2_Rest': '#005d62',\r\n 'Palette_Light Green_Foreground_3_Rest': '#00b3bd',\r\n 'Palette_Light Green_Background_1_Rest': '#f5fcfc',\r\n 'Palette_Light Green_Background_2_Rest': '#a3e4e7',\r\n 'Palette_Light Green_Background_3_Rest': '#00b3bd',\r\n 'Palette_Light Green_Stroke_1_Rest': '#a3e4e7',\r\n 'Palette_Light Green_Stroke_2_Rest': '#00b3bd',\r\n 'Palette_Light Green_Stroke_Active_Rest': '#00b3bd',\r\n 'Shadow_Ambient': '#0000001f',\r\n 'Shadow_Ambient lighter': '#0000000f',\r\n 'Shadow_Ambient darker': '#00000033',\r\n 'Shadow_Brand ambient': '#00000040',\r\n 'Shadow_Key': '#00000024',\r\n 'Shadow_Key lighter': '#00000012',\r\n 'Shadow_Key darker': '#0000003d',\r\n 'Shadow_Brand key': '#0000004d',\r\n 'Material_Acrylic_Stroke_Stop 2': '#cfe4fa33',\r\n 'Material_Acrylic_Stroke_Stop 3': 2,\r\n 'Material_Acrylic_Stroke_Stop 1': 2,\r\n 'Material_Acrylic_Background_Secondary': '#e7ecf3b3',\r\n 'Material_Acrylic_Background_Primary': '#1a1a1a80',\r\n 'Material_Acrylic_Background_Blur': 60,\r\n};\r\n\r\n// Dark Mode Colors\r\nexport const darkModeColors = {\r\n 'Neutral_Background_1_Rest': '#292929',\r\n 'Neutral_Background_1_Hover': '#3d3d3d',\r\n 'Neutral_Background_1_Pressed': '#1f1f1f',\r\n 'Neutral_Background_1_Selected': '#383838',\r\n 'Neutral_Background_2_Rest': '#1f1f1f',\r\n 'Neutral_Background_2_Hover': '#333333',\r\n 'Neutral_Background_2_Pressed': '#141414',\r\n 'Neutral_Background_2_Selected': '#2e2e2e',\r\n 'Neutral_Background_3_Rest': '#141414',\r\n 'Neutral_Background_3_Hover': '#292929',\r\n 'Neutral_Background_3_Pressed': '#0a0a0a',\r\n 'Neutral_Background_3_Selected': '#242424',\r\n 'Neutral_Background_4_Rest': '#0a0a0a',\r\n 'Neutral_Background_4_Hover': '#1f1f1f',\r\n 'Neutral_Background_4_Pressed': '#000000',\r\n 'Neutral_Background_4_Selected': '#1a1a1a',\r\n 'Neutral_Background_5_Rest': '#000000',\r\n 'Neutral_Background_5_Hover': '#141414',\r\n 'Neutral_Background_5_Pressed': '#050505',\r\n 'Neutral_Background_5_Selected': '#0f0f0f',\r\n 'Neutral_Background_6_Rest': '#333333',\r\n 'Neutral_Background_Inverted_Rest': '#ffffff',\r\n 'Neutral_Background_Inverted_Disabled_Rest': 1,\r\n 'Neutral_Background_Alpha_1_Rest': '#1a1a1a80',\r\n 'Neutral_Background_Alpha_2_Rest': '#1a1a1ab3',\r\n 'Neutral_Background_Static_Rest': '#3d3d3d',\r\n 'Neutral_Background_Subtle_Rest': '#00000000',\r\n 'Neutral_Background_Subtle_Hover': '#383838',\r\n 'Neutral_Background_Subtle_Pressed': '#2e2e2e',\r\n 'Neutral_Background_Subtle_Selected': '#333333',\r\n 'Neutral_Background_Subtle_Light alpha_Hover': 8,\r\n 'Neutral_Background_Subtle_Light alpha_Pressed': '#1a1a1a80',\r\n 'Neutral_Background_Subtle_Light alpha_Selected': '#00000000',\r\n 'Neutral_Background_Subtle_Inverted_Rest': '#00000000',\r\n 'Neutral_Background_Subtle_Inverted_Hover': 1,\r\n 'Neutral_Background_Subtle_Inverted_Pressed': 3,\r\n 'Neutral_Background_Subtle_Inverted_Selected': 2,\r\n 'Neutral_Background_Transparent_Rest': '#00000000',\r\n 'Neutral_Background_Transparent_Hover': '#00000000',\r\n 'Neutral_Background_Transparent_Pressed': '#00000000',\r\n 'Neutral_Background_Transparent_Selected': '#00000000',\r\n 'Neutral_Background_Disabled_Rest': '#141414',\r\n 'Neutral_Background_Stencil_1_Rest': '#575757',\r\n 'Neutral_Background_Stencil_1_Alpha_Rest': 1,\r\n 'Neutral_Background_Stencil_2_Rest': '#333333',\r\n 'Neutral_Background_Stencil_2_Alpha_Rest': '#1a1a1a0d',\r\n 'Neutral_Background_Overlay_Rest': '#1a1a1a80',\r\n 'Neutral_Background_Overlay_Scrollbar_Rest': 6,\r\n 'Neutral_Foreground_1_Rest': '#ffffff',\r\n 'Neutral_Foreground_1_Hover': '#ffffff',\r\n 'Neutral_Foreground_1_Pressed': '#ffffff',\r\n 'Neutral_Foreground_1_Selected': '#ffffff',\r\n 'Neutral_Foreground_2_Rest': '#d6d6d6',\r\n 'Neutral_Foreground_2_Hover': '#ffffff',\r\n 'Neutral_Foreground_2_Pressed': '#ffffff',\r\n 'Neutral_Foreground_2_Selected': '#ffffff',\r\n 'Neutral_Foreground_2_Brand_Hover': '#7787bb',\r\n 'Neutral_Foreground_2_Brand_Pressed': '#a4afd1',\r\n 'Neutral_Foreground_2_Brand_Selected': '#7787bb',\r\n 'Neutral_Foreground_2_Link_Rest': '#d6d6d6',\r\n 'Neutral_Foreground_2_Link_Hover': '#ffffff',\r\n 'Neutral_Foreground_2_Link_Pressed': '#ffffff',\r\n 'Neutral_Foreground_2_Link_Selected': '#ffffff',\r\n 'Neutral_Foreground_3_Rest': '#adadad',\r\n 'Neutral_Foreground_3_Hover': '#d6d6d6',\r\n 'Neutral_Foreground_3_Pressed': '#d6d6d6',\r\n 'Neutral_Foreground_3_Selected': '#d6d6d6',\r\n 'Neutral_Foreground_3_Brand_Hover': '#7787bb',\r\n 'Neutral_Foreground_3_Brand_Pressed': '#a4afd1',\r\n 'Neutral_Foreground_3_Brand_Selected': '#7787bb',\r\n 'Neutral_Foreground_4_Rest': '#999999',\r\n 'Neutral_Foreground_Disabled_Rest': '#5c5c5c',\r\n 'Neutral_Foreground_Static_Rest': '#242424',\r\n 'Neutral_Foreground_Static_Inverted_Rest': '#ffffff',\r\n 'Neutral_Foreground_Inverted_1_Rest': '#242424',\r\n 'Neutral_Foreground_Inverted_1_Hover': '#242424',\r\n 'Neutral_Foreground_Inverted_1_Pressed': '#242424',\r\n 'Neutral_Foreground_Inverted_1_Selected': '#242424',\r\n 'Neutral_Foreground_Inverted_2_Rest': '#242424',\r\n 'Neutral_Foreground_Inverted_Disabled_Rest': 4,\r\n 'Neutral_Foreground_Inverted_Link_Rest': '#ffffff',\r\n 'Neutral_Foreground_Inverted_Link_Hover': '#ffffff',\r\n 'Neutral_Foreground_Inverted_Link_Pressed': '#ffffff',\r\n 'Neutral_Foreground_Inverted_Link_Selected': '#ffffff',\r\n 'Neutral_Foreground_On Brand_Rest': '#ffffff',\r\n 'Neutral_Stroke_1_Rest': '#666666',\r\n 'Neutral_Stroke_1_Hover': '#757575',\r\n 'Neutral_Stroke_1_Pressed': '#6b6b6b',\r\n 'Neutral_Stroke_1_Selected': '#707070',\r\n 'Neutral_Stroke_2_Rest': '#525252',\r\n 'Neutral_Stroke_3_Rest': '#3d3d3d',\r\n 'Neutral_Stroke_Alpha_1_Rest': 1,\r\n 'Neutral_Stroke_Alpha_2_Rest': 2,\r\n 'Neutral_Stroke_Subtle_Rest': '#0a0a0a',\r\n 'Neutral_Stroke_on Brand_1_Rest': '#292929',\r\n 'Neutral_Stroke_on Brand_2_Rest': '#ffffff',\r\n 'Neutral_Stroke_on Brand_2_Hover': '#ffffff',\r\n 'Neutral_Stroke_on Brand_2_Pressed': '#ffffff',\r\n 'Neutral_Stroke_on Brand_2_Selected': '#ffffff',\r\n 'Neutral_Stroke_Accessible_Rest': '#adadad',\r\n 'Neutral_Stroke_Accessible_Hover': '#bdbdbd',\r\n 'Neutral_Stroke_Accessible_Pressed': '#b3b3b3',\r\n 'Neutral_Stroke_Accessible_Selected': '#7787bb',\r\n 'Neutral_Stroke_Focus_1_Rest': '#000000',\r\n 'Neutral_Stroke_Focus_2_Rest': '#ffffff',\r\n 'Neutral_Stroke_Transparent_Interactive_Rest': '#00000000',\r\n 'Neutral_Stroke_Transparent_Disabled_Rest': '#00000000',\r\n 'Neutral_Stroke_Transparent_Rest': '#00000000',\r\n 'Neutral_Stroke_Disabled_Rest': '#424242',\r\n 'Neutral_Stroke_Disabled_Inverted_Rest': 4,\r\n 'Brand_Background_1_Rest': '#182e71',\r\n 'Brand_Background_1_Hover': '#1e398d',\r\n 'Brand_Background_1_Pressed': '#09112a',\r\n 'Brand_Background_1_Selected': '#122255',\r\n 'Brand_Background_2_Rest': '#03060e',\r\n 'Brand_Background_2_Hover': '#09112a',\r\n 'Brand_Background_2_Pressed': '#000000',\r\n 'Brand_Background_Inverted_Rest': '#ffffff',\r\n 'Brand_Background_Inverted_Hover': '#ffffff',\r\n 'Brand_Background_Inverted_Pressed': '#e7e9f4',\r\n 'Brand_Background_Inverted_Selected': '#fdfdff',\r\n 'Brand_Background_Compound_Rest': '#7787bb',\r\n 'Brand_Background_Compound_Hover': '#a4afd1',\r\n 'Brand_Background_Compound_Pressed': '#4b60a4',\r\n 'Brand_Background_Static_1_Rest': '#1e398d',\r\n 'Brand_Background_Static_3_Rest': '#122255',\r\n 'Brand_Background_Static_4_Rest': '#09112a',\r\n 'Brand_Foreground_1_Rest': '#7787bb',\r\n 'Brand_Foreground_2_Rest': '#a4afd1',\r\n 'Brand_Foreground_2_Hover': '#d0d6e8',\r\n 'Brand_Foreground_2_Pressed': '#7787bb',\r\n 'Brand_Foreground_Link_Rest': '#7787bb',\r\n 'Brand_Foreground_Link_Hover': '#a4afd1',\r\n 'Brand_Foreground_Link_Pressed': '#4b60a4',\r\n 'Brand_Foreground_Link_Selected': '#7787bb',\r\n 'Brand_Foreground_Inverted_Rest': '#1e398d',\r\n 'Brand_Foreground_Inverted_Hover': '#182e71',\r\n 'Brand_Foreground_Inverted_Pressed': '#122255',\r\n 'Brand_Foreground_On Light_Rest': '#182e71',\r\n 'Brand_Foreground_On Light_Hover': '#182e71',\r\n 'Brand_Foreground_On Light_Pressed': '#0c1738',\r\n 'Brand_Foreground_On Light_Selected': '#122255',\r\n 'Brand_Foreground_Compound_Rest': '#7787bb',\r\n 'Brand_Foreground_Compound_Hover': '#a4afd1',\r\n 'Brand_Foreground_Compound_Pressed': '#4b60a4',\r\n 'Brand_Stroke_1_Rest': '#7787bb',\r\n 'Brand_Stroke_2_Rest': '#0c1738',\r\n 'Brand_Stroke_2_Hover': '#4b60a4',\r\n 'Brand_Stroke_2_Pressed': '#182e71',\r\n 'Brand_Stroke_2_Contrast_Rest': '#0c1738',\r\n 'Brand_Stroke_Compound_Rest': '#7787bb',\r\n 'Brand_Stroke_Compound_Hover': '#a4afd1',\r\n 'Brand_Stroke_Compound_Pressed': '#4b60a4',\r\n 'Status_Danger_Background_1_Rest': '#004044',\r\n 'Status_Danger_Background_2_Rest': '#005d62',\r\n 'Status_Danger_Background_3_Rest': '#00b3bd',\r\n 'Status_Danger_Foreground_1_Rest': '#b10e1c',\r\n 'Status_Danger_Foreground_2_Rest': '#a3e4e7',\r\n 'Status_Danger_Foreground_3_Rest': '#a3e4e7',\r\n 'Status_Danger_Foreground_3_Pressed': '#007a81',\r\n 'Status_Danger_Foreground_3_Hover': '#00969f',\r\n 'Status_Danger_Foreground_Inverted_Rest': '#00969f',\r\n 'Status_Danger_Stroke_1_Rest': '#00b3bd',\r\n 'Status_Danger_Stroke_2_Rest': '#7ad7dd',\r\n 'Status_Success_Background_1_Rest': '#004044',\r\n 'Status_Success_Background_2_Rest': '#005d62',\r\n 'Status_Success_Background_3_Rest': '#00b3bd',\r\n 'Status_Success_Foreground_1_Rest': '#7ad7dd',\r\n 'Status_Success_Foreground_2_Rest': '#a3e4e7',\r\n 'Status_Success_Foreground_3_Rest': '#a3e4e7',\r\n 'Status_Success_Foreground_Inverted_Rest': '#00b3bd',\r\n 'Status_Success_Stroke_1_Rest': '#00b3bd',\r\n 'Status_Success_Stroke_2_Rest': '#a3e4e7',\r\n 'Status_Warning_Background_1_Rest': '#004044',\r\n 'Status_Warning_Background_2_Rest': '#005d62',\r\n 'Status_Warning_Background_3_Rest': '#00b3bd',\r\n 'Status_Warning_Foreground_1_Rest': '#52cbd2',\r\n 'Status_Warning_Foreground_2_Rest': '#a3e4e7',\r\n 'Status_Warning_Foreground_3_Rest': '#a3e4e7',\r\n 'Status_Warning_Foreground_Inverted_Rest': '#007a81',\r\n 'Status_Warning_Stroke_1_Rest': '#00969f',\r\n 'Status_Warning_Stroke_2_Rest': '#52cbd2',\r\n 'Status_Oof_Foreground_3_Rest': '#52cbd2',\r\n 'Status_Away_Background_3_Rest': '#00b3bd',\r\n 'Status_Available_Foreground_3_Rest': '#00b3bd',\r\n 'Status_Severe_Background_1_Rest': '#004044',\r\n 'Status_Severe_Background_2_Rest': '#005d62',\r\n 'Status_Severe_Background_3_Rest': '#00b3bd',\r\n 'Status_Severe_Foreground_1_Rest': '#52cbd2',\r\n 'Status_Severe_Foreground_2_Rest': '#a3e4e7',\r\n 'Status_Severe_Foreground_3_Rest': '#a3e4e7',\r\n 'Status_Severe_Foreground_Inverted_Rest': '#007a81',\r\n 'Status_Severe_Stroke_1_Rest': '#00969f',\r\n 'Status_Severe_Stroke_2_Rest': '#52cbd2',\r\n 'Palette_Dark red_Background_2_Rest': '#007a81',\r\n 'Palette_Dark red_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Dark red_Stroke_Active_Rest': '#52cbd2',\r\n 'Palette_Cranberry_Background_2_Rest': '#005d62',\r\n 'Palette_Cranberry_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Cranberry_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Red_Background_1_Rest': '#004044',\r\n 'Palette_Red_Background_2_Rest': '#005d62',\r\n 'Palette_Red_Background_3_Rest': '#00b3bd',\r\n 'Palette_Red_Foreground_1_Rest': '#7ad7dd',\r\n 'Palette_Red_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Red_Foreground_3_Rest': '#7ad7dd',\r\n 'Palette_Red_Foreground_Inverted_Rest': '#00b3bd',\r\n 'Palette_Red_Stroke_1_Rest': '#00b3bd',\r\n 'Palette_Red_Stroke_2_Rest': '#7ad7dd',\r\n 'Palette_Red_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Pumpkin_Background_2_Rest': '#005d62',\r\n 'Palette_Pumpkin_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Pumpkin_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Peach_Background_2_Rest': '#005d62',\r\n 'Palette_Peach_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Peach_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Marigold_Background_1_Rest': '#004044',\r\n 'Palette_Marigold_Background_2_Rest': '#005d62',\r\n 'Palette_Marigold_Background_3_Rest': '#00b3bd',\r\n 'Palette_Marigold_Foreground_1_Rest': '#7ad7dd',\r\n 'Palette_Marigold_Foreground_1_Rest 2': '#52cbd2',\r\n 'Palette_Marigold_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Marigold_Foreground_3_Rest': '#52cbd2',\r\n 'Palette_Marigold_Stroke_1_Rest': '#00b3bd',\r\n 'Palette_Marigold_Stroke_2_Rest': '#52cbd2',\r\n 'Palette_Marigold_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Gold_Background_2_Rest': '#005d62',\r\n 'Palette_Gold_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Gold_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Brass_Background_2_Rest': '#005d62',\r\n 'Palette_Brass_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Brass_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Brown_Background_2_Rest': '#005d62',\r\n 'Palette_Brown_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Brown_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Forest_Background_2_Rest': '#005d62',\r\n 'Palette_Forest_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Forest_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Seafoam_Background_2_Rest': '#005d62',\r\n 'Palette_Seafoam_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Seafoam_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Dark green_Background_2_Rest': '#005d62',\r\n 'Palette_Dark green_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Dark green_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Light teal_Background_2_Rest': '#005d62',\r\n 'Palette_Light teal_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Light teal_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Teal_Background_2_Rest': '#005d62',\r\n 'Palette_Teal_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Teal_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Steel_Background_2_Rest': '#005d62',\r\n 'Palette_Steel_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Steel_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Blue_Background_2_Rest': '#005d62',\r\n 'Palette_Blue_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Blue_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Royal blue_Background_2_Rest': '#005d62',\r\n 'Palette_Royal blue_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Royal blue_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Cornflower_Background_2_Rest': '#005d62',\r\n 'Palette_Cornflower_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Cornflower_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Navy_Background_2_Rest': '#005d62',\r\n 'Palette_Navy_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Navy_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Lavender_Background_2_Rest': '#005d62',\r\n 'Palette_Lavender_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Lavender_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Purple_Background_2_Rest': '#005d62',\r\n 'Palette_Purple_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Purple_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Grape_Background_2_Rest': '#005d62',\r\n 'Palette_Grape_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Grape_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Lilac_Background_2_Rest': '#005d62',\r\n 'Palette_Lilac_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Lilac_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Pink_Background_2_Rest': '#005d62',\r\n 'Palette_Pink_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Pink_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Magenta_Background_2_Rest': '#005d62',\r\n 'Palette_Magenta_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Magenta_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Plum_Background_2_Rest': '#007a81',\r\n 'Palette_Plum_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Plum_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Beige_Background_2_Rest': '#005d62',\r\n 'Palette_Beige_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Beige_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Mink_Background_2_Rest': '#005d62',\r\n 'Palette_Mink_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Mink_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Platinum_Background_2_Rest': '#005d62',\r\n 'Palette_Platinum_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Platinum_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Anchor_Background_2_Rest': '#005d62',\r\n 'Palette_Anchor_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Anchor_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Green_Background_1_Rest': '#004044',\r\n 'Palette_Green_Background_2_Rest': '#005d62',\r\n 'Palette_Green_Background_3_Rest': '#00b3bd',\r\n 'Palette_Green_Stroke_1_Rest': '#00b3bd',\r\n 'Palette_Green_Stroke_2_Rest': '#7ad7dd',\r\n 'Palette_Green_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Green_Foreground_1_Rest': '#7ad7dd',\r\n 'Palette_Green_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Green_Foreground_3_Rest': '#7ad7dd',\r\n 'Palette_Green_Foreground_Inverted_Rest': '#00b3bd',\r\n 'Palette_Dark orange_Foreground_1_Rest': '#7ad7dd',\r\n 'Palette_Dark orange_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Dark orange_Foreground_3_Rest': '#7ad7dd',\r\n 'Palette_Dark orange_Background_1_Rest': '#004044',\r\n 'Palette_Dark orange_Background_2_Rest': '#005d62',\r\n 'Palette_Dark orange_Background_3_Rest': '#00b3bd',\r\n 'Palette_Dark orange_Stroke_1_Rest': '#00b3bd',\r\n 'Palette_Dark orange_Stroke_2_Rest': '#7ad7dd',\r\n 'Palette_Dark orange_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Yellow_Foreground_1_Rest': '#7ad7dd',\r\n 'Palette_Yellow_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Yellow_Foreground_3_Rest': '#52cbd2',\r\n 'Palette_Yellow_Foreground_Inverted_Rest': '#005d62',\r\n 'Palette_Yellow_Stroke_1_Rest': '#00b3bd',\r\n 'Palette_Yellow_Stroke_2_Rest': '#52cbd2',\r\n 'Palette_Yellow_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Yellow_Background_1_Rest': '#004044',\r\n 'Palette_Yellow_Background_2_Rest': '#005d62',\r\n 'Palette_Yellow_Background_3_Rest': '#00b3bd',\r\n 'Palette_Berry_Foreground_1_Rest': '#7ad7dd',\r\n 'Palette_Berry_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Berry_Foreground_3_Rest': '#52cbd2',\r\n 'Palette_Berry_Background_1_Rest': '#004044',\r\n 'Palette_Berry_Background_2_Rest': '#005d62',\r\n 'Palette_Berry_Background_3_Rest': '#00b3bd',\r\n 'Palette_Berry_Stroke_1_Rest': '#00b3bd',\r\n 'Palette_Berry_Stroke_2_Rest': '#52cbd2',\r\n 'Palette_Berry_Stroke_Active_Rest': '#7ad7dd',\r\n 'Palette_Light Green_Foreground_1_Rest': '#7ad7dd',\r\n 'Palette_Light Green_Foreground_2_Rest': '#a3e4e7',\r\n 'Palette_Light Green_Foreground_3_Rest': '#52cbd2',\r\n 'Palette_Light Green_Background_1_Rest': '#004044',\r\n 'Palette_Light Green_Background_2_Rest': '#005d62',\r\n 'Palette_Light Green_Background_3_Rest': '#00b3bd',\r\n 'Palette_Light Green_Stroke_1_Rest': '#00b3bd',\r\n 'Palette_Light Green_Stroke_2_Rest': '#52cbd2',\r\n 'Palette_Light Green_Stroke_Active_Rest': '#7ad7dd',\r\n 'Shadow_Ambient': '#0000003d',\r\n 'Shadow_Ambient lighter': '#0000001f',\r\n 'Shadow_Ambient darker': '#00000066',\r\n 'Shadow_Brand ambient': '#00000040',\r\n 'Shadow_Key': '#00000047',\r\n 'Shadow_Key lighter': '#00000024',\r\n 'Shadow_Key darker': '#0000007a',\r\n 'Shadow_Brand key': '#0000004d',\r\n 'Material_Acrylic_Stroke_Stop 2': '#2c3136',\r\n 'Material_Acrylic_Stroke_Stop 3': 2,\r\n 'Material_Acrylic_Stroke_Stop 1': 2,\r\n 'Material_Acrylic_Background_Secondary': '#46406e99',\r\n 'Material_Acrylic_Background_Primary': '#2e2e2ecc',\r\n 'Material_Acrylic_Background_Blur': 60,\r\n};\r\n\r\n// Default export\r\nexport default {\r\n brandColors,\r\n spacing,\r\n borderRadius,\r\n fontSize,\r\n fontWeight,\r\n lineHeight,\r\n strokeWidth,\r\n sharedColors,\r\n foundationColors,\r\n lightModeColors,\r\n darkModeColors,\r\n schemeColors,\r\n};\r\n","import { Calendar } from '@fluentui/react-calendar-compat';\r\nimport {\r\n Input,\r\n InputProps,\r\n Popover,\r\n PopoverSurface,\r\n PopoverTrigger,\r\n} from '@fluentui/react-components';\r\nimport { Icon } from '@iconify/react';\r\nimport React, { forwardRef, useState } from 'react';\r\n\r\ninterface DatePickerInputProps extends InputProps {\r\n field: {\r\n value: string;\r\n onChange: (value: string) => void;\r\n onBlur?: () => void;\r\n };\r\n max?: string;\r\n}\r\n\r\nconst DatePickerInput = forwardRef<HTMLInputElement, DatePickerInputProps>(\r\n (\r\n {\r\n field,\r\n placeholder,\r\n disabled,\r\n appearance,\r\n size,\r\n contentBefore,\r\n onClick,\r\n style,\r\n max,\r\n ...restProps\r\n },\r\n ref,\r\n ) => {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const dateValue = field.value ? new Date(field.value) : undefined;\r\n\r\n const onSelectDate = (date: Date | null | undefined) => {\r\n if (date) {\r\n // Adjust for timezone offset to ensure the date string is correct\r\n const offset = date.getTimezoneOffset();\r\n const adjustedDate = new Date(date.getTime() - offset * 60 * 1000);\r\n field.onChange(adjustedDate.toISOString().split('T')[0]);\r\n setIsOpen(false);\r\n }\r\n };\r\n\r\n const formatDate = (dateString: string) => {\r\n if (!dateString) return '';\r\n const date = new Date(dateString);\r\n return date.toLocaleDateString('id-ID', {\r\n day: 'numeric',\r\n month: 'long',\r\n year: 'numeric',\r\n });\r\n };\r\n\r\n const handleInputClick = (e: React.MouseEvent<HTMLInputElement>) => {\r\n e?.preventDefault();\r\n if (!disabled) {\r\n setIsOpen(!isOpen);\r\n }\r\n onClick?.(e);\r\n };\r\n\r\n return (\r\n <Popover open={isOpen} onOpenChange={(_, data) => setIsOpen(data.open)} trapFocus>\r\n <PopoverTrigger disableButtonEnhancement>\r\n <Input\r\n {...restProps}\r\n value={formatDate(field.value)}\r\n readOnly\r\n placeholder={placeholder || 'Pilih tanggal'}\r\n disabled={disabled}\r\n appearance={appearance}\r\n size={size}\r\n contentBefore={contentBefore}\r\n onClick={handleInputClick}\r\n style={{\r\n cursor: disabled ? 'not-allowed' : 'pointer',\r\n ...style,\r\n }}\r\n contentAfter={\r\n <div\r\n onClick={e => {\r\n e.stopPropagation();\r\n if (!disabled) {\r\n setIsOpen(!isOpen);\r\n }\r\n }}\r\n style={{\r\n cursor: disabled ? 'not-allowed' : 'pointer',\r\n display: 'flex',\r\n alignItems: 'center',\r\n }}\r\n >\r\n <Icon icon=\"fluent:calendar-24-regular\" />\r\n </div>\r\n }\r\n />\r\n </PopoverTrigger>\r\n <PopoverSurface tabIndex={-1} style={{ maxWidth: '530px' }}>\r\n <Calendar\r\n value={dateValue}\r\n onSelectDate={onSelectDate}\r\n showGoToToday\r\n highlightSelectedMonth\r\n showMonthPickerAsOverlay={false}\r\n maxDate={max ? new Date(max) : undefined}\r\n />\r\n </PopoverSurface>\r\n </Popover>\r\n );\r\n },\r\n);\r\n\r\nDatePickerInput.displayName = 'DatePickerInput';\r\n\r\nexport default DatePickerInput;\r\n","import {\r\n Button,\r\n Checkbox,\r\n Field,\r\n Input,\r\n Label,\r\n Radio,\r\n RadioGroup,\r\n Switch,\r\n Text,\r\n Textarea,\r\n makeStyles,\r\n tokens,\r\n typographyStyles,\r\n} from '@fluentui/react-components';\r\nimport { Icon } from '@iconify/react';\r\nimport { MutableRefObject, useEffect, useRef, useState } from 'react';\r\nimport { Control, Controller, FieldValues, Path } from 'react-hook-form';\r\nimport PhoneInput from 'react-phone-input-2';\r\n// NOTE: CSS must be imported in the consuming application (_app.tsx or _app.js)\r\n// import 'react-phone-input-2/lib/style.css';\r\nimport Select from 'react-select';\r\n\r\nimport tokensV2, { fontWeight, sharedColors } from '../../constants/generated/tokensV2';\r\n\r\nimport DatePickerInput from './DatePickerInput';\r\nimport { InputDynamicProps, InputType, PhoneValue, CountryCode, SelectOption, RadioOption } from './types';\r\nconst useStyles = makeStyles({\r\n field: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: tokens.spacingVerticalXS,\r\n marginBottom: tokens.spacingVerticalM,\r\n },\r\n errorText: {\r\n color: tokens.colorPaletteRedBackground1,\r\n fontSize: tokens.fontSizeBase200,\r\n },\r\n helperText: {\r\n color: tokens.colorNeutralForeground2,\r\n fontSize: tokens.fontSizeBase200,\r\n },\r\n disabledFilledLighter: {\r\n backgroundColor: tokens.colorNeutralBackground4,\r\n border: 'none',\r\n '& input': {\r\n backgroundColor: tokens.colorNeutralBackground4,\r\n border: 'none',\r\n },\r\n },\r\n fileInput: {\r\n padding: tokens.spacingVerticalS,\r\n border: `1px solid ${tokens.colorNeutralStroke1}`,\r\n borderRadius: tokens.borderRadiusMedium,\r\n backgroundColor: tokens.colorNeutralBackground1,\r\n fontSize: tokens.fontSizeBase300,\r\n '&:focus': {\r\n outline: `2px solid ${tokens.colorBrandStroke1}`,\r\n },\r\n },\r\n reactSelect: {\r\n // Custom styles akan dihandle via styles prop react-select\r\n },\r\n reactSelectError: {\r\n // Custom styles akan dihandle via styles prop react-select\r\n },\r\n phoneContainer: {\r\n display: 'flex',\r\n gap: tokens.spacingHorizontalS,\r\n alignItems: 'flex-start',\r\n width: '100%',\r\n },\r\n phoneCountrySelect: {\r\n minWidth: '120px',\r\n maxWidth: '120px',\r\n flexShrink: 0,\r\n },\r\n switchWrapper: {\r\n '& .fui-Switch': {\r\n minHeight: '20px',\r\n },\r\n '& .fui-Switch__indicator': {\r\n height: '20px',\r\n width: '40px',\r\n borderRadius: '10px',\r\n },\r\n '& .fui-Switch__thumb': {\r\n height: '14px',\r\n width: '14px',\r\n borderRadius: '50%',\r\n },\r\n },\r\n otpInput: {\r\n '& input': {\r\n textAlign: 'center',\r\n },\r\n },\r\n inputWithAutocomplete: {\r\n '& input:-webkit-autofill': {\r\n '-webkit-box-shadow': '0 0 0 30px white inset !important',\r\n '-webkit-text-fill-color': `${tokens.colorNeutralForeground1} !important`,\r\n },\r\n '& input:-webkit-autofill:hover': {\r\n '-webkit-box-shadow': '0 0 0 30px white inset !important',\r\n },\r\n '& input:-webkit-autofill:focus': {\r\n '-webkit-box-shadow': '0 0 0 30px white inset !important',\r\n },\r\n '& input:-webkit-autofill:active': {\r\n '-webkit-box-shadow': '0 0 0 30px white inset !important',\r\n },\r\n },\r\n phoneInputWrapper: {\r\n width: '100%',\r\n '& .react-tel-input': {\r\n width: '100%',\r\n },\r\n '& .react-tel-input .form-control': {\r\n width: '100%',\r\n border: `1px solid ${tokens.colorNeutralStroke1}`,\r\n borderRadius: tokens.borderRadiusMedium,\r\n padding: tokens.spacingVerticalS,\r\n paddingLeft: '48px',\r\n fontSize: tokens.fontSizeBase300,\r\n fontFamily: tokens.fontFamilyBase,\r\n backgroundColor: tokens.colorNeutralBackground1,\r\n color: tokens.colorNeutralForeground1,\r\n outline: 'none',\r\n height: 'auto',\r\n minHeight: '40px',\r\n },\r\n '& .react-tel-input .form-control::placeholder': {\r\n fontSize: tokens.fontSizeBase400,\r\n },\r\n '& .react-tel-input .form-control:hover': {\r\n border: `1px solid ${tokens.colorNeutralStroke1Hover}`,\r\n },\r\n '& .react-tel-input .form-control:focus': {\r\n borderBottom: `2px solid ${tokens.colorBrandStroke1}`,\r\n // boxShadow: `0 0 0 1px ${tokens.colorBrandStroke1}`,\r\n },\r\n '& .react-tel-input .form-control:disabled': {\r\n backgroundColor: tokens.colorNeutralBackground4,\r\n color: tokens.colorNeutralForegroundDisabled,\r\n cursor: 'not-allowed',\r\n },\r\n '& .react-tel-input .flag-dropdown': {\r\n border: 'none',\r\n backgroundColor: 'transparent',\r\n borderRadius: tokens.borderRadiusMedium,\r\n },\r\n '& .react-tel-input .selected-flag': {\r\n padding: '0 0 0 8px',\r\n width: '40px',\r\n backgroundColor: 'transparent',\r\n },\r\n '& .react-tel-input .selected-flag:hover': {\r\n backgroundColor: 'transparent',\r\n },\r\n '& .react-tel-input .flag-dropdown.open .selected-flag': {\r\n backgroundColor: 'transparent',\r\n },\r\n },\r\n phoneInputError: {\r\n '& .react-tel-input .form-control': {\r\n border: `2px solid ${tokens.colorPaletteRedBorder2}`,\r\n },\r\n '& .react-tel-input .form-control:focus': {\r\n border: `2px solid ${tokens.colorPaletteRedBorder2}`,\r\n boxShadow: `0 0 0 1px ${tokens.colorPaletteRedBorder2}`,\r\n },\r\n },\r\n classRadioGroup: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n gap: '12px',\r\n },\r\n classRadio: {\r\n '& .fui-Radio__indicator': {\r\n display: 'none',\r\n },\r\n '& .fui-Radio__label': {\r\n padding: '10px 24px',\r\n border: `1px solid ${tokens.colorNeutralStroke1}`,\r\n borderRadius: tokens.borderRadiusCircular,\r\n cursor: 'pointer',\r\n transition: 'all 0.2s ease',\r\n fontSize: tokens.fontSizeBase300,\r\n color: tokens.colorNeutralForeground2,\r\n },\r\n '&:hover .fui-Radio__label': {\r\n backgroundColor: tokens.colorNeutralBackground1Hover,\r\n border: `1px solid ${tokensV2.lightModeColors.Brand_Stroke_1_Rest}`,\r\n },\r\n '& .fui-Radio__input:checked ~ .fui-Radio__label': {\r\n borderRadius: tokens.borderRadiusXLarge,\r\n border: `1px solid ${tokensV2.lightModeColors.Brand_Stroke_1_Rest}`,\r\n color: tokensV2.lightModeColors.Brand_Stroke_1_Rest,\r\n backgroundColor: 'transparent',\r\n },\r\n // Fallback for aria-checked if needed\r\n '&[aria-checked=\"true\"] .fui-Radio__label': {\r\n borderRadius: tokens.borderRadiusXLarge,\r\n border: `1px solid ${tokensV2.lightModeColors.Brand_Stroke_1_Rest}`,\r\n color: tokensV2.lightModeColors.Brand_Stroke_1_Rest,\r\n backgroundColor: 'transparent',\r\n },\r\n },\r\n});\r\n\r\n// Default country codes\r\nexport const DEFAULT_COUNTRY_CODES: CountryCode[] = [\r\n { code: 'AF', name: 'Afghanistan', dialCode: '+93', passportRegex: '^[A-Z][0-9]{7}$' },\r\n { code: 'AL', name: 'Albania', dialCode: '+355', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'DZ', name: 'Algeria', dialCode: '+213', passportRegex: '^[0-9]{9}$' },\r\n { code: 'AS', name: 'American Samoa', dialCode: '+1', passportRegex: '^[0-9]{9}$' },\r\n { code: 'AD', name: 'Andorra', dialCode: '+376', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'AO', name: 'Angola', dialCode: '+244', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'AI', name: 'Anguilla', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'AQ', name: 'Antarctica', dialCode: '+672', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'AG', name: 'Antigua and Barbuda', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'AR', name: 'Argentina', dialCode: '+54', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\r\n { code: 'AM', name: 'Armenia', dialCode: '+374', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'AW', name: 'Aruba', dialCode: '+297', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'AU', name: 'Australia', dialCode: '+61', passportRegex: '^[A-Z][0-9]{7}$' },\r\n { code: 'AT', name: 'Austria', dialCode: '+43', passportRegex: '^[A-Z0-9]{8}$' },\r\n { code: 'AZ', name: 'Azerbaijan', dialCode: '+994', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'BS', name: 'Bahamas', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BH', name: 'Bahrain', dialCode: '+973', passportRegex: '^[A-Z][0-9]{7}$' },\r\n { code: 'BD', name: 'Bangladesh', dialCode: '+880', passportRegex: '^[A-Z][0-9]{7}$' },\r\n { code: 'BB', name: 'Barbados', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BY', name: 'Belarus', dialCode: '+375', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BE', name: 'Belgium', dialCode: '+32', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BZ', name: 'Belize', dialCode: '+501', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BJ', name: 'Benin', dialCode: '+229', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'BM', name: 'Bermuda', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'BT', name: 'Bhutan', dialCode: '+975', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BO', name: 'Bolivia', dialCode: '+591', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n {\r\n code: 'BA',\r\n name: 'Bosnia and Herzegovina',\r\n dialCode: '+387',\r\n passportRegex: '^[A-Z]{2}[0-9]{6}$',\r\n },\r\n { code: 'BW', name: 'Botswana', dialCode: '+267', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BR', name: 'Brazil', dialCode: '+55', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'BN', name: 'Brunei', dialCode: '+673', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BG', name: 'Bulgaria', dialCode: '+359', passportRegex: '^[0-9]{9}$' },\r\n { code: 'BF', name: 'Burkina Faso', dialCode: '+226', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'BI', name: 'Burundi', dialCode: '+257', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n\r\n { code: 'KH', name: 'Cambodia', dialCode: '+855', passportRegex: '^[A-Z][0-9]{7}$' },\r\n { code: 'CM', name: 'Cameroon', dialCode: '+237', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'CA', name: 'Canada', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'CV', name: 'Cape Verde', dialCode: '+238', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'KY', name: 'Cayman Islands', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n {\r\n code: 'CF',\r\n name: 'Central African Republic',\r\n dialCode: '+236',\r\n passportRegex: '^[A-Z0-9]{6,10}$',\r\n },\r\n { code: 'TD', name: 'Chad', dialCode: '+235', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'CL', name: 'Chile', dialCode: '+56', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'CN', name: 'China', dialCode: '+86', passportRegex: '^[0-9]{9}$' },\r\n { code: 'CO', name: 'Colombia', dialCode: '+57', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\r\n { code: 'KM', name: 'Comoros', dialCode: '+269', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'CG', name: 'Congo', dialCode: '+242', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'CR', name: 'Costa Rica', dialCode: '+506', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'HR', name: 'Croatia', dialCode: '+385', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\r\n { code: 'CU', name: 'Cuba', dialCode: '+53', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'CY', name: 'Cyprus', dialCode: '+357', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'CZ', name: 'Czech Republic', dialCode: '+420', passportRegex: '^[0-9]{8}$' },\r\n\r\n { code: 'DK', name: 'Denmark', dialCode: '+45', passportRegex: '^[A-Z0-9]{9}$' },\r\n { code: 'DJ', name: 'Djibouti', dialCode: '+253', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'DM', name: 'Dominica', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'DO', name: 'Dominican Republic', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n\r\n { code: 'EC', name: 'Ecuador', dialCode: '+593', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'EG', name: 'Egypt', dialCode: '+20', passportRegex: '^[A-Z][0-9]{7}$' },\r\n { code: 'SV', name: 'El Salvador', dialCode: '+503', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'GQ', name: 'Equatorial Guinea', dialCode: '+240', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'ER', name: 'Eritrea', dialCode: '+291', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'EE', name: 'Estonia', dialCode: '+372', passportRegex: '^[A-Z0-9]{8}$' },\r\n { code: 'SZ', name: 'Eswatini', dialCode: '+268', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'ET', name: 'Ethiopia', dialCode: '+251', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n\r\n { code: 'FJ', name: 'Fiji', dialCode: '+679', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'FI', name: 'Finland', dialCode: '+358', passportRegex: '^[A-Z0-9]{9}$' },\r\n { code: 'FR', name: 'France', dialCode: '+33', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'GA', name: 'Gabon', dialCode: '+241', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'GM', name: 'Gambia', dialCode: '+220', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'GE', name: 'Georgia', dialCode: '+995', passportRegex: '^[A-Z0-9]{8}$' },\r\n { code: 'DE', name: 'Germany', dialCode: '+49', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'GH', name: 'Ghana', dialCode: '+233', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'GR', name: 'Greece', dialCode: '+30', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'GD', name: 'Grenada', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'GT', name: 'Guatemala', dialCode: '+502', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\r\n { code: 'GN', name: 'Guinea', dialCode: '+224', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'GW', name: 'Guinea-Bissau', dialCode: '+245', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'GY', name: 'Guyana', dialCode: '+592', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'HT', name: 'Haiti', dialCode: '+509', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'HN', name: 'Honduras', dialCode: '+504', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'HK', name: 'Hong Kong', dialCode: '+852', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'HU', name: 'Hungary', dialCode: '+36', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n\r\n { code: 'IS', name: 'Iceland', dialCode: '+354', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'IN', name: 'India', dialCode: '+91', passportRegex: '^[A-Z][0-9]{7}$' },\r\n { code: 'ID', name: 'Indonesia', dialCode: '+62', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'IR', name: 'Iran', dialCode: '+98', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'IQ', name: 'Iraq', dialCode: '+964', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'IE', name: 'Ireland', dialCode: '+353', passportRegex: '^[A-Z0-9]{2}[0-9]{7}$' },\r\n { code: 'IL', name: 'Israel', dialCode: '+972', passportRegex: '^[0-9]{8,9}$' },\r\n { code: 'IT', name: 'Italy', dialCode: '+39', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'JM', name: 'Jamaica', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'JP', name: 'Japan', dialCode: '+81', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'JO', name: 'Jordan', dialCode: '+962', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'KZ', name: 'Kazakhstan', dialCode: '+7', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'KE', name: 'Kenya', dialCode: '+254', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'KI', name: 'Kiribati', dialCode: '+686', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'KP', name: 'North Korea', dialCode: '+850', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'KR', name: 'South Korea', dialCode: '+82', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\r\n { code: 'KW', name: 'Kuwait', dialCode: '+965', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'KG', name: 'Kyrgyzstan', dialCode: '+996', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'LA', name: 'Laos', dialCode: '+856', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'LV', name: 'Latvia', dialCode: '+371', passportRegex: '^[A-Z0-9]{8}$' },\r\n { code: 'LB', name: 'Lebanon', dialCode: '+961', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'LS', name: 'Lesotho', dialCode: '+266', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'LR', name: 'Liberia', dialCode: '+231', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'LY', name: 'Libya', dialCode: '+218', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'LI', name: 'Liechtenstein', dialCode: '+423', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'LT', name: 'Lithuania', dialCode: '+370', passportRegex: '^[A-Z0-9]{8}$' },\r\n { code: 'LU', name: 'Luxembourg', dialCode: '+352', passportRegex: '^[A-Z0-9]{8}$' },\r\n\r\n { code: 'MO', name: 'Macau', dialCode: '+853', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'MG', name: 'Madagascar', dialCode: '+261', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'MW', name: 'Malawi', dialCode: '+265', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'MY', name: 'Malaysia', dialCode: '+60', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\r\n { code: 'MV', name: 'Maldives', dialCode: '+960', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'ML', name: 'Mali', dialCode: '+223', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'MT', name: 'Malta', dialCode: '+356', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'MH', name: 'Marshall Islands', dialCode: '+692', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'MQ', name: 'Martinique', dialCode: '+596', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'MR', name: 'Mauritania', dialCode: '+222', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'MU', name: 'Mauritius', dialCode: '+230', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'MX', name: 'Mexico', dialCode: '+52', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\r\n { code: 'FM', name: 'Micronesia', dialCode: '+691', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'MD', name: 'Moldova', dialCode: '+373', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'MC', name: 'Monaco', dialCode: '+377', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'MN', name: 'Mongolia', dialCode: '+976', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'ME', name: 'Montenegro', dialCode: '+382', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'MS', name: 'Montserrat', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'MA', name: 'Morocco', dialCode: '+212', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'MZ', name: 'Mozambique', dialCode: '+258', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n\r\n { code: 'MM', name: 'Myanmar', dialCode: '+95', passportRegex: '^[A-Z]{1}[0-9]{6,7}$' },\r\n\r\n { code: 'NA', name: 'Namibia', dialCode: '+264', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'NR', name: 'Nauru', dialCode: '+674', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'NP', name: 'Nepal', dialCode: '+977', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'NL', name: 'Netherlands', dialCode: '+31', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'NC', name: 'New Caledonia', dialCode: '+687', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'NZ', name: 'New Zealand', dialCode: '+64', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'NI', name: 'Nicaragua', dialCode: '+505', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\r\n { code: 'NE', name: 'Niger', dialCode: '+227', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'NG', name: 'Nigeria', dialCode: '+234', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'NO', name: 'Norway', dialCode: '+47', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'OM', name: 'Oman', dialCode: '+968', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n\r\n { code: 'PK', name: 'Pakistan', dialCode: '+92', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'PW', name: 'Palau', dialCode: '+680', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'PS', name: 'Palestine', dialCode: '+970', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'PA', name: 'Panama', dialCode: '+507', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'PG', name: 'Papua New Guinea', dialCode: '+675', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'PY', name: 'Paraguay', dialCode: '+595', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'PE', name: 'Peru', dialCode: '+51', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'PH', name: 'Philippines', dialCode: '+63', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'PL', name: 'Poland', dialCode: '+48', passportRegex: '^[A-Z0-9]{2}[0-9]{7}$' },\r\n { code: 'PT', name: 'Portugal', dialCode: '+351', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n\r\n { code: 'RO', name: 'Romania', dialCode: '+40', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'RU', name: 'Russia', dialCode: '+7', passportRegex: '^[0-9]{9}$' },\r\n { code: 'RW', name: 'Rwanda', dialCode: '+250', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n\r\n {\r\n code: 'KN',\r\n name: 'Saint Kitts and Nevis',\r\n dialCode: '+1',\r\n passportRegex: '^[A-Z]{2}[0-9]{7}$',\r\n },\r\n { code: 'LC', name: 'Saint Lucia', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n {\r\n code: 'VC',\r\n name: 'Saint Vincent and the Grenadines',\r\n dialCode: '+1',\r\n passportRegex: '^[A-Z]{2}[0-9]{7}$',\r\n },\r\n\r\n { code: 'WS', name: 'Samoa', dialCode: '+685', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'SM', name: 'San Marino', dialCode: '+378', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n {\r\n code: 'ST',\r\n name: 'Sao Tome and Principe',\r\n dialCode: '+239',\r\n passportRegex: '^[A-Z0-9]{6,10}$',\r\n },\r\n\r\n { code: 'SA', name: 'Saudi Arabia', dialCode: '+966', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'SN', name: 'Senegal', dialCode: '+221', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'RS', name: 'Serbia', dialCode: '+381', passportRegex: '^[A-Z0-9]{9}$' },\r\n { code: 'SC', name: 'Seychelles', dialCode: '+248', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'SL', name: 'Sierra Leone', dialCode: '+232', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'SG', name: 'Singapore', dialCode: '+65', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'SK', name: 'Slovakia', dialCode: '+421', passportRegex: '^[0-9]{9}$' },\r\n { code: 'SI', name: 'Slovenia', dialCode: '+386', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'SB', name: 'Solomon Islands', dialCode: '+677', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'SO', name: 'Somalia', dialCode: '+252', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'ZA', name: 'South Africa', dialCode: '+27', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'ES', name: 'Spain', dialCode: '+34', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\r\n { code: 'LK', name: 'Sri Lanka', dialCode: '+94', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'SD', name: 'Sudan', dialCode: '+249', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'SR', name: 'Suriname', dialCode: '+597', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'SE', name: 'Sweden', dialCode: '+46', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'CH', name: 'Switzerland', dialCode: '+41', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'SY', name: 'Syria', dialCode: '+963', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n\r\n { code: 'TW', name: 'Taiwan', dialCode: '+886', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\r\n { code: 'TJ', name: 'Tajikistan', dialCode: '+992', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'TZ', name: 'Tanzania', dialCode: '+255', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'TH', name: 'Thailand', dialCode: '+66', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'TL', name: 'Timor-Leste', dialCode: '+670', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'TG', name: 'Togo', dialCode: '+228', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'TO', name: 'Tonga', dialCode: '+676', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'TT', name: 'Trinidad and Tobago', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'TN', name: 'Tunisia', dialCode: '+216', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'TR', name: 'Turkey', dialCode: '+90', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'TM', name: 'Turkmenistan', dialCode: '+993', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n {\r\n code: 'TC',\r\n name: 'Turks and Caicos Islands',\r\n dialCode: '+1',\r\n passportRegex: '^[A-Z0-9]{6,10}$',\r\n },\r\n { code: 'TV', name: 'Tuvalu', dialCode: '+688', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n\r\n { code: 'UG', name: 'Uganda', dialCode: '+256', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'UA', name: 'Ukraine', dialCode: '+380', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n {\r\n code: 'AE',\r\n name: 'United Arab Emirates',\r\n dialCode: '+971',\r\n passportRegex: '^[A-Z]{1}[0-9]{7}$',\r\n },\r\n { code: 'GB', name: 'United Kingdom', dialCode: '+44', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'US', name: 'United States', dialCode: '+1', passportRegex: '^[0-9]{9}$' },\r\n { code: 'UY', name: 'Uruguay', dialCode: '+598', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\r\n { code: 'UZ', name: 'Uzbekistan', dialCode: '+998', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'VU', name: 'Vanuatu', dialCode: '+678', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'VA', name: 'Vatican City', dialCode: '+379', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'VE', name: 'Venezuela', dialCode: '+58', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'VN', name: 'Vietnam', dialCode: '+84', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n\r\n { code: 'YE', name: 'Yemen', dialCode: '+967', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n\r\n { code: 'ZM', name: 'Zambia', dialCode: '+260', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'ZW', name: 'Zimbabwe', dialCode: '+263', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n];\r\n\r\n\r\n// Helper function to check if it's a valid phone number start\r\n// const isValidPhoneStart = (value: string): boolean => {\r\n// if (!value || value.length < 6) return false;\r\n\r\n// // Phone number patterns for international numbers:\r\n// // - Must be all digits\r\n// // - Length between 6-15 digits (international standard)\r\n// // - Common patterns: starts with 0, +, or direct country code (1-9)\r\n// const cleanValue = value.replace(/[\\s\\-\\(\\)]/g, ''); // Remove common phone formatting\r\n\r\n// // Check if it's all digits (after removing + at start if present)\r\n// const numericValue = cleanValue.replace(/^\\+/, '');\r\n// const isAllDigits = /^\\d+$/.test(numericValue);\r\n\r\n// // Must be all digits and have reasonable length for phone number (6-15 digits)\r\n// return isAllDigits && numericValue.length >= 6 && numericValue.length <= 15;\r\n// };\r\n\r\n// Helper function to detect input type for identity field\r\nconst detectIdentityType = (value: string): 'email' | 'phone' | 'id' => {\r\n if (!value) return 'id';\r\n\r\n // Ensure value is a string to prevent \"includes/startsWith is not a function\" errors\r\n const stringValue = String(value);\r\n\r\n // Check if it's an email (contains @)\r\n if (stringValue.includes('@')) return 'email';\r\n\r\n // Check if it's a phone number - starts with +\r\n if (stringValue.startsWith('+')) return 'phone';\r\n\r\n // Check if it's all numeric (phone without +)\r\n // This handles the case when PhoneInput returns just numbers\r\n // const isAllNumeric = /^\\d+$/.test(value);\r\n // if (isAllNumeric && value.length >= 10) return 'phone';\r\n\r\n // Otherwise it's an ID (KTP/SIM/Passport - mixed alphanumeric or short numbers)\r\n return 'id';\r\n};\r\n\r\nconst detectEmailOrPhone = (value: string): 'email' | 'phone' | 'none' => {\r\n if (!value) return 'none';\r\n\r\n // Check if it's an email (contains @)\r\n if (value.includes('@')) return 'email';\r\n\r\n // Check if it's a phone number - starts with +\r\n if (value.startsWith('+')) return 'phone';\r\n\r\n return 'none';\r\n};\r\n\r\n// Helper function khusus untuk emailOrPhone type - deteksi lebih strict\r\nconst detectEmailOrPhoneStrict = (value: string): 'email' | 'phone' | 'none' => {\r\n if (!value) return 'none';\r\n\r\n // Check if it's an email (contains @)\r\n if (value.includes('@')) return 'email';\r\n\r\n // Check if it's a phone number - starts with + (international format)\r\n if (value.startsWith('+')) return 'phone';\r\n\r\n // Check if it's Indonesian phone format starting with 0 (e.g., 08xxx)\r\n if (/^0\\d/.test(value)) return 'phone';\r\n\r\n // Check if it's Indonesian phone without + (e.g., 628xxx)\r\n if (/^62\\d/.test(value)) return 'phone';\r\n\r\n return 'none';\r\n};\r\n\r\nfunction InputDynamic<T extends FieldValues = FieldValues>({\r\n name,\r\n control,\r\n label,\r\n type,\r\n placeholder,\r\n required = false,\r\n disabled = false,\r\n options = [],\r\n multiple = false,\r\n accept,\r\n rows = 3,\r\n min,\r\n max,\r\n step,\r\n isMultiSelect = false,\r\n selectScrollbarColor,\r\n contentBefore,\r\n appearance = 'outline',\r\n validationRules,\r\n helperText,\r\n className,\r\n layout,\r\n size,\r\n onClick,\r\n style,\r\n countryCodes = DEFAULT_COUNTRY_CODES,\r\n defaultCountry = 'ID',\r\n maxLength,\r\n autoAdvance = false,\r\n otpIndex,\r\n hasError = false,\r\n autoComplete,\r\n onInput,\r\n contentAfter,\r\n onChange,\r\n}: InputDynamicProps<T>) {\r\n const styles = useStyles();\r\n const [showPassword, setShowPassword] = useState(false);\r\n const [isPhoneMode, setIsPhoneMode] = useState(false);\r\n const [emailOrPhoneType, setEmailOrPhoneType] = useState<'email' | 'phone' | 'none'>('none');\r\n const [identityType, setIdentityType] = useState<'email' | 'phone' | 'id'>('id');\r\n const [lastPhoneValue, setLastPhoneValue] = useState('');\r\n const [lastEmailOrPhoneValue, setLastEmailOrPhoneValue] = useState('');\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n const phoneInputRef = useRef<any>(null);\r\n const emailOrPhoneInputRef = useRef<any>(null);\r\n const shouldFocusRef = useRef(false);\r\n const isBackspaceNavigationRef = useRef(false);\r\n\r\n // Custom styles untuk react-select\r\n const getSelectStyles = (hasError: boolean) => ({\r\n menuPortal: (base: any) => ({\r\n ...base,\r\n zIndex: 9999999,\r\n borderRadius: tokens.borderRadiusMedium,\r\n }),\r\n control: (provided: any, state: any) => ({\r\n ...provided,\r\n borderColor: hasError\r\n ? tokens.colorPaletteRedBorder2\r\n : state.isFocused\r\n ? tokens.colorBrandStroke1\r\n : tokens.colorNeutralStroke1,\r\n borderRadius: tokens.borderRadiusMedium,\r\n minHeight: '40px',\r\n fontSize: tokens.fontSizeBase400,\r\n backgroundColor: tokens.colorNeutralBackground1,\r\n boxShadow: state.isFocused\r\n ? `0 0 0 2px ${hasError ? tokens.colorPaletteRedBorder2 : tokens.colorBrandStroke1}`\r\n : 'none',\r\n '&:hover': {\r\n borderColor: hasError ? tokens.colorPaletteRedBorder2 : tokens.colorNeutralStroke1Hover,\r\n },\r\n }),\r\n menu: (provided: any) => ({\r\n ...provided,\r\n border: `1px solid ${tokens.colorNeutralStroke1}`,\r\n borderRadius: tokens.borderRadiusMedium,\r\n zIndex: 9999,\r\n }),\r\n menuList: (provided: any) => ({\r\n ...provided,\r\n padding: 0, // Opsional: bersihkan padding agar scrollbar mepet ke pinggir\r\n maxHeight: '300px', // Pastikan ada limit height agar scrollbar muncul\r\n\r\n /* Targetkan Webkit Scrollbar di menuList */\r\n '&::-webkit-scrollbar': {\r\n width: '8px',\r\n display: 'block', // Pastikan tampil\r\n },\r\n '&::-webkit-scrollbar-track': {\r\n backgroundColor: tokens.colorNeutralBackground2,\r\n borderRadius: '4px',\r\n },\r\n '&::-webkit-scrollbar-thumb': {\r\n backgroundColor: selectScrollbarColor || tokens.colorNeutralStroke2,\r\n borderRadius: '4px',\r\n },\r\n '&::-webkit-scrollbar-thumb:hover': {\r\n backgroundColor: selectScrollbarColor || tokens.colorBrandBackground,\r\n },\r\n '&::-webkit-scrollbar-thumb:active': {\r\n backgroundColor: selectScrollbarColor || tokens.colorBrandBackgroundPressed,\r\n },\r\n }),\r\n option: (provided: any, state: any) => ({\r\n ...provided,\r\n fontSize: tokens.fontSizeBase300,\r\n color: state.isSelected\r\n ? tokens.colorNeutralForegroundOnBrand\r\n : tokens.colorNeutralForeground1,\r\n backgroundColor: state.isSelected\r\n ? tokens.colorBrandBackground\r\n : state.isFocused\r\n ? tokens.colorNeutralBackground1Hover\r\n : 'transparent',\r\n }),\r\n placeholder: (provided: any) => ({\r\n ...provided,\r\n color: tokens.colorNeutralForeground3,\r\n fontSize: tokens.fontSizeBase400,\r\n }),\r\n singleValue: (provided: any) => ({\r\n ...provided,\r\n color: tokens.colorNeutralForeground1,\r\n fontSize: tokens.fontSizeBase400,\r\n }),\r\n });\r\n\r\n // Focus the input when mode changes\r\n useEffect(() => {\r\n if (shouldFocusRef.current) {\r\n // Small delay to ensure the new input is mounted\r\n setTimeout(() => {\r\n // console.log(\r\n // 'Focusing input for type:',\r\n // identityType,\r\n // 'shouldFocusRef:',\r\n // shouldFocusRef.current,\r\n // );\r\n if (identityType === 'phone' && phoneInputRef.current) {\r\n // PhoneInput uses an internal input element\r\n const phoneInput = phoneInputRef.current.querySelector('input.form-control');\r\n if (phoneInput) {\r\n phoneInput.focus();\r\n // Set cursor to end of input\r\n const len = phoneInput.value.length;\r\n phoneInput.setSelectionRange(len, len);\r\n }\r\n } else if (inputRef.current) {\r\n inputRef.current.focus();\r\n // Set cursor to end of input only for text-like inputs\r\n // email, number, date, etc. don't support setSelectionRange\r\n const inputType = inputRef.current.type;\r\n if (\r\n inputType === 'text' ||\r\n inputType === 'tel' ||\r\n inputType === 'url' ||\r\n inputType === 'search'\r\n ) {\r\n const len = inputRef.current.value.length;\r\n inputRef.current.setSelectionRange(len, len);\r\n }\r\n }\r\n shouldFocusRef.current = false;\r\n }, 50);\r\n }\r\n }, [identityType]);\r\n\r\n // Focus handling for emailOrPhone type\r\n useEffect(() => {\r\n if (shouldFocusRef.current && type === 'emailOrPhone') {\r\n setTimeout(() => {\r\n if (emailOrPhoneType === 'phone' && emailOrPhoneInputRef.current) {\r\n const phoneInput = emailOrPhoneInputRef.current.querySelector('input.form-control');\r\n if (phoneInput) {\r\n phoneInput.focus();\r\n const len = phoneInput.value.length;\r\n phoneInput.setSelectionRange(len, len);\r\n }\r\n } else if (inputRef.current) {\r\n inputRef.current.focus();\r\n const inputType = inputRef.current.type;\r\n // Only use setSelectionRange on input types that support it\r\n if (\r\n inputType === 'text' ||\r\n inputType === 'tel' ||\r\n inputType === 'url' ||\r\n inputType === 'search'\r\n ) {\r\n const len = inputRef.current.value.length;\r\n inputRef.current.setSelectionRange(len, len);\r\n }\r\n }\r\n shouldFocusRef.current = false;\r\n }, 50);\r\n }\r\n }, [emailOrPhoneType, type]);\r\n\r\n // const updatePhoneMode = (value: any) => {\r\n // const stringValue = typeof value === 'string' ? value : value?.phoneNumber || '';\r\n // const nextMode = isValidPhoneStart(stringValue);\r\n // if (nextMode !== isPhoneMode) {\r\n // setIsPhoneMode(nextMode);\r\n // }\r\n // };\r\n\r\n const updateIdentityType = (value: any) => {\r\n const stringValue = typeof value === 'string' ? value : value?.phoneNumber || '';\r\n const detectedType = detectIdentityType(stringValue);\r\n if (detectedType !== identityType) {\r\n setIdentityType(detectedType);\r\n }\r\n };\r\n\r\n const updateEmailOrPhoneType = (value: any) => {\r\n const stringValue = typeof value === 'string' ? value : '';\r\n const detectedType = detectEmailOrPhoneStrict(stringValue);\r\n if (detectedType !== emailOrPhoneType) {\r\n setEmailOrPhoneType(detectedType);\r\n }\r\n };\r\n\r\n const renderInput = (field: any, error?: string) => {\r\n // Make border transparent when disabled and appearance is not outline/underline\r\n const shouldTransparentBorder =\r\n disabled && appearance !== 'outline' && appearance !== 'underline';\r\n\r\n const inputStyle = shouldTransparentBorder ? { ...style, border: 'transparent' } : style;\r\n\r\n const handleInputChange = (e: any) => {\r\n field.onChange(e);\r\n if (onChange) {\r\n onChange(e.target?.value ?? e);\r\n }\r\n };\r\n\r\n const commonProps = {\r\n ...field,\r\n onChange: handleInputChange,\r\n value: field.value ?? '',\r\n placeholder,\r\n disabled,\r\n appearance: error ? 'invalid' : appearance,\r\n size,\r\n contentBefore,\r\n onClick,\r\n style: inputStyle,\r\n maxLength,\r\n autoComplete: autoComplete || 'off',\r\n contentAfter,\r\n max,\r\n } as const;\r\n const otpMatch = /^otp(\\d+)$/.exec(String(name));\r\n const otpIndex = otpMatch ? parseInt(otpMatch[1], 10) : null;\r\n\r\n // Handle emailOrPhone type - khusus untuk email atau nomor HP saja\r\n if (type === 'emailOrPhone') {\r\n updateEmailOrPhoneType(field.value);\r\n\r\n const stringValue = typeof field.value === 'string' ? field.value : '';\r\n\r\n // Determine input type and placeholder based on detected type\r\n let inputType: 'text' | 'email' | 'tel' = 'text';\r\n let inputPlaceholder = placeholder || 'Email atau Nomor HP';\r\n\r\n if (emailOrPhoneType === 'email') {\r\n inputType = 'email';\r\n inputPlaceholder = placeholder || 'Email';\r\n } else if (emailOrPhoneType === 'phone') {\r\n inputType = 'tel';\r\n inputPlaceholder = placeholder || 'Nomor HP';\r\n }\r\n\r\n // Normalize Indonesian phone numbers: convert 08xxx to +628xxx\r\n const normalizePhoneNumber = (val: string): string => {\r\n if (!val) return val;\r\n // Convert 08xxx to +628xxx\r\n if (val.startsWith('08')) {\r\n return '+62' + val.substring(1);\r\n }\r\n // Convert 628xxx to +628xxx\r\n if (val.startsWith('62') && !val.startsWith('+')) {\r\n return '+' + val;\r\n }\r\n return val;\r\n };\r\n\r\n // Clean phone value: remove leading zero after country code\r\n const cleanPhoneValue = (val: string): string => {\r\n if (!val) return val;\r\n const match = val.match(/^(\\d{1,4})(0\\d+)$/);\r\n if (match) {\r\n return match[1] + match[2].substring(1);\r\n }\r\n return val;\r\n };\r\n\r\n const displayValue =\r\n emailOrPhoneType === 'phone' ? cleanPhoneValue(stringValue) : stringValue;\r\n\r\n return (\r\n <div className={styles.phoneContainer}>\r\n {emailOrPhoneType === 'phone' ? (\r\n <div\r\n ref={emailOrPhoneInputRef}\r\n className={`${styles.phoneInputWrapper} ${error ? styles.phoneInputError : ''}`}\r\n >\r\n <PhoneInput\r\n country={defaultCountry.toLowerCase()}\r\n value={stringValue.startsWith('+') ? stringValue.substring(1) : stringValue}\r\n onChange={(value: string, data: any) => {\r\n if (!value) {\r\n shouldFocusRef.current = true;\r\n field.onChange('');\r\n updateEmailOrPhoneType('');\r\n setLastEmailOrPhoneValue('');\r\n return;\r\n }\r\n\r\n const countryDialCode = data?.dialCode || '';\r\n\r\n if (value === countryDialCode) {\r\n const dialCodeChanged =\r\n lastEmailOrPhoneValue &&\r\n lastEmailOrPhoneValue !== countryDialCode &&\r\n !lastEmailOrPhoneValue.startsWith(countryDialCode);\r\n\r\n const isInitial = !lastEmailOrPhoneValue;\r\n const wasFullNumber = lastEmailOrPhoneValue && lastEmailOrPhoneValue.length > 3;\r\n\r\n if (isInitial || dialCodeChanged || wasFullNumber) {\r\n const phoneValue = '+' + value;\r\n field.onChange(phoneValue);\r\n updateEmailOrPhoneType(phoneValue);\r\n setLastEmailOrPhoneValue(value);\r\n return;\r\n } else {\r\n shouldFocusRef.current = true;\r\n field.onChange('');\r\n updateEmailOrPhoneType('');\r\n setLastEmailOrPhoneValue('');\r\n return;\r\n }\r\n }\r\n\r\n const phoneValue = '+' + value;\r\n field.onChange(phoneValue);\r\n updateEmailOrPhoneType(phoneValue);\r\n setLastEmailOrPhoneValue(value);\r\n }}\r\n placeholder={inputPlaceholder}\r\n disabled={disabled}\r\n enableSearch\r\n />\r\n </div>\r\n ) : (\r\n <Input\r\n ref={inputRef}\r\n value={stringValue}\r\n maxLength={maxLength}\r\n autoComplete={autoComplete || 'off'}\r\n onChange={(e: any) => {\r\n const newValue = e.target.value;\r\n const willSwitchType = emailOrPhoneType !== detectEmailOrPhoneStrict(newValue);\r\n\r\n if (willSwitchType) shouldFocusRef.current = true;\r\n\r\n // Auto-normalize phone numbers for Indonesian format\r\n let normalizedValue = newValue;\r\n const detectedType = detectEmailOrPhoneStrict(newValue);\r\n if (detectedType === 'phone') {\r\n normalizedValue = normalizePhoneNumber(newValue);\r\n }\r\n\r\n field.onChange(normalizedValue);\r\n updateEmailOrPhoneType(normalizedValue);\r\n }}\r\n placeholder={inputPlaceholder}\r\n disabled={disabled}\r\n appearance={appearance}\r\n size={size}\r\n type={inputType}\r\n style={{ width: '100%' }}\r\n />\r\n )}\r\n </div>\r\n );\r\n }\r\n\r\n // If this is an identity type, check and update mode\r\n if (type === 'identity') {\r\n // update type whenever value changes\r\n updateIdentityType(field.value);\r\n\r\n const stringValue = typeof field.value === 'string' ? field.value : '';\r\n\r\n // Determine input type and placeholder based on detected type\r\n let inputType: 'text' | 'email' | 'tel' | 'number' = 'text';\r\n let inputPlaceholder = placeholder || 'Email, KTP, SIM, Passport, atau Nomor Telepon';\r\n\r\n if (identityType === 'email') {\r\n inputType = 'email';\r\n inputPlaceholder = placeholder || 'Email';\r\n } else if (identityType === 'phone') {\r\n inputType = 'tel';\r\n inputPlaceholder = placeholder || 'Nomor telepon';\r\n } else if (identityType === 'id') {\r\n inputType = 'text';\r\n inputPlaceholder = placeholder || 'KTP, SIM, atau Passport';\r\n }\r\n\r\n // Clean phone value: remove leading zero after country code\r\n const cleanPhoneValue = (val: string): string => {\r\n if (!val) return val;\r\n // Ensure val is a string to prevent \"match is not a function\" error\r\n const stringVal = String(val);\r\n // Check if value starts with common country codes followed by 0\r\n // E.g., 6208... should become 628...\r\n const match = stringVal.match(/^(\\d{1,4})(0\\d+)$/);\r\n if (match) {\r\n return match[1] + match[2].substring(1);\r\n }\r\n return stringVal;\r\n };\r\n\r\n const displayValue = identityType === 'phone' ? cleanPhoneValue(stringValue) : stringValue;\r\n\r\n return (\r\n <div className={styles.phoneContainer}>\r\n {identityType === 'phone' ? (\r\n <div\r\n ref={phoneInputRef}\r\n className={`${styles.phoneInputWrapper} ${error ? styles.phoneInputError : ''}`}\r\n >\r\n <PhoneInput\r\n country={defaultCountry.toLowerCase()}\r\n value={stringValue.startsWith('+') ? stringValue.substring(1) : stringValue}\r\n onChange={(value: string, data: any) => {\r\n // If completely empty, switch back to id mode\r\n if (!value) {\r\n shouldFocusRef.current = true;\r\n field.onChange('');\r\n updateIdentityType('');\r\n setLastPhoneValue('');\r\n return;\r\n }\r\n\r\n // Get the country dial code\r\n const countryDialCode = data?.dialCode || '';\r\n\r\n // If value is just the country code\r\n if (value === countryDialCode) {\r\n // Check if dial code changed (user is changing country)\r\n const dialCodeChanged =\r\n lastPhoneValue &&\r\n lastPhoneValue !== countryDialCode &&\r\n !lastPhoneValue.startsWith(countryDialCode);\r\n\r\n // Check if this is initial state (user just typed +)\r\n const isInitial = !lastPhoneValue;\r\n\r\n // Check if user had a full number and now changing country\r\n const wasFullNumber = lastPhoneValue && lastPhoneValue.length > 3;\r\n\r\n if (isInitial || dialCodeChanged || wasFullNumber) {\r\n // Keep in phone mode\r\n const phoneValue = '+' + value;\r\n field.onChange(phoneValue);\r\n updateIdentityType(phoneValue);\r\n setLastPhoneValue(value);\r\n return;\r\n } else {\r\n // User is deleting digits back to dial code only - switch to ID\r\n shouldFocusRef.current = true; // Set focus flag before switching\r\n field.onChange('');\r\n updateIdentityType('');\r\n setLastPhoneValue('');\r\n return;\r\n }\r\n }\r\n\r\n // PhoneInput returns value without +, so we add it\r\n const phoneValue = '+' + value;\r\n\r\n field.onChange(phoneValue);\r\n updateIdentityType(phoneValue);\r\n setLastPhoneValue(value);\r\n }}\r\n placeholder={inputPlaceholder}\r\n disabled={disabled}\r\n enableSearch\r\n disableSearchIcon\r\n />\r\n </div>\r\n ) : (\r\n <Input\r\n ref={inputRef}\r\n value={stringValue}\r\n maxLength={maxLength}\r\n autoComplete={autoComplete || 'off'}\r\n onChange={(e: any) => {\r\n const newValue = e.target.value;\r\n const willSwitchType = identityType !== detectIdentityType(newValue);\r\n\r\n if (willSwitchType) shouldFocusRef.current = true;\r\n\r\n field.onChange(newValue);\r\n\r\n // Update type whenever input changes\r\n updateIdentityType(newValue);\r\n }}\r\n placeholder={inputPlaceholder}\r\n disabled={disabled}\r\n appearance={appearance}\r\n size={size}\r\n type={inputType}\r\n style={{ width: '100%' }}\r\n />\r\n )}\r\n </div>\r\n );\r\n }\r\n\r\n switch (type) {\r\n case 'textarea':\r\n return <Textarea {...commonProps} rows={rows} resize=\"vertical\" />;\r\n\r\n case 'select':\r\n return (\r\n <Select\r\n {...field}\r\n name={`${String(name)}_${Math.random().toString(36).substring(7)}`}\r\n isDisabled={disabled}\r\n placeholder={placeholder}\r\n options={options}\r\n styles={getSelectStyles(!!error)}\r\n className={styles.reactSelect}\r\n classNamePrefix=\"react-select\"\r\n isMulti={isMultiSelect}\r\n inputProps={{\r\n autoComplete: 'new-password',\r\n autoCorrect: 'off',\r\n autoCapitalize: 'off',\r\n spellCheck: 'false',\r\n }}\r\n value={\r\n isMultiSelect\r\n ? options.filter(option => field.value?.includes(option.value))\r\n : options.find(option => option.value === field.value) || null\r\n }\r\n onChange={(selectedOption: any) => {\r\n if (isMultiSelect) {\r\n const values = selectedOption\r\n ? selectedOption.map((opt: SelectOption) => opt.value)\r\n : [];\r\n field.onChange(values);\r\n } else {\r\n field.onChange(selectedOption ? selectedOption.value : '');\r\n }\r\n }}\r\n getOptionLabel={(option: SelectOption) => option.label}\r\n getOptionValue={(option: SelectOption) => option.value}\r\n isOptionDisabled={(option: SelectOption) => option.disabled || false}\r\n \r\n />\r\n );\r\n\r\n case 'phone': {\r\n // Clean phone value: remove leading zero after country code\r\n const cleanPhoneValue = (val: string): string => {\r\n if (!val) return val;\r\n // Ensure val is a string to prevent \"match is not a function\" error\r\n const stringVal = String(val);\r\n // Check if value starts with common country codes followed by 0\r\n const match = stringVal.match(/^(\\d{1,4})(0\\d+)$/);\r\n if (match) {\r\n return match[1] + match[2].substring(1);\r\n }\r\n return stringVal;\r\n };\r\n\r\n const cleanedFieldValue = cleanPhoneValue(field.value || '');\r\n\r\n return (\r\n <div className={`${styles.phoneInputWrapper} ${error ? styles.phoneInputError : ''}`}>\r\n <PhoneInput\r\n country={defaultCountry.toLowerCase()}\r\n value={cleanedFieldValue}\r\n onChange={(value: string, data: any) => {\r\n const cleanedValue = cleanPhoneValue(value || '');\r\n field.onChange(cleanedValue);\r\n }}\r\n placeholder={placeholder || 'Nomor telepon'}\r\n disabled={disabled}\r\n enableSearch\r\n disableSearchIcon\r\n />\r\n </div>\r\n );\r\n }\r\n\r\n case 'passport': {\r\n const passportValue: PhoneValue = field.value || {\r\n countryCode: defaultCountry,\r\n phoneNumber: '',\r\n };\r\n\r\n const countryOptions = countryCodes.map(country => ({\r\n value: country.code,\r\n label: country.name,\r\n code: country.code,\r\n passportRegex: country.passportRegex,\r\n }));\r\n\r\n const formatOptionLabel = (option: any) => (\r\n <div style={{ display: 'flex', alignItems: 'center', gap: '8px' }}>\r\n <span style={{ fontSize: '18px' }}>\r\n {String.fromCodePoint(\r\n ...option.code.split('').map((char: string) => 127397 + char.charCodeAt(0)),\r\n )}\r\n </span>\r\n <span>{option.label}</span>\r\n </div>\r\n );\r\n\r\n const selectedCountry = countryOptions.find(opt => opt.value === passportValue.countryCode);\r\n const isCountrySelected = !!selectedCountry;\r\n\r\n return (\r\n <div className={styles.phoneContainer}>\r\n <div className={styles.phoneCountrySelect}>\r\n <Select\r\n value={selectedCountry || null}\r\n onChange={(selectedOption: any) => {\r\n field.onChange({\r\n ...passportValue,\r\n countryCode: selectedOption ? selectedOption.value : defaultCountry,\r\n });\r\n }}\r\n options={countryOptions}\r\n isDisabled={disabled}\r\n placeholder=\"ðŸ³ï¸\"\r\n styles={getSelectStyles(!!error)}\r\n isSearchable\r\n formatOptionLabel={formatOptionLabel}\r\n />\r\n </div>\r\n <div style={{ flex: 1, minWidth: 0 }}>\r\n <Input\r\n value={passportValue.phoneNumber}\r\n maxLength={maxLength}\r\n autoComplete={autoComplete || 'off'}\r\n onChange={(e: any) => {\r\n field.onChange({\r\n ...passportValue,\r\n phoneNumber: e.target.value,\r\n });\r\n }}\r\n placeholder={placeholder || 'Nomor paspor'}\r\n disabled={disabled || !isCountrySelected}\r\n appearance={appearance}\r\n size={size}\r\n type=\"text\"\r\n style={{ width: '100%' }}\r\n />\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n case 'file':\r\n return (\r\n <input\r\n {...field}\r\n type=\"file\"\r\n multiple={multiple}\r\n accept={accept}\r\n disabled={disabled}\r\n className={styles.fileInput}\r\n value={undefined}\r\n onChange={e => {\r\n const files = e.target.files;\r\n field.onChange(multiple ? files : files?.[0]);\r\n }}\r\n />\r\n );\r\n\r\n case 'switch':\r\n return (\r\n <div className={styles.switchWrapper}>\r\n <Switch\r\n {...field}\r\n checked={field.value || false}\r\n disabled={disabled}\r\n onChange={(_, data) => field.onChange(data.checked)}\r\n />\r\n </div>\r\n );\r\n\r\n case 'date':\r\n return <DatePickerInput {...commonProps} field={field} />;\r\n\r\n case 'radio':\r\n return (\r\n <RadioGroup {...field} disabled={disabled} layout={layout ?? 'vertical'}>\r\n {options.map(option => (\r\n <Radio\r\n key={option.value}\r\n value={option.value}\r\n label={option.label}\r\n disabled={option.disabled}\r\n />\r\n ))}\r\n </RadioGroup>\r\n );\r\n\r\n case 'radiobutton':\r\n return (\r\n <RadioGroup\r\n {...field}\r\n disabled={disabled}\r\n layout={layout ?? 'horizontal'}\r\n className={styles.classRadioGroup}\r\n >\r\n {options.map(option => (\r\n <Radio\r\n key={option.value}\r\n value={option.value}\r\n label={option.label}\r\n disabled={option.disabled}\r\n className={styles.classRadio}\r\n />\r\n ))}\r\n </RadioGroup>\r\n );\r\n\r\n case 'checkbox':\r\n return (\r\n <Checkbox\r\n {...field}\r\n checked={field.value || false}\r\n disabled={disabled}\r\n onChange={(_, data) => field.onChange(data.checked)}\r\n label={label}\r\n />\r\n );\r\n\r\n case 'number':\r\n return (\r\n <Input\r\n {...commonProps}\r\n type=\"number\"\r\n min={min}\r\n max={max}\r\n step={step}\r\n className={styles.inputWithAutocomplete}\r\n />\r\n );\r\n\r\n case 'time':\r\n case 'datetime-local':\r\n return (\r\n <Input\r\n {...commonProps}\r\n type={type}\r\n min={min}\r\n max={max}\r\n className={styles.inputWithAutocomplete}\r\n />\r\n );\r\n\r\n case 'password':\r\n return (\r\n <Input\r\n {...commonProps}\r\n type={showPassword ? 'text' : 'password'}\r\n className={styles.inputWithAutocomplete}\r\n contentAfter={\r\n <Button\r\n appearance=\"transparent\"\r\n icon={\r\n showPassword ? (\r\n <Icon icon=\"fluent:eye-off-24-filled\" />\r\n ) : (\r\n <Icon icon=\"fluent:eye-24-filled\" />\r\n )\r\n }\r\n aria-label={showPassword ? 'Hide password' : 'Show password'}\r\n onClick={() => setShowPassword(!showPassword)}\r\n tabIndex={-1}\r\n type=\"button\"\r\n />\r\n }\r\n />\r\n );\r\n\r\n case 'otp': {\r\n // OTP specific handling\r\n const setRefs = (el: any) => {\r\n try {\r\n if (field.ref) {\r\n if (typeof field.ref === 'function') field.ref(el);\r\n else (field.ref as MutableRefObject<any>).current = el;\r\n }\r\n } catch {\r\n /* ignore */\r\n }\r\n (inputRef as MutableRefObject<HTMLInputElement | null>).current = el;\r\n };\r\n\r\n const handleChange = (e: any) => {\r\n const val = e?.target?.value ?? '';\r\n const numericValue = val.replace(/\\D/g, '');\r\n\r\n // Update nilai input langsung\r\n if (inputRef.current) {\r\n inputRef.current.value = numericValue;\r\n }\r\n\r\n // Buat event baru dengan nilai numeric\r\n const numericEvent = {\r\n ...e,\r\n target: {\r\n ...e.target,\r\n value: numericValue,\r\n },\r\n };\r\n\r\n field.onChange(numericEvent);\r\n\r\n if (autoAdvance && otpIndex && maxLength && numericValue.length >= maxLength) {\r\n const next = document.querySelector<HTMLInputElement>(\r\n `[data-otp-index=\"${otpIndex + 1}\"]`,\r\n );\r\n if (next) next.focus();\r\n }\r\n };\r\n\r\n const handleKeyPress = (e: any) => {\r\n const char = e.key;\r\n if (\r\n !/^\\d$/.test(char) &&\r\n char !== 'Backspace' &&\r\n char !== 'Delete' &&\r\n char !== 'Tab' &&\r\n char !== 'ArrowLeft' &&\r\n char !== 'ArrowRight'\r\n ) {\r\n e.preventDefault();\r\n }\r\n };\r\n\r\n const handleKeyDown = (e: any) => {\r\n if (e.key === 'Backspace') {\r\n const curVal = field.value || '';\r\n if (!curVal && otpIndex !== null && otpIndex !== undefined) {\r\n const prevIndex = otpIndex - 1;\r\n if (prevIndex >= 1) {\r\n // Set flag before focusing to prevent handleFocus interference\r\n isBackspaceNavigationRef.current = true;\r\n const prev = document.querySelector<HTMLInputElement>(\r\n `[data-otp-index=\"${prevIndex}\"]`,\r\n );\r\n if (prev) {\r\n prev.focus();\r\n // Flag will be reset in handleFocus after navigation completes\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n const handleClick = (e: any) => {\r\n // Prevent clicking on previous inputs - redirect to correct position\r\n if (otpIndex) {\r\n // Find the last filled input\r\n let lastFilledIndex = 0;\r\n for (let i = 1; i <= 6; i++) {\r\n const input = document.querySelector<HTMLInputElement>(`[data-otp-index=\"${i}\"]`);\r\n if (input && input.value) {\r\n lastFilledIndex = i;\r\n } else {\r\n break;\r\n }\r\n }\r\n\r\n // Determine target index: if all filled, stay on last; otherwise go to first empty\r\n const targetIndex = lastFilledIndex === 6 ? 6 : lastFilledIndex + 1;\r\n\r\n // If user clicks on any input before the target, redirect to target\r\n if (otpIndex < targetIndex) {\r\n e.preventDefault();\r\n const targetInput = document.querySelector<HTMLInputElement>(\r\n `[data-otp-index=\"${targetIndex}\"]`,\r\n );\r\n if (targetInput) {\r\n targetInput.focus();\r\n const length = targetInput.value?.length || 0;\r\n setTimeout(() => {\r\n targetInput.setSelectionRange(length, length);\r\n }, 0);\r\n }\r\n return;\r\n }\r\n }\r\n\r\n // If click on current input, ensure cursor is at the end\r\n if (inputRef.current) {\r\n const length = inputRef.current.value?.length || 0;\r\n setTimeout(() => {\r\n inputRef.current?.setSelectionRange(length, length);\r\n }, 0);\r\n }\r\n };\r\n\r\n const handleMouseDown = (e: any) => {\r\n // Track that user is clicking (not using keyboard navigation)\r\n isBackspaceNavigationRef.current = false;\r\n\r\n // Cegah seleksi teks dengan mouse\r\n if (field.value) {\r\n e.preventDefault();\r\n if (inputRef.current) {\r\n inputRef.current.focus();\r\n const length = inputRef.current.value.length;\r\n inputRef.current.setSelectionRange(length, length);\r\n }\r\n }\r\n };\r\n\r\n const handleSelect = (e: any) => {\r\n // Paksa kursor tetap di akhir\r\n if (inputRef.current && field.value) {\r\n const length = inputRef.current.value.length;\r\n inputRef.current.setSelectionRange(length, length);\r\n }\r\n };\r\n\r\n const handleFocus = (e: any) => {};\r\n\r\n const inputAttrs: any = {};\r\n if (otpIndex) inputAttrs['data-otp-index'] = otpIndex;\r\n\r\n // Default OTP styles\r\n const otpStyles = {\r\n height: '57px',\r\n borderRadius: tokens.borderRadiusXLarge,\r\n textAlign: 'center' as const,\r\n ...typographyStyles.title2,\r\n fontWeight: fontWeight.Medium,\r\n lineHeight: tokens.lineHeightHero800,\r\n borderColor: hasError ? sharedColors.Shared_Cranberry_Primary : undefined,\r\n ...style, // Allow override from props\r\n };\r\n\r\n return (\r\n <Input\r\n {...commonProps}\r\n type=\"tel\"\r\n onChange={handleChange}\r\n onKeyDown={handleKeyDown}\r\n onKeyPress={handleKeyPress}\r\n onClick={handleClick}\r\n onMouseDown={handleMouseDown}\r\n onSelect={handleSelect}\r\n onFocus={handleFocus}\r\n ref={setRefs}\r\n style={otpStyles}\r\n className={styles.otpInput}\r\n {...inputAttrs}\r\n />\r\n );\r\n }\r\n\r\n default:\r\n return (\r\n <Input\r\n {...commonProps}\r\n type={type}\r\n onInput={onInput}\r\n className={styles.inputWithAutocomplete}\r\n />\r\n );\r\n }\r\n };\r\n\r\n const getValidationRules = () => {\r\n const rules: any = {};\r\n\r\n if (required) {\r\n rules.required = validationRules?.required || 'Field ini wajib diisi';\r\n }\r\n\r\n if (validationRules?.minLength) {\r\n rules.minLength = validationRules.minLength;\r\n }\r\n\r\n if (validationRules?.maxLength) {\r\n rules.maxLength = validationRules.maxLength;\r\n }\r\n\r\n if (validationRules?.pattern) {\r\n rules.pattern = validationRules.pattern;\r\n }\r\n\r\n if (validationRules?.min) {\r\n rules.min = validationRules.min;\r\n }\r\n\r\n if (validationRules?.max) {\r\n rules.max = validationRules.max;\r\n }\r\n\r\n if (validationRules?.validate) {\r\n rules.validate = validationRules.validate;\r\n }\r\n\r\n // Add default email validation\r\n if (type === 'email') {\r\n rules.pattern = {\r\n value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i,\r\n message: 'Email tidak valid',\r\n };\r\n }\r\n\r\n // Add validation for emailOrPhone type - khusus email atau nomor HP\r\n if (type === 'emailOrPhone') {\r\n rules.validate = (value: any) => {\r\n if (required && !value) {\r\n return 'Email atau nomor HP wajib diisi';\r\n }\r\n\r\n const stringValue = typeof value === 'string' ? value : '';\r\n\r\n if (!stringValue) return true;\r\n\r\n const detectedType = detectEmailOrPhoneStrict(stringValue);\r\n\r\n if (detectedType === 'email') {\r\n // Validate email format\r\n if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i.test(stringValue)) {\r\n return 'Format email tidak valid';\r\n }\r\n } else if (detectedType === 'phone') {\r\n // Validate phone number (must start with + and contain only digits after)\r\n if (!stringValue.startsWith('+')) {\r\n return 'Nomor HP harus dalam format internasional (contoh: +628123456789)';\r\n }\r\n const phoneDigits = stringValue.substring(1);\r\n if (!/^\\d+$/.test(phoneDigits)) {\r\n return 'Nomor HP hanya boleh berisi angka setelah +';\r\n }\r\n if (phoneDigits.length < 10) {\r\n return 'Nomor HP minimal 10 digit';\r\n }\r\n } else {\r\n return 'Masukkan email atau nomor HP yang valid';\r\n }\r\n\r\n return true;\r\n };\r\n }\r\n\r\n // Add validation for identity type (can be email, phone, or other ID)\r\n if (type === 'identity') {\r\n rules.validate = (value: any) => {\r\n if (required && !value) {\r\n return 'Field ini wajib diisi';\r\n }\r\n\r\n const stringValue = typeof value === 'string' ? value : value?.phoneNumber || '';\r\n\r\n if (!stringValue) return true;\r\n\r\n const detectedType = detectIdentityType(stringValue);\r\n\r\n // Validate based on detected type\r\n if (detectedType === 'email') {\r\n // Validate email format\r\n if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i.test(stringValue)) {\r\n return 'Format email tidak valid';\r\n }\r\n } else if (detectedType === 'phone') {\r\n // Validate phone number (must start with + and contain only digits after)\r\n if (!stringValue.startsWith('+')) {\r\n return 'Nomor telepon harus diawali dengan +';\r\n }\r\n const phoneDigits = stringValue.substring(1); // Remove + prefix\r\n if (!/^\\d+$/.test(phoneDigits)) {\r\n return 'Nomor telepon hanya boleh berisi angka setelah +';\r\n }\r\n }\r\n // else if (detectedType === 'id') {\r\n // // Validate ID (only digits for KTP/SIM/Passport numbers)\r\n // if (!/^\\d+$/.test(stringValue)) {\r\n // return 'Nomor identitas hanya boleh berisi angka';\r\n // }\r\n // }\r\n\r\n return true;\r\n };\r\n }\r\n\r\n // Add default phone validation\r\n if (type === 'phone') {\r\n rules.validate = (value: string) => {\r\n if (required && !value) {\r\n return 'Nomor telepon wajib diisi';\r\n }\r\n // react-phone-number-input already handles validation\r\n return true;\r\n };\r\n }\r\n\r\n // Add passport validation with country-specific regex\r\n if (type === 'passport') {\r\n rules.validate = (value: PhoneValue) => {\r\n if (required && !value?.phoneNumber) {\r\n return 'Nomor paspor wajib diisi';\r\n }\r\n if (value?.phoneNumber) {\r\n const selectedCountry = countryCodes.find(c => c.code === value.countryCode);\r\n if (selectedCountry?.passportRegex) {\r\n const passportRegex = new RegExp(selectedCountry.passportRegex);\r\n if (!passportRegex.test(value.phoneNumber)) {\r\n return `Format paspor ${selectedCountry.name} tidak valid`;\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n }\r\n\r\n return rules;\r\n };\r\n\r\n return (\r\n <Controller\r\n name={name}\r\n control={control}\r\n rules={getValidationRules()}\r\n render={({ field, fieldState: { error } }) => (\r\n <Field\r\n className={`${styles.field} ${className || ''}`}\r\n validationMessage={error?.message}\r\n validationState={error ? 'error' : 'none'}\r\n >\r\n {label && type !== 'checkbox' && <Label required={required}>{label}</Label>}\r\n\r\n {renderInput(field, error?.message)}\r\n\r\n {helperText && !error && (\r\n <Text size={200} style={{ textAlign: 'left' }} className={styles.helperText}>\r\n {helperText}\r\n </Text>\r\n )}\r\n </Field>\r\n )}\r\n />\r\n );\r\n}\r\n\r\nexport default InputDynamic;\r\n\r\n","import { CountryCode } from './types';\n\n// Default country codes\r\nexport const DEFAULT_COUNTRY_CODES: CountryCode[] = [\r\n { code: 'AF', name: 'Afghanistan', dialCode: '+93', passportRegex: '^[A-Z][0-9]{7}$' },\r\n { code: 'AL', name: 'Albania', dialCode: '+355', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'DZ', name: 'Algeria', dialCode: '+213', passportRegex: '^[0-9]{9}$' },\r\n { code: 'AS', name: 'American Samoa', dialCode: '+1', passportRegex: '^[0-9]{9}$' },\r\n { code: 'AD', name: 'Andorra', dialCode: '+376', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'AO', name: 'Angola', dialCode: '+244', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'AI', name: 'Anguilla', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'AQ', name: 'Antarctica', dialCode: '+672', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'AG', name: 'Antigua and Barbuda', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'AR', name: 'Argentina', dialCode: '+54', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\r\n { code: 'AM', name: 'Armenia', dialCode: '+374', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'AW', name: 'Aruba', dialCode: '+297', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'AU', name: 'Australia', dialCode: '+61', passportRegex: '^[A-Z][0-9]{7}$' },\r\n { code: 'AT', name: 'Austria', dialCode: '+43', passportRegex: '^[A-Z0-9]{8}$' },\r\n { code: 'AZ', name: 'Azerbaijan', dialCode: '+994', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'BS', name: 'Bahamas', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BH', name: 'Bahrain', dialCode: '+973', passportRegex: '^[A-Z][0-9]{7}$' },\r\n { code: 'BD', name: 'Bangladesh', dialCode: '+880', passportRegex: '^[A-Z][0-9]{7}$' },\r\n { code: 'BB', name: 'Barbados', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BY', name: 'Belarus', dialCode: '+375', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BE', name: 'Belgium', dialCode: '+32', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BZ', name: 'Belize', dialCode: '+501', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BJ', name: 'Benin', dialCode: '+229', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'BM', name: 'Bermuda', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'BT', name: 'Bhutan', dialCode: '+975', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BO', name: 'Bolivia', dialCode: '+591', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n {\r\n code: 'BA',\r\n name: 'Bosnia and Herzegovina',\r\n dialCode: '+387',\r\n passportRegex: '^[A-Z]{2}[0-9]{6}$',\r\n },\r\n { code: 'BW', name: 'Botswana', dialCode: '+267', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BR', name: 'Brazil', dialCode: '+55', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'BN', name: 'Brunei', dialCode: '+673', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'BG', name: 'Bulgaria', dialCode: '+359', passportRegex: '^[0-9]{9}$' },\r\n { code: 'BF', name: 'Burkina Faso', dialCode: '+226', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'BI', name: 'Burundi', dialCode: '+257', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n\r\n { code: 'KH', name: 'Cambodia', dialCode: '+855', passportRegex: '^[A-Z][0-9]{7}$' },\r\n { code: 'CM', name: 'Cameroon', dialCode: '+237', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'CA', name: 'Canada', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'CV', name: 'Cape Verde', dialCode: '+238', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'KY', name: 'Cayman Islands', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n {\r\n code: 'CF',\r\n name: 'Central African Republic',\r\n dialCode: '+236',\r\n passportRegex: '^[A-Z0-9]{6,10}$',\r\n },\r\n { code: 'TD', name: 'Chad', dialCode: '+235', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'CL', name: 'Chile', dialCode: '+56', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'CN', name: 'China', dialCode: '+86', passportRegex: '^[0-9]{9}$' },\r\n { code: 'CO', name: 'Colombia', dialCode: '+57', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\r\n { code: 'KM', name: 'Comoros', dialCode: '+269', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'CG', name: 'Congo', dialCode: '+242', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'CR', name: 'Costa Rica', dialCode: '+506', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'HR', name: 'Croatia', dialCode: '+385', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\r\n { code: 'CU', name: 'Cuba', dialCode: '+53', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'CY', name: 'Cyprus', dialCode: '+357', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'CZ', name: 'Czech Republic', dialCode: '+420', passportRegex: '^[0-9]{8}$' },\r\n\r\n { code: 'DK', name: 'Denmark', dialCode: '+45', passportRegex: '^[A-Z0-9]{9}$' },\r\n { code: 'DJ', name: 'Djibouti', dialCode: '+253', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'DM', name: 'Dominica', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'DO', name: 'Dominican Republic', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n\r\n { code: 'EC', name: 'Ecuador', dialCode: '+593', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'EG', name: 'Egypt', dialCode: '+20', passportRegex: '^[A-Z][0-9]{7}$' },\r\n { code: 'SV', name: 'El Salvador', dialCode: '+503', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'GQ', name: 'Equatorial Guinea', dialCode: '+240', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'ER', name: 'Eritrea', dialCode: '+291', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'EE', name: 'Estonia', dialCode: '+372', passportRegex: '^[A-Z0-9]{8}$' },\r\n { code: 'SZ', name: 'Eswatini', dialCode: '+268', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'ET', name: 'Ethiopia', dialCode: '+251', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n\r\n { code: 'FJ', name: 'Fiji', dialCode: '+679', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'FI', name: 'Finland', dialCode: '+358', passportRegex: '^[A-Z0-9]{9}$' },\r\n { code: 'FR', name: 'France', dialCode: '+33', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'GA', name: 'Gabon', dialCode: '+241', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'GM', name: 'Gambia', dialCode: '+220', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'GE', name: 'Georgia', dialCode: '+995', passportRegex: '^[A-Z0-9]{8}$' },\r\n { code: 'DE', name: 'Germany', dialCode: '+49', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'GH', name: 'Ghana', dialCode: '+233', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'GR', name: 'Greece', dialCode: '+30', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'GD', name: 'Grenada', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'GT', name: 'Guatemala', dialCode: '+502', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\r\n { code: 'GN', name: 'Guinea', dialCode: '+224', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'GW', name: 'Guinea-Bissau', dialCode: '+245', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'GY', name: 'Guyana', dialCode: '+592', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'HT', name: 'Haiti', dialCode: '+509', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'HN', name: 'Honduras', dialCode: '+504', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'HK', name: 'Hong Kong', dialCode: '+852', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'HU', name: 'Hungary', dialCode: '+36', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n\r\n { code: 'IS', name: 'Iceland', dialCode: '+354', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'IN', name: 'India', dialCode: '+91', passportRegex: '^[A-Z][0-9]{7}$' },\r\n { code: 'ID', name: 'Indonesia', dialCode: '+62', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'IR', name: 'Iran', dialCode: '+98', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'IQ', name: 'Iraq', dialCode: '+964', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'IE', name: 'Ireland', dialCode: '+353', passportRegex: '^[A-Z0-9]{2}[0-9]{7}$' },\r\n { code: 'IL', name: 'Israel', dialCode: '+972', passportRegex: '^[0-9]{8,9}$' },\r\n { code: 'IT', name: 'Italy', dialCode: '+39', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'JM', name: 'Jamaica', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'JP', name: 'Japan', dialCode: '+81', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'JO', name: 'Jordan', dialCode: '+962', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'KZ', name: 'Kazakhstan', dialCode: '+7', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'KE', name: 'Kenya', dialCode: '+254', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'KI', name: 'Kiribati', dialCode: '+686', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'KP', name: 'North Korea', dialCode: '+850', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'KR', name: 'South Korea', dialCode: '+82', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\r\n { code: 'KW', name: 'Kuwait', dialCode: '+965', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'KG', name: 'Kyrgyzstan', dialCode: '+996', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'LA', name: 'Laos', dialCode: '+856', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'LV', name: 'Latvia', dialCode: '+371', passportRegex: '^[A-Z0-9]{8}$' },\r\n { code: 'LB', name: 'Lebanon', dialCode: '+961', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'LS', name: 'Lesotho', dialCode: '+266', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'LR', name: 'Liberia', dialCode: '+231', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'LY', name: 'Libya', dialCode: '+218', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'LI', name: 'Liechtenstein', dialCode: '+423', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'LT', name: 'Lithuania', dialCode: '+370', passportRegex: '^[A-Z0-9]{8}$' },\r\n { code: 'LU', name: 'Luxembourg', dialCode: '+352', passportRegex: '^[A-Z0-9]{8}$' },\r\n\r\n { code: 'MO', name: 'Macau', dialCode: '+853', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'MG', name: 'Madagascar', dialCode: '+261', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'MW', name: 'Malawi', dialCode: '+265', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'MY', name: 'Malaysia', dialCode: '+60', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\r\n { code: 'MV', name: 'Maldives', dialCode: '+960', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'ML', name: 'Mali', dialCode: '+223', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'MT', name: 'Malta', dialCode: '+356', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'MH', name: 'Marshall Islands', dialCode: '+692', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'MQ', name: 'Martinique', dialCode: '+596', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'MR', name: 'Mauritania', dialCode: '+222', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'MU', name: 'Mauritius', dialCode: '+230', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'MX', name: 'Mexico', dialCode: '+52', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\r\n { code: 'FM', name: 'Micronesia', dialCode: '+691', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'MD', name: 'Moldova', dialCode: '+373', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'MC', name: 'Monaco', dialCode: '+377', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'MN', name: 'Mongolia', dialCode: '+976', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'ME', name: 'Montenegro', dialCode: '+382', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'MS', name: 'Montserrat', dialCode: '+1', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'MA', name: 'Morocco', dialCode: '+212', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'MZ', name: 'Mozambique', dialCode: '+258', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n\r\n { code: 'MM', name: 'Myanmar', dialCode: '+95', passportRegex: '^[A-Z]{1}[0-9]{6,7}$' },\r\n\r\n { code: 'NA', name: 'Namibia', dialCode: '+264', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'NR', name: 'Nauru', dialCode: '+674', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'NP', name: 'Nepal', dialCode: '+977', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'NL', name: 'Netherlands', dialCode: '+31', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'NC', name: 'New Caledonia', dialCode: '+687', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'NZ', name: 'New Zealand', dialCode: '+64', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'NI', name: 'Nicaragua', dialCode: '+505', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\r\n { code: 'NE', name: 'Niger', dialCode: '+227', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'NG', name: 'Nigeria', dialCode: '+234', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'NO', name: 'Norway', dialCode: '+47', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'OM', name: 'Oman', dialCode: '+968', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n\r\n { code: 'PK', name: 'Pakistan', dialCode: '+92', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'PW', name: 'Palau', dialCode: '+680', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'PS', name: 'Palestine', dialCode: '+970', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'PA', name: 'Panama', dialCode: '+507', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'PG', name: 'Papua New Guinea', dialCode: '+675', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'PY', name: 'Paraguay', dialCode: '+595', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'PE', name: 'Peru', dialCode: '+51', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'PH', name: 'Philippines', dialCode: '+63', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'PL', name: 'Poland', dialCode: '+48', passportRegex: '^[A-Z0-9]{2}[0-9]{7}$' },\r\n { code: 'PT', name: 'Portugal', dialCode: '+351', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n\r\n { code: 'RO', name: 'Romania', dialCode: '+40', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'RU', name: 'Russia', dialCode: '+7', passportRegex: '^[0-9]{9}$' },\r\n { code: 'RW', name: 'Rwanda', dialCode: '+250', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n\r\n {\r\n code: 'KN',\r\n name: 'Saint Kitts and Nevis',\r\n dialCode: '+1',\r\n passportRegex: '^[A-Z]{2}[0-9]{7}$',\r\n },\r\n { code: 'LC', name: 'Saint Lucia', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n {\r\n code: 'VC',\r\n name: 'Saint Vincent and the Grenadines',\r\n dialCode: '+1',\r\n passportRegex: '^[A-Z]{2}[0-9]{7}$',\r\n },\r\n\r\n { code: 'WS', name: 'Samoa', dialCode: '+685', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'SM', name: 'San Marino', dialCode: '+378', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n {\r\n code: 'ST',\r\n name: 'Sao Tome and Principe',\r\n dialCode: '+239',\r\n passportRegex: '^[A-Z0-9]{6,10}$',\r\n },\r\n\r\n { code: 'SA', name: 'Saudi Arabia', dialCode: '+966', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'SN', name: 'Senegal', dialCode: '+221', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'RS', name: 'Serbia', dialCode: '+381', passportRegex: '^[A-Z0-9]{9}$' },\r\n { code: 'SC', name: 'Seychelles', dialCode: '+248', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'SL', name: 'Sierra Leone', dialCode: '+232', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'SG', name: 'Singapore', dialCode: '+65', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'SK', name: 'Slovakia', dialCode: '+421', passportRegex: '^[0-9]{9}$' },\r\n { code: 'SI', name: 'Slovenia', dialCode: '+386', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'SB', name: 'Solomon Islands', dialCode: '+677', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'SO', name: 'Somalia', dialCode: '+252', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'ZA', name: 'South Africa', dialCode: '+27', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n { code: 'ES', name: 'Spain', dialCode: '+34', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\r\n { code: 'LK', name: 'Sri Lanka', dialCode: '+94', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'SD', name: 'Sudan', dialCode: '+249', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'SR', name: 'Suriname', dialCode: '+597', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'SE', name: 'Sweden', dialCode: '+46', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'CH', name: 'Switzerland', dialCode: '+41', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'SY', name: 'Syria', dialCode: '+963', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n\r\n { code: 'TW', name: 'Taiwan', dialCode: '+886', passportRegex: '^[A-Z]{1}[0-9]{8}$' },\r\n { code: 'TJ', name: 'Tajikistan', dialCode: '+992', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'TZ', name: 'Tanzania', dialCode: '+255', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'TH', name: 'Thailand', dialCode: '+66', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'TL', name: 'Timor-Leste', dialCode: '+670', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'TG', name: 'Togo', dialCode: '+228', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'TO', name: 'Tonga', dialCode: '+676', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'TT', name: 'Trinidad and Tobago', dialCode: '+1', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'TN', name: 'Tunisia', dialCode: '+216', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'TR', name: 'Turkey', dialCode: '+90', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n { code: 'TM', name: 'Turkmenistan', dialCode: '+993', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n {\r\n code: 'TC',\r\n name: 'Turks and Caicos Islands',\r\n dialCode: '+1',\r\n passportRegex: '^[A-Z0-9]{6,10}$',\r\n },\r\n { code: 'TV', name: 'Tuvalu', dialCode: '+688', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n\r\n { code: 'UG', name: 'Uganda', dialCode: '+256', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'UA', name: 'Ukraine', dialCode: '+380', passportRegex: '^[A-Z]{2}[0-9]{6}$' },\r\n {\r\n code: 'AE',\r\n name: 'United Arab Emirates',\r\n dialCode: '+971',\r\n passportRegex: '^[A-Z]{1}[0-9]{7}$',\r\n },\r\n { code: 'GB', name: 'United Kingdom', dialCode: '+44', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'US', name: 'United States', dialCode: '+1', passportRegex: '^[0-9]{9}$' },\r\n { code: 'UY', name: 'Uruguay', dialCode: '+598', passportRegex: '^[A-Z]{3}[0-9]{6}$' },\r\n { code: 'UZ', name: 'Uzbekistan', dialCode: '+998', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n\r\n { code: 'VU', name: 'Vanuatu', dialCode: '+678', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'VA', name: 'Vatican City', dialCode: '+379', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'VE', name: 'Venezuela', dialCode: '+58', passportRegex: '^[A-Z]{2}[0-9]{7}$' },\r\n { code: 'VN', name: 'Vietnam', dialCode: '+84', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n\r\n { code: 'YE', name: 'Yemen', dialCode: '+967', passportRegex: '^[A-Z]{1}[0-9]{7}$' },\r\n\r\n { code: 'ZM', name: 'Zambia', dialCode: '+260', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n { code: 'ZW', name: 'Zimbabwe', dialCode: '+263', passportRegex: '^[A-Z0-9]{6,10}$' },\r\n];\r\n","import {\r\n Body1,\r\n Body1Strong,\r\n Button,\r\n Caption1,\r\n Dialog,\r\n DialogBody,\r\n DialogContent,\r\n DialogSurface,\r\n DialogTitle,\r\n Divider,\r\n Input,\r\n makeStyles,\r\n tokens,\r\n} from '@fluentui/react-components';\r\nimport { Icon } from '@iconify/react';\r\n\r\nconst useStyles = makeStyles({\r\n dialogTitle: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n paddingRight: '8px',\r\n },\r\n dialogSurface: {\r\n maxWidth: '600px',\r\n width: '100%',\r\n },\r\n closeButton: {\r\n minWidth: '32px',\r\n minHeight: '32px',\r\n },\r\n content: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '0px',\r\n paddingTop: '10px',\r\n paddingLeft: '10px',\r\n paddingRight: '10px',\r\n },\r\n searchInput: {\r\n width: '100%',\r\n marginBottom: '16px',\r\n },\r\n resultList: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '0px',\r\n maxHeight: '400px',\r\n overflowY: 'auto',\r\n paddingRight: '1rem',\r\n },\r\n resultItem: {\r\n padding: '16px 20px',\r\n borderBottom: `1px solid ${tokens.colorNeutralStroke2}`,\r\n cursor: 'pointer',\r\n transition: 'all 0.2s ease',\r\n backgroundColor: tokens.colorNeutralBackground1,\r\n position: 'relative',\r\n ':hover': {\r\n backgroundColor: tokens.colorNeutralBackground1Hover,\r\n borderBottom: `1px solid ${tokens.colorBrandBackground}`,\r\n },\r\n },\r\n resultItemSelected: {\r\n backgroundColor: tokens.colorNeutralBackground1,\r\n borderLeft: `4px solid ${tokens.colorBrandBackground}`,\r\n paddingLeft: '16px',\r\n },\r\n harborName: {\r\n fontSize: tokens.fontSizeBase300,\r\n fontWeight: tokens.fontWeightRegular,\r\n color: tokens.colorNeutralForeground1,\r\n marginBottom: '2px',\r\n },\r\n harborLocation: {\r\n fontSize: tokens.fontSizeBase200,\r\n color: tokens.colorNeutralForeground3,\r\n },\r\n buttonContainer: {\r\n display: 'flex',\r\n gap: '1rem',\r\n marginBottom: '1rem',\r\n flexWrap: 'wrap',\r\n },\r\n circularButton: {\r\n borderRadius: tokens.borderRadiusCircular,\r\n },\r\n headerRow: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n marginTop: '1rem',\r\n marginBottom: '1rem',\r\n },\r\n dangerText: {\r\n color: tokens.colorStatusDangerForeground1,\r\n },\r\n historyItem: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n marginTop: '1rem',\r\n marginBottom: '1rem',\r\n },\r\n iconMargin: {\r\n marginRight: '0.5rem',\r\n },\r\n cursorPointer: {\r\n cursor: 'pointer',\r\n },\r\n sectionTitle: {\r\n marginTop: '1rem',\r\n marginBottom: '1rem',\r\n },\r\n harborList: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '1rem',\r\n marginBottom: '1rem',\r\n },\r\n harborItem: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n },\r\n emptyState: {\r\n textAlign: 'center',\r\n padding: '32px',\r\n color: tokens.colorNeutralForeground3,\r\n },\r\n});\r\n\r\n/**\r\n * Harbor item interface\r\n */\r\nexport interface HarborItem {\r\n /**\r\n * Unique identifier for the harbor\r\n */\r\n id: number;\r\n \r\n /**\r\n * Display name of the harbor\r\n */\r\n name: string;\r\n}\r\n\r\n/**\r\n * Props for ModalSearchHarbor component\r\n */\r\nexport interface ModalSearchHarborProps {\r\n /**\r\n * Whether the modal is open\r\n */\r\n open: boolean;\r\n \r\n /**\r\n * Callback when modal should close\r\n */\r\n onClose: () => void;\r\n \r\n /**\r\n * Modal title\r\n * @default \"Pilih Pelabuhan\"\r\n */\r\n title?: string;\r\n \r\n /**\r\n * Type of modal - origin or destination\r\n * @default \"origin\"\r\n */\r\n modalType?: 'origin' | 'destination';\r\n \r\n /**\r\n * List of harbors to display\r\n */\r\n harbors: HarborItem[];\r\n \r\n /**\r\n * List of favorite harbors\r\n */\r\n favoriteHarbors: HarborItem[];\r\n \r\n /**\r\n * List of last searched harbors\r\n */\r\n lastSearchedHarbors: HarborItem[];\r\n \r\n /**\r\n * Loading state\r\n * @default false\r\n */\r\n isLoading?: boolean;\r\n \r\n /**\r\n * Current search query value\r\n */\r\n searchQuery: string;\r\n \r\n /**\r\n * Callback when search query changes\r\n */\r\n onSearchChange: (query: string) => void;\r\n \r\n /**\r\n * Callback when a harbor is selected\r\n */\r\n onSelectHarbor: (harbor: HarborItem) => void;\r\n \r\n /**\r\n * Callback when favorite is toggled\r\n */\r\n onToggleFavorite: (harbor: HarborItem) => void;\r\n \r\n /**\r\n * Callback when adding to last searched\r\n */\r\n onAddLastSearched: (harbor: HarborItem) => void;\r\n \r\n /**\r\n * Callback when removing from last searched\r\n */\r\n onRemoveLastSearched: (harborId: number) => void;\r\n \r\n /**\r\n * Callback when clearing all last searched\r\n */\r\n onClearLastSearched: () => void;\r\n}\r\n\r\n/**\r\n * ModalSearchHarbor - A reusable modal component for searching and selecting harbors\r\n * \r\n * This component provides a searchable modal interface for selecting harbors with features like:\r\n * - Search functionality\r\n * - Favorite harbors quick access\r\n * - Last searched history\r\n * - Loading states\r\n * \r\n * @example\r\n * ```tsx\r\n * <ModalSearchHarbor\r\n * open={isOpen}\r\n * onClose={() => setIsOpen(false)}\r\n * title=\"Pilih Pelabuhan Asal\"\r\n * harbors={harborList}\r\n * favoriteHarbors={favorites}\r\n * lastSearchedHarbors={history}\r\n * searchQuery={search}\r\n * onSearchChange={setSearch}\r\n * onSelectHarbor={handleSelect}\r\n * onToggleFavorite={handleToggleFavorite}\r\n * onAddLastSearched={handleAddHistory}\r\n * onRemoveLastSearched={handleRemoveHistory}\r\n * onClearLastSearched={handleClearHistory}\r\n * />\r\n * ```\r\n */\r\nexport const ModalSearchHarbor: React.FC<ModalSearchHarborProps> = ({\r\n open,\r\n onClose,\r\n title = 'Pilih Pelabuhan',\r\n modalType = 'origin',\r\n harbors,\r\n favoriteHarbors,\r\n lastSearchedHarbors,\r\n isLoading = false,\r\n searchQuery,\r\n onSearchChange,\r\n onSelectHarbor,\r\n onToggleFavorite,\r\n onAddLastSearched,\r\n onRemoveLastSearched,\r\n onClearLastSearched,\r\n}) => {\r\n const styles = useStyles();\r\n\r\n const handleSelect = (harbor: HarborItem) => {\r\n onAddLastSearched(harbor);\r\n onSelectHarbor(harbor);\r\n onSearchChange('');\r\n };\r\n\r\n const handleClose = () => {\r\n onClose();\r\n onSearchChange('');\r\n };\r\n\r\n return (\r\n <Dialog\r\n open={open}\r\n onOpenChange={(_, data) => {\r\n if (!data.open) {\r\n onClose();\r\n }\r\n }}\r\n >\r\n <DialogSurface className={styles.dialogSurface}>\r\n <DialogBody>\r\n <DialogTitle\r\n action={\r\n <Button\r\n appearance=\"subtle\"\r\n aria-label=\"close\"\r\n icon={<Icon icon=\"fluent:dismiss-24-regular\" />}\r\n onClick={handleClose}\r\n className={styles.closeButton}\r\n />\r\n }\r\n >\r\n {title}\r\n </DialogTitle>\r\n <DialogContent className={styles.content}>\r\n <div>\r\n <Input\r\n className={styles.searchInput}\r\n value={searchQuery}\r\n onChange={e => onSearchChange(e.target.value)}\r\n placeholder=\"Cari Pelabuhan...\"\r\n contentBefore={\r\n <Icon icon=\"fluent:search-24-regular\" color={tokens.colorNeutralForeground3} />\r\n }\r\n size=\"large\"\r\n />\r\n </div>\r\n \r\n {/* Favorite Harbors */}\r\n {favoriteHarbors.length > 0 && (\r\n <div className={styles.buttonContainer}>\r\n {favoriteHarbors.map(harbor => (\r\n <Button\r\n onClick={() => handleSelect(harbor)}\r\n key={harbor.id}\r\n size=\"medium\"\r\n appearance=\"outline\"\r\n iconPosition=\"before\"\r\n className={styles.circularButton}\r\n icon={<Icon icon=\"fluent:ribbon-20-filled\" />}\r\n >\r\n <Body1>{harbor.name}</Body1>\r\n </Button>\r\n ))}\r\n </div>\r\n )}\r\n \r\n <Divider />\r\n\r\n <div className={styles.resultList}>\r\n {/* Last Searched Section */}\r\n {lastSearchedHarbors.length > 0 && (\r\n <>\r\n <div className={styles.headerRow}>\r\n <Body1Strong>Terakhir dicari</Body1Strong>\r\n <Caption1\r\n className={`${styles.dangerText} ${styles.cursorPointer}`}\r\n onClick={onClearLastSearched}\r\n >\r\n Hapus Semua\r\n </Caption1>\r\n </div>\r\n\r\n <div>\r\n {lastSearchedHarbors.map(harbor => (\r\n <div className={styles.historyItem} key={harbor.id}>\r\n <div\r\n style={{ cursor: 'pointer' }}\r\n onClick={() => handleSelect(harbor)}\r\n >\r\n <Icon icon=\"fluent:vehicle-ship-24-regular\" className={styles.iconMargin} />\r\n {harbor.name}\r\n </div>\r\n <Icon\r\n onClick={() => onRemoveLastSearched(harbor.id)}\r\n icon=\"fluent:dismiss-24-regular\"\r\n color={tokens.colorStatusDangerForeground1}\r\n className={styles.cursorPointer}\r\n />\r\n </div>\r\n ))}\r\n </div>\r\n <Divider />\r\n </>\r\n )}\r\n\r\n {/* All Harbors Section */}\r\n <Body1Strong className={styles.sectionTitle}>Semua Pelabuhan</Body1Strong>\r\n <div className={styles.harborList}>\r\n {isLoading ? (\r\n <div className={styles.emptyState}>Memuat data...</div>\r\n ) : harbors.length > 0 ? (\r\n harbors.map((harbor, index) => (\r\n <div key={index} className={styles.harborItem}>\r\n <div\r\n className={styles.cursorPointer}\r\n onClick={() => handleSelect(harbor)}\r\n >\r\n <Icon icon=\"fluent:vehicle-ship-24-regular\" className={styles.iconMargin} />\r\n {harbor.name}\r\n </div>\r\n <Icon\r\n icon={\r\n favoriteHarbors.find(fav => fav.id === harbor.id)\r\n ? 'fluent:star-24-filled'\r\n : 'fluent:star-24-regular'\r\n }\r\n color={tokens.colorBrandBackground}\r\n className={styles.cursorPointer}\r\n onClick={() => onToggleFavorite(harbor)}\r\n />\r\n </div>\r\n ))\r\n ) : (\r\n <div className={styles.emptyState}>Pelabuhan tidak ditemukan</div>\r\n )}\r\n </div>\r\n </div>\r\n </DialogContent>\r\n </DialogBody>\r\n </DialogSurface>\r\n </Dialog>\r\n );\r\n};\r\n\r\nexport default ModalSearchHarbor;\r\n","import { Calendar, type CalendarDayGridStyles } from '@fluentui/react-calendar-compat';\r\nimport {\r\n Button,\r\n Dialog,\r\n DialogBody,\r\n DialogContent,\r\n DialogSurface,\r\n DialogTitle,\r\n makeStyles,\r\n tokens,\r\n} from '@fluentui/react-components';\r\nimport { Icon } from '@iconify/react';\r\nimport moment from 'moment';\r\nimport { useCallback, useEffect, useMemo, useState } from 'react';\r\n\r\nconst useStyles = makeStyles({\r\n dialogSurface: {\r\n maxWidth: '600px',\r\n width: '100%',\r\n },\r\n content: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '0px',\r\n paddingTop: '10px',\r\n paddingLeft: '10px',\r\n paddingRight: '10px',\r\n paddingBottom: '20px',\r\n width: '100%',\r\n overflow: 'hidden',\r\n },\r\n closeButton: {\r\n minWidth: '32px',\r\n minHeight: '32px',\r\n },\r\n tabContainer: {\r\n display: 'flex',\r\n gap: '0px',\r\n marginBottom: '16px',\r\n borderBottom: `2px solid ${tokens.colorNeutralStroke2}`,\r\n },\r\n tab: {\r\n flex: 1,\r\n padding: '12px 16px',\r\n cursor: 'pointer',\r\n textAlign: 'center',\r\n fontSize: tokens.fontSizeBase300,\r\n fontWeight: tokens.fontWeightRegular,\r\n color: tokens.colorNeutralForeground3,\r\n borderBottom: '2px solid transparent',\r\n marginBottom: '-2px',\r\n transition: 'all 0.2s ease',\r\n backgroundColor: 'transparent',\r\n border: 'none',\r\n ':hover': {\r\n color: tokens.colorNeutralForeground1,\r\n backgroundColor: tokens.colorNeutralBackground1Hover,\r\n },\r\n },\r\n tabActive: {\r\n color: tokens.colorBrandForeground1,\r\n fontWeight: tokens.fontWeightSemibold,\r\n borderBottom: `2px solid ${tokens.colorBrandBackground}`,\r\n },\r\n calendarContainer: {\r\n display: 'flex',\r\n gap: '20px',\r\n justifyContent: 'center',\r\n alignItems: 'flex-start',\r\n width: '100%',\r\n },\r\n rangeCalendar: {\r\n '& .ms-CalendarDay': {\r\n position: 'relative',\r\n },\r\n '& button[class*=\"ms-CalendarDay\"]': {\r\n borderRadius: '999px',\r\n transition: 'all 0.15s ease',\r\n border: 'none',\r\n '&:hover': {\r\n backgroundColor: `${tokens.colorBrandBackground} !important`,\r\n color: tokens.colorNeutralForegroundStaticInverted,\r\n },\r\n },\r\n },\r\n rangeStart: {\r\n backgroundColor: `${tokens.colorBrandBackground} !important`,\r\n color: `${tokens.colorNeutralForegroundStaticInverted} !important`,\r\n borderTopLeftRadius: '999px !important',\r\n borderBottomLeftRadius: '999px !important',\r\n fontWeight: tokens.fontWeightSemibold,\r\n },\r\n rangeEnd: {\r\n backgroundColor: `${tokens.colorBrandBackground} !important`,\r\n color: `${tokens.colorNeutralForegroundOnBrand} !important`,\r\n borderTopRightRadius: '999px !important',\r\n borderBottomRightRadius: '999px !important',\r\n fontWeight: tokens.fontWeightSemibold,\r\n },\r\n rangeMiddle: {\r\n backgroundColor: `${tokens.colorBrandBackground} !important`,\r\n color: `${tokens.colorNeutralForegroundStaticInverted} !important`,\r\n borderRadius: '0px !important',\r\n },\r\n rangePreview: {\r\n backgroundColor: `${tokens.colorBrandBackground} !important`,\r\n color: tokens.colorNeutralForegroundStaticInverted,\r\n borderRadius: '0px !important',\r\n boxShadow: `inset 0 0 0 1px ${tokens.colorBrandStroke1}`,\r\n },\r\n rangeSingle: {\r\n backgroundColor: `${tokens.colorBrandBackground} !important`,\r\n color: `${tokens.colorNeutralForegroundOnBrand} !important`,\r\n borderRadius: '999px !important',\r\n fontWeight: tokens.fontWeightSemibold,\r\n },\r\n});\r\n\r\n/**\r\n * Tab type for trip selection\r\n */\r\nexport type TabType = 'one-way' | 'round-trip';\r\n\r\n/**\r\n * Props for ModalSelectDate component\r\n */\r\nexport interface ModalSelectDateProps {\r\n /**\r\n * Whether the modal is open\r\n */\r\n open: boolean;\r\n\r\n /**\r\n * Callback when modal should close\r\n */\r\n onClose: () => void;\r\n\r\n /**\r\n * Modal title\r\n * @default \"Pilih Tanggal\"\r\n */\r\n title?: string;\r\n\r\n /**\r\n * Initial selected departure date\r\n */\r\n selectedDepartureDate?: Date;\r\n\r\n /**\r\n * Initial selected return date (for round trip)\r\n */\r\n selectedReturnDate?: Date;\r\n\r\n /**\r\n * Initial tab selection\r\n * @default \"one-way\"\r\n */\r\n initialTab?: TabType;\r\n\r\n /**\r\n * Whether to show tabs for one-way/round-trip selection\r\n * @default true\r\n */\r\n showTabs?: boolean;\r\n\r\n /**\r\n * Callback when departure date is selected\r\n */\r\n onSelectDepartureDate: (date: Date) => void;\r\n\r\n /**\r\n * Callback when return date is selected (for round trip)\r\n */\r\n onSelectReturnDate?: (date: Date) => void;\r\n\r\n /**\r\n * Callback when tab changes\r\n */\r\n onTabChange?: (tab: TabType) => void;\r\n\r\n /**\r\n * Minimum selectable date\r\n * @default new Date()\r\n */\r\n minDate?: Date;\r\n\r\n /**\r\n * Maximum selectable date\r\n */\r\n maxDate?: Date;\r\n\r\n /**\r\n * Date format for internal handling\r\n * @default \"DD MMMM YYYY\"\r\n */\r\n dateFormat?: string;\r\n}\r\n\r\n/**\r\n * ModalSelectDate - A reusable modal component for selecting dates\r\n * \r\n * This component provides a date selection modal with features like:\r\n * - Single date selection (one-way)\r\n * - Date range selection (round-trip)\r\n * - Visual range preview on hover\r\n * - Customizable date constraints\r\n * \r\n * @example\r\n * ```tsx\r\n * <ModalSelectDate\r\n * open={isOpen}\r\n * onClose={() => setIsOpen(false)}\r\n * title=\"Pilih Tanggal Keberangkatan\"\r\n * selectedDepartureDate={departureDate}\r\n * selectedReturnDate={returnDate}\r\n * onSelectDepartureDate={setDepartureDate}\r\n * onSelectReturnDate={setReturnDate}\r\n * onTabChange={handleTabChange}\r\n * />\r\n * ```\r\n */\r\nexport const ModalSelectDate: React.FC<ModalSelectDateProps> = ({\r\n open,\r\n onClose,\r\n title = 'Pilih Tanggal',\r\n selectedDepartureDate,\r\n selectedReturnDate,\r\n initialTab = 'one-way',\r\n showTabs = true,\r\n onSelectDepartureDate,\r\n onSelectReturnDate,\r\n onTabChange,\r\n minDate = new Date(),\r\n maxDate,\r\n dateFormat = 'DD MMMM YYYY',\r\n}) => {\r\n const styles = useStyles();\r\n\r\n const [selectedDate, setSelectedDate] = useState<Date | undefined>(selectedDepartureDate);\r\n const [selectedEndDate, setSelectedEndDate] = useState<Date | undefined>(selectedReturnDate);\r\n const [hoveredDate, setHoveredDate] = useState<Date | undefined>();\r\n const [activeTab, setActiveTab] = useState<TabType>(initialTab);\r\n\r\n const previewEndDate = useMemo(() => {\r\n if (selectedEndDate) return selectedEndDate;\r\n if (selectedDate && hoveredDate && hoveredDate > selectedDate) {\r\n return hoveredDate;\r\n }\r\n return undefined;\r\n }, [hoveredDate, selectedDate, selectedEndDate]);\r\n\r\n const isSameCalendarDay = (first?: Date, second?: Date) => {\r\n if (!first || !second) return false;\r\n return moment(first).isSame(second, 'day');\r\n };\r\n\r\n // Reset state when modal opens\r\n useEffect(() => {\r\n if (open) {\r\n setSelectedDate(selectedDepartureDate);\r\n setSelectedEndDate(selectedReturnDate);\r\n setActiveTab(initialTab);\r\n setHoveredDate(undefined);\r\n }\r\n }, [open, selectedDepartureDate, selectedReturnDate, initialTab]);\r\n\r\n const handleTabChange = (tab: TabType) => {\r\n setActiveTab(tab);\r\n setSelectedEndDate(undefined);\r\n setHoveredDate(undefined);\r\n\r\n if (onTabChange) {\r\n onTabChange(tab);\r\n }\r\n };\r\n\r\n const handleClose = () => {\r\n setHoveredDate(undefined);\r\n onClose();\r\n };\r\n\r\n const handleDateSelect = (date: Date | null | undefined) => {\r\n if (!date) return;\r\n\r\n const currentStart = selectedDate;\r\n\r\n if (activeTab === 'round-trip') {\r\n // Range selection mode\r\n if (!currentStart || selectedEndDate) {\r\n // First click or restart selection\r\n setSelectedDate(date);\r\n setSelectedEndDate(undefined);\r\n setHoveredDate(undefined);\r\n onSelectDepartureDate(date);\r\n if (onSelectReturnDate) {\r\n // Clear return date when starting new selection\r\n }\r\n } else {\r\n // Second click - set end date\r\n if (date < currentStart) {\r\n // If end date is before start date, swap them\r\n setSelectedEndDate(currentStart);\r\n setSelectedDate(date);\r\n onSelectDepartureDate(date);\r\n if (onSelectReturnDate) {\r\n onSelectReturnDate(currentStart);\r\n }\r\n } else {\r\n setSelectedEndDate(date);\r\n if (onSelectReturnDate) {\r\n onSelectReturnDate(date);\r\n }\r\n }\r\n setHoveredDate(undefined);\r\n handleClose();\r\n }\r\n } else {\r\n // Single date selection mode\r\n setSelectedDate(date);\r\n onSelectDepartureDate(date);\r\n handleClose();\r\n }\r\n };\r\n\r\n const handleCustomDayCellRef = useCallback(\r\n (element: HTMLElement | null, date: Date, _classNames?: CalendarDayGridStyles) => {\r\n if (!element) return;\r\n\r\n const removeTokens = (className?: string) => {\r\n className\r\n ?.split(/\\s+/)\r\n .filter(Boolean)\r\n .forEach(token => element.classList.remove(token));\r\n };\r\n const addTokens = (className?: string) => {\r\n className\r\n ?.split(/\\s+/)\r\n .filter(Boolean)\r\n .forEach(token => element.classList.add(token));\r\n };\r\n const removableClasses = [\r\n styles.rangeStart,\r\n styles.rangeEnd,\r\n styles.rangeMiddle,\r\n styles.rangePreview,\r\n styles.rangeSingle,\r\n ];\r\n removableClasses.forEach(removeTokens);\r\n\r\n if (activeTab !== 'round-trip' || !selectedDate) {\r\n element.onmouseenter = null;\r\n element.onmouseleave = null;\r\n return;\r\n }\r\n\r\n const endDateForVisual = previewEndDate;\r\n const startTime = selectedDate.getTime();\r\n const endTime = endDateForVisual?.getTime();\r\n const currentTime = date.getTime();\r\n const isSameStartEnd = isSameCalendarDay(endDateForVisual, selectedDate);\r\n const isStartDay = isSameCalendarDay(date, selectedDate);\r\n const isEndDay = isSameCalendarDay(date, endDateForVisual);\r\n\r\n if (isStartDay && (!endDateForVisual || isSameStartEnd)) {\r\n addTokens(styles.rangeSingle);\r\n } else {\r\n if (isStartDay) {\r\n addTokens(styles.rangeStart);\r\n }\r\n if (isEndDay && !isSameStartEnd) {\r\n addTokens(styles.rangeEnd);\r\n }\r\n }\r\n\r\n if (endTime && currentTime > startTime && currentTime < endTime) {\r\n addTokens(selectedEndDate ? styles.rangeMiddle : styles.rangePreview);\r\n }\r\n\r\n if (!selectedEndDate) {\r\n element.onmouseenter = () => {\r\n if (date < selectedDate) return;\r\n setHoveredDate(prev => {\r\n if (isSameCalendarDay(prev, date)) {\r\n return prev;\r\n }\r\n return date;\r\n });\r\n };\r\n element.onmouseleave = () => {\r\n setHoveredDate(undefined);\r\n };\r\n } else {\r\n element.onmouseenter = null;\r\n element.onmouseleave = null;\r\n }\r\n },\r\n [\r\n activeTab,\r\n previewEndDate,\r\n selectedDate,\r\n selectedEndDate,\r\n styles.rangeEnd,\r\n styles.rangeMiddle,\r\n styles.rangePreview,\r\n styles.rangeSingle,\r\n styles.rangeStart,\r\n ],\r\n );\r\n\r\n return (\r\n <Dialog\r\n open={open}\r\n onOpenChange={(_, data) => {\r\n if (!data.open) {\r\n onClose();\r\n }\r\n }}\r\n >\r\n <DialogSurface className={styles.dialogSurface}>\r\n <DialogBody>\r\n <DialogTitle\r\n action={\r\n <Button\r\n appearance=\"subtle\"\r\n aria-label=\"close\"\r\n icon={<Icon icon=\"fluent:dismiss-24-regular\" />}\r\n onClick={handleClose}\r\n className={styles.closeButton}\r\n />\r\n }\r\n >\r\n {title}\r\n </DialogTitle>\r\n <DialogContent className={styles.content}>\r\n {/* Tabs */}\r\n {showTabs && (\r\n <div className={styles.tabContainer}>\r\n <button\r\n disabled={activeTab === 'round-trip'}\r\n className={`${styles.tab} ${activeTab === 'one-way' ? styles.tabActive : ''}`}\r\n onClick={() => handleTabChange('one-way')}\r\n >\r\n Sekali Jalan\r\n </button>\r\n <button\r\n className={`${styles.tab} ${activeTab === 'round-trip' ? styles.tabActive : ''}`}\r\n onClick={() => handleTabChange('round-trip')}\r\n disabled={activeTab === 'one-way'}\r\n >\r\n Pulang Pergi\r\n </button>\r\n </div>\r\n )}\r\n\r\n {/* Calendar */}\r\n <div className={styles.calendarContainer}>\r\n <div style={{ width: '100%' }}>\r\n <div className={activeTab === 'round-trip' ? styles.rangeCalendar : ''}>\r\n <Calendar\r\n minDate={minDate}\r\n maxDate={maxDate}\r\n value={selectedDate}\r\n onSelectDate={handleDateSelect}\r\n showGoToToday\r\n highlightSelectedMonth\r\n showMonthPickerAsOverlay={false}\r\n allFocusable\r\n calendarDayProps={{\r\n customDayCellRef: handleCustomDayCellRef,\r\n }}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </DialogContent>\r\n </DialogBody>\r\n </DialogSurface>\r\n </Dialog>\r\n );\r\n};\r\n\r\nexport default ModalSelectDate;\r\n"]}
|