@youngonesworks/ui 0.1.128 → 0.1.129

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["React","Fragment","IconChevronDown","value: T","autoUpdate","FloatingArrow","globalDefaultFormatAttributes: SVGAttributes<SVGElement> & HTMLAttributes<SVGElement>","icon: React.ReactNode","defaultFormatAttributes: (SVGAttributes<SVGElement> & HTMLAttributes<SVGElement>) | TablerIconsProps","typeConfig: Record<AlertType, { bg: string; iconColor: string; Icon: React.ElementType }>","IconCircleCheck","IconAlertTriangle","IconAlertCircle","IconX","props: SVGProps<SVGSVGElement>","IconEyeCheck","IconEyeOff","IconArrowNarrowLeft","event: React.MouseEvent<HTMLButtonElement>","ref: React.Ref<HTMLInputElement>","autoUpdate","IconX","event: MouseEvent","date: Date | undefined","day: IDay","DayPicker","newMonth","today","IconCalendar","IconX","IconHeartFilled","IconHeart","IconFilter","filter: string","props: SVGProps<SVGSVGElement>","onClick: () => void","event: MouseEvent","IconDotsVertical","button","Fragment","props: SVGProps<SVGSVGElement>","event: MouseEvent","event: KeyboardEvent","IconX","IconChevronLeft","IconChevronRight","e: ChangeEvent<HTMLInputElement>","props: SVGProps<SVGSVGElement>","props: SVGProps<SVGSVGElement>","props: SVGProps<SVGSVGElement>","sizeClasses","value: number","roundedRating","hasHalf","effectiveRating","fullStars","className","rating: number","IconChevronUp","Tooltip","value: T","autoUpdate","val: string","e: PointerEvent","event: KeyboardEvent","e: KeyboardEvent","IconX","IconSelector","FloatingPortal","FloatingFocusManager","IconSearch","IconCheck","Fragment","IconCheck","IconCheck","refs: { [key: string]: RefObject<HTMLButtonElement> }","Tooltip","e: ChangeEvent<HTMLInputElement>","e: React.MouseEvent","IconMessageDots","phoneNumber: string","options?: PhoneOptions","defaultCountry: string","autoUpdate","query: string","country: CountryType","e: KeyboardEvent<HTMLInputElement>","countryCode: string","FloatingPortal","FloatingFocusManager","value: string","e: ChangeEvent<HTMLInputElement>","onClick: () => void","event: MouseEvent","event: KeyboardEvent","IconBold","IconItalic","IconUnderline","IconClearFormatting","IconList","IconListNumbers","StarterKit","Underline","newContent: string","EditorContent"],"sources":["../src/jsx-runtime-shim.ts","../src/utils/cn.ts","../src/components/unstyledButton/index.tsx","../src/components/accordion/AccordionItem.tsx","../src/components/accordion/AccordionWrapper.tsx","../src/hooks/useMergeRefs.ts","../src/components/tooltip/index.tsx","../src/utils/enums.ts","../src/utils/formatIcon.ts","../src/components/actionIcon/index.tsx","../src/components/alert/index.tsx","../src/components/appleAppButtonIcon/index.tsx","../src/icons/IconLoading.tsx","../src/components/textInput/index.tsx","../src/components/autoCompleteInput/index.tsx","../src/components/avatar/index.tsx","../src/components/avatarIndicator/index.tsx","../src/components/badge/index.tsx","../src/components/bigBadge/index.tsx","../src/components/breadCrumb/index.tsx","../src/components/button/buttonVariants.ts","../src/components/button/index.tsx","../src/components/checkbox/index.tsx","../src/components/popover/index.tsx","../src/components/datePickerInput/index.tsx","../src/components/divider/index.tsx","../src/components/favouriteButton/index.tsx","../src/components/filters/FilterButton.tsx","../src/components/filters/FilterItem.tsx","../src/components/filters/index.tsx","../src/components/googleAppButtonIcon/index.tsx","../src/components/hamburgerMenuButton/index.tsx","../src/components/hr/index.tsx","../src/components/island/index.tsx","../src/components/kebabMenu/index.tsx","../src/components/label/index.tsx","../src/components/loader/index.tsx","../src/components/logo/index.tsx","../src/components/modal/index.tsx","../src/components/navButtons/index.tsx","../src/components/numberField/index.tsx","../src/components/pageUnavailable/index.tsx","../src/components/passwordInput/index.tsx","../src/components/progressBar/index.tsx","../src/components/radioButton/index.tsx","../src/icons/IconStarEmpty.tsx","../src/icons/IconStarFilled.tsx","../src/icons/IconStarHalfFilled.tsx","../src/components/rating/index.tsx","../src/components/regionSelector/index.tsx","../src/components/reviews/index.tsx","../src/components/scrollToTop/index.tsx","../src/components/searchInput/index.tsx","../src/hooks/useDebouncedValue.ts","../src/components/select/index.tsx","../src/components/settingsCard/index.tsx","../src/components/skeleton/index.tsx","../src/components/skillPill/index.tsx","../src/components/stepper/NumberedStepper.tsx","../src/components/stepper/Stepper.tsx","../src/components/stickyMobileButton/index.tsx","../src/components/table/index.tsx","../src/components/table/tableCell/index.tsx","../src/components/table/tableHeader/index.tsx","../src/components/table/tableHeaderItem/index.tsx","../src/components/table/tableHeaderRow/index.tsx","../src/components/table/tableRow/index.tsx","../src/components/tabs/Tab.tsx","../src/components/tabs/TabsBadge.tsx","../src/components/tabs/TabsWrapper.tsx","../src/components/textArea/index.tsx","../src/components/themeIcon/index.tsx","../src/components/timeInput/index.tsx","../src/components/toggle/index.tsx","../src/components/truncatedText/index.tsx","../src/components/unorderedList/index.tsx","../src/components/unorderedListItem/index.tsx","../src/hooks/phone/usePhoneNumber.ts","../src/hooks/phone/usePhoneNumberPrefix.ts","../src/components/phoneInput/index.tsx","../src/components/profileMenu/index.tsx","../src/utils/ssr.ts","../src/components/wysiwygEditor/index.tsx"],"sourcesContent":["'use client';\n\n// This file ensures the JSX runtime is properly referenced in the bundle\nimport * as React from 'react';\n\n// Re-export the JSX runtime to ensure it's available\nexport const jsx = React.createElement;\nexport const jsxs = React.createElement;\nexport const Fragment = React.Fragment;\n","import clsx, { type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","'use client'\nimport { type ButtonHTMLAttributes, forwardRef } from 'react';\n\nimport { cn } from '@utils/cn';\n\ninterface IUnstyledButton extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'className'> {\n className?: string;\n}\n\nexport const UnstyledButton = forwardRef<HTMLButtonElement, IUnstyledButton>(({ className, ...props }, ref) => (\n <button\n type=\"button\"\n data-component=\"unstyledButton\"\n className={cn('appearance-none', className)}\n ref={ref}\n {...props}\n />\n));\n\nUnstyledButton.displayName = 'UnstyledButton';\n","'use client'\nimport { useEffect, useState } from 'react';\n\nimport { IconChevronDown } from '@tabler/icons-react';\nimport { cn } from '@utils/cn';\n\nimport { UnstyledButton } from '../unstyledButton';\n\ninterface IAccordionItem {\n controlContent: React.ReactNode;\n panelContent: React.ReactNode;\n endContent?: React.ReactNode;\n style?: 'light' | 'dark' | 'onboarding';\n border?: boolean;\n disabled?: boolean;\n chevronPosition?: 'left' | 'right';\n active?: boolean;\n className?: string;\n}\nexport const AccordionItem = ({\n controlContent,\n panelContent,\n style = 'light',\n border = false,\n chevronPosition = 'left',\n disabled = false,\n active = false,\n endContent,\n className,\n}: IAccordionItem) => {\n const [isActive, setIsActive] = useState(false);\n\n useEffect(() => {\n setIsActive(active);\n }, [active]);\n\n return (\n <>\n <div\n data-testid=\"accordion-item\"\n className={cn(\n 'rounded-md hover:bg-gray-50',\n {\n 'bg-light-blue hover:bg-light-blue/50': style === 'dark',\n 'rounded-none border-b border-gray-200': border,\n 'bg-ultra-light-blue border border-gray-200 hover:bg-transparent': style === 'onboarding',\n 'bg-white': style === 'onboarding' && isActive,\n 'hover:bg-ultra-light-blue cursor-not-allowed opacity-50': disabled,\n },\n className,\n )}\n >\n <UnstyledButton\n className={cn('relative flex w-full flex-row items-center justify-between gap-2 px-4 py-3', {\n 'flex-row-reverse': chevronPosition === 'right',\n })}\n onClick={() => setIsActive(!isActive)}\n disabled={disabled}\n >\n <span onClick={() => setIsActive(!isActive)} className={`duration-300${isActive ? 'rotate-180' : ''}`}>\n {<IconChevronDown size={18} />}\n </span>\n <div\n onClick={() => setIsActive(!isActive)}\n className={`flex w-full flex-row justify-between ${style === 'dark' && 'font-medium'} leading-8`}\n >\n {controlContent}\n </div>\n {endContent}\n </UnstyledButton>\n\n <div\n className={`transition-max-height overflow-hidden duration-500 ease-in-out ${\n isActive ? 'max-h-1000' : 'max-h-0'\n } leading-6 font-normal`}\n >\n <div className=\"px-4 py-3\">{panelContent}</div>\n </div>\n </div>\n </>\n );\n};\n","'use client'\n\nimport { cn } from '@utils/cn';\n\ninterface AccordionProps {\n children?: React.ReactNode;\n className?: string;\n}\n\nexport const AccordionWrapper = ({ children, className }: AccordionProps) => (\n <div \n data-testid=\"accordion-wrapper\"\n data-component=\"accordionWrapper\"\n className={cn(className, 'flex flex-col gap-2')}\n >\n {children}\n </div>\n);\n","import { useCallback, MutableRefObject, Ref, RefCallback } from 'react';\n\n\nexport function useMergeRefs<T>(...refs: (Ref<T> | undefined)[]): RefCallback<T> {\n return useCallback(\n (value: T) => {\n refs.forEach((ref) => {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n (ref as MutableRefObject<T | null>).current = value;\n }\n });\n },\n [refs],\n );\n}\n","'use client';\nimport { cloneElement, isValidElement, useRef, useState } from 'react';\n\nimport {\n arrow,\n autoUpdate,\n flip,\n FloatingArrow,\n offset,\n shift,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n} from '@floating-ui/react';\n\nimport { useMergeRefs } from '../../hooks/useMergeRefs';\n\ninterface ITooltipProps {\n content: React.ReactNode;\n children: React.ReactNode;\n passedOpen?: boolean;\n size?: 'sm' | 'md' | 'lg';\n variant?: 'default' | 'white';\n}\n\nconst sizeClasses = {\n xs: 'max-w-xs',\n sm: 'max-w-sm',\n md: 'max-w-md',\n lg: 'max-w-lg',\n};\n\nexport const Tooltip = ({ content, children, passedOpen = false, size = 'md', variant = 'default' }: ITooltipProps) => {\n const [isOpen, setIsOpen] = useState(passedOpen);\n const arrowRef = useRef(null);\n\n const { refs, floatingStyles, context } = useFloating({\n open: isOpen,\n onOpenChange: setIsOpen,\n placement: 'top',\n middleware: [variant === 'default' ? offset(20) : offset(25), flip(), shift(), arrow({ element: arrowRef })],\n whileElementsMounted: autoUpdate,\n });\n\n const hover = useHover(context, { move: false });\n const focus = useFocus(context);\n const dismiss = useDismiss(context);\n const role = useRole(context, { role: 'tooltip' });\n\n const { getReferenceProps, getFloatingProps } = useInteractions([hover, focus, dismiss, role]);\n\n // Merge the tooltip's ref with any existing ref from the child component\n const childRef = (children as React.ReactElement & { ref?: React.Ref<HTMLElement> }).ref;\n const mergedRef = useMergeRefs(refs.setReference, childRef);\n\n return (\n <>\n {isValidElement(children) &&\n cloneElement(\n children,\n getReferenceProps({\n ...(children.props as object),\n ...getReferenceProps(),\n ref: mergedRef,\n }),\n )}\n\n {isOpen && (\n <div\n ref={refs.setFloating}\n style={floatingStyles}\n {...getFloatingProps()}\n className=\"z-70 drop-shadow-xl\"\n data-testid=\"tooltip\"\n data-component=\"tooltip\"\n >\n {variant === 'default' ? (\n <div data-testid=\"tooltip-container\" className=\"w-full rounded bg-gray-800 pt-[3px] text-white\">\n <div data-testid=\"tooltip-content\" className={`${sizeClasses[size]} px-2 py-1 text-sm font-normal`}>\n {content}\n </div>\n <FloatingArrow\n ref={arrowRef}\n context={context}\n width={10}\n height={6}\n tipRadius={1}\n data-testid=\"tooltip-arrow\"\n className=\"fill-gray-800 drop-shadow-xl\"\n />\n </div>\n ) : (\n <div data-testid=\"tooltip-container\" className=\"bg-linear-gradient-x pt-[3px]\">\n <div\n data-testid=\"tooltip-content\"\n className={`${sizeClasses[size]} overflow-hidden bg-white p-5 px-2 py-1 text-start text-sm font-normal`}\n >\n <p>{content}</p>\n </div>\n {size === 'md' ? (\n <FloatingArrow\n ref={arrowRef}\n context={context}\n width={25}\n height={17}\n tipRadius={1}\n fill=\"white\"\n className=\"drop-shadow-xl\"\n data-testid=\"tooltip-arrow\"\n />\n ) : (\n <FloatingArrow\n ref={arrowRef}\n context={context}\n width={10}\n height={6}\n tipRadius={1}\n fill=\"white\"\n className=\"drop-shadow-xl\"\n data-testid=\"tooltip-arrow\"\n />\n )}\n </div>\n )}\n </div>\n )}\n </>\n );\n};\n\nTooltip.displayName = 'Tooltip';\n","export enum ACTION_ICON_STYLE_VARIANT {\n DEFAULT = 'default',\n TRANSPARENT = 'transparent',\n SMALL = 'small',\n ROUND = 'round',\n}\n\nexport enum THEME_ICON_STYLE_VARIANT {\n SECONDARY_WITH_BACKGROUND = 'secondary-with-background',\n}\n\nexport enum COLOR {\n PRIMARY = 'primary',\n BLACK = 'black',\n NAVY_BLUE = 'navy-blue',\n LIGHT_BLUE = 'light-blue',\n LIGHT_BLUE_DISABLED = 'light-blue-disabled',\n GREEN = 'green',\n GREEN_LIGHT = 'green-light',\n SECONDARY = 'secondary',\n SECONDARY_LIGHT = 'secondary-light',\n ORANGE = 'orange',\n ORANGE_LIGHT = 'orange-light',\n ACCENT_BLUE = 'accent-blue',\n ACCENT_BLUE_LIGHT = 'accent-blue-light',\n YELLOW = 'yellow',\n CHECK = 'check',\n WARNING = 'warning',\n ERROR = 'error',\n SUCCESS = 'success',\n WARNING_LIGHT = 'warning-light',\n ULTRA_LIGHT_BLUE = 'ultra-light-blue',\n ULTRA_LIGHT_GRAY = 'ultra-light-gray',\n TURQUOISE = 'turquoise',\n RED = 'red',\n DARK_GRAY = 'dark-gray',\n GRAY = 'gray',\n WHITE = 'white',\n PURPLE = 'purple',\n PURPLE_LIGHT = 'purple-light',\n NAVY_BLUE_SHADES = 'navy-blue-shades',\n}\n\nexport enum REGION {\n NETHERLANDS = 'nl',\n BELGIUM = 'nl-BE',\n UNITED_KINGDOM = 'gb',\n}\n\nexport enum TOOLTIP_COLOR {\n DEFAULT = 'default',\n WHITE = 'white',\n}\n","import React, { cloneElement, type HTMLAttributes, type SVGAttributes } from 'react';\n\nimport { type TablerIconsProps } from '@tabler/icons-react';\nimport clsx from 'clsx';\n\nconst globalDefaultFormatAttributes: SVGAttributes<SVGElement> & HTMLAttributes<SVGElement> = {};\n\n/**\n * Format icon with default attributes. Icon attributes will\n * always supersede default attributes which in term will supersede\n * global default attributes.\n */\nexport default function formatIcon(\n icon: React.ReactNode,\n defaultFormatAttributes: (SVGAttributes<SVGElement> & HTMLAttributes<SVGElement>) | TablerIconsProps,\n) {\n if (!React.isValidElement(icon)) return icon;\n\n return cloneElement(icon, {\n ...globalDefaultFormatAttributes,\n ...defaultFormatAttributes,\n ...(icon.props as object),\n ...{\n className: clsx(\n globalDefaultFormatAttributes.className,\n defaultFormatAttributes.className,\n (icon.props as { className: string }).className,\n ),\n },\n });\n}\n","'use client';\nimport type { MouseEvent } from 'react';\n\nimport { Tooltip } from '@components/tooltip';\nimport { cn } from '@utils/cn';\nimport { ACTION_ICON_STYLE_VARIANT } from '@utils/enums';\nimport formatIcon from '@utils/formatIcon';\nimport clsx from 'clsx';\n\nexport interface ActionIconProps {\n ref?: React.Ref<HTMLButtonElement>;\n 'data-testid'?: string;\n title: string;\n disabled?: boolean;\n type?: 'button' | 'submit' | 'reset' | undefined;\n styleVariant?: 'default' | 'transparent' | 'small' | 'round';\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void;\n icon?: React.ReactNode;\n iconSize?: number;\n strokeWidth?: number;\n className?: string;\n children?: React.ReactNode;\n\n /**\n * @deprecated Can be removed and replaced by iconSize\n */\n width?: string;\n /**\n * @deprecated Can be removed and replaced by iconSize\n */\n height?: string;\n}\n\nconst ActionIcon = ({\n ref,\n title,\n disabled = false,\n styleVariant = 'default',\n icon,\n type = 'button',\n 'data-testid': testId,\n iconSize = 20,\n strokeWidth = 1,\n onClick,\n className,\n ...props\n}: ActionIconProps) => {\n const variantClassNames = clsx({\n 'active:translate-y-[1px] content-center flex items-center justify-center rounded-[4px] border border-gray-200 hover:border-black text-black child:p-10 w-[36px] h-[36px] disabled:text-gray-500':\n styleVariant === ACTION_ICON_STYLE_VARIANT.DEFAULT,\n 'active:translate-y-[1px] border-none content-center flex items-center justify-center rounded-[4px] border text-black child:p-10 w-[36px] h-[36px] disabled:text-gray-500':\n styleVariant === ACTION_ICON_STYLE_VARIANT.TRANSPARENT,\n 'active:translate-y-[1px] content-center flex items-center justify-center rounded-[4px] child:p-10 w-[37px] h-[37px] text-black rounded-full bg-primary hover:bg-turquoise-700 disabled:turquoise-50 disabled:text-gray-800':\n styleVariant === ACTION_ICON_STYLE_VARIANT.ROUND,\n 'w-7 h-7 active:translate-y-[1px] content-center flex items-center justify-center rounded-[4px] border border-gray-200 hover:border-black text-black hover:bg-gray-50 disabled:text-gray-500':\n styleVariant === ACTION_ICON_STYLE_VARIANT.SMALL,\n });\n\n return (\n <>\n <Tooltip size=\"sm\" content={title}>\n <button\n title={title}\n type={type}\n disabled={disabled}\n data-testid={testId}\n data-component=\"ActionIcon\"\n className={cn(\n variantClassNames,\n { 'hover:bg-transparant cursor-not-allowed hover:border-gray-200': disabled },\n className,\n )}\n onClick={onClick}\n ref={ref}\n data-tooltip-id={title}\n data-tooltip-content={title}\n {...props}\n >\n {icon ? formatIcon(icon, { stroke: strokeWidth, size: iconSize }) : props.children}\n </button>\n </Tooltip>\n </>\n );\n};\n\nActionIcon.displayName = 'ActionIcon';\n\nexport { ActionIcon };\n","'use client';\n\nimport { type HTMLAttributes } from 'react';\n\nimport { IconAlertCircle, IconAlertTriangle, IconCircleCheck, IconX } from '@tabler/icons-react';\nimport { cn } from '@utils/cn';\n\ntype AlertType = 'success' | 'warning' | 'error';\ninterface AlertProps extends HTMLAttributes<HTMLDivElement> {\n show: boolean;\n title: string;\n description?: string | React.ReactNode;\n type?: AlertType;\n button?: React.ReactNode;\n plain?: boolean;\n closable?: boolean;\n icon?: React.ReactNode;\n onClose?: () => void;\n}\n\nexport const Alert = ({\n show,\n title,\n description,\n type = 'warning',\n button,\n plain = false,\n closable = false,\n className,\n icon,\n onClose,\n ...props\n}: AlertProps) => {\n if (!show || !title) return null;\n\n const typeConfig: Record<AlertType, { bg: string; iconColor: string; Icon: React.ElementType }> = {\n success: { bg: 'bg-green-light', iconColor: 'text-green', Icon: IconCircleCheck },\n warning: { bg: 'bg-warning-light', iconColor: 'text-warning', Icon: IconAlertTriangle },\n error: { bg: 'bg-red-50', iconColor: 'text-red-500', Icon: IconAlertCircle },\n };\n\n const config = typeConfig[type];\n const { bg, iconColor, Icon } = config;\n const descriptionId = description ? 'alert-desc' : undefined;\n\n return (\n <div\n role=\"alert\"\n aria-live=\"assertive\"\n aria-atomic=\"true\"\n aria-describedby={descriptionId}\n className={cn(\n 'flex justify-between items-start rounded-md px-5 py-3',\n bg,\n plain && 'border-none py-4 text-sm font-medium',\n className,\n )}\n data-component=\"Alert\"\n data-testid=\"alert\"\n {...props}\n >\n <div className=\"flex flex-col gap-2 flex-1\">\n <div className=\"flex items-center gap-2\">\n {!plain &&\n (icon ? (\n <span data-testid=\"alert-custom-icon\" aria-hidden=\"true\">\n {icon}\n </span>\n ) : (\n <Icon size={20} className={cn(iconColor, 'shrink-0')} data-testid=\"alert-icon\" aria-hidden=\"true\" />\n ))}\n <span className=\"text-base font-semibold\">{title}</span>\n </div>\n {description &&\n (typeof description === 'string' ? (\n <p id={descriptionId} className=\"text-sm text-color-gray-900\">\n {description}\n </p>\n ) : (\n <div id={descriptionId} className=\"text-sm text-color-gray-900\">\n {description}\n </div>\n ))}\n {button && <div>{button}</div>}\n </div>\n\n {closable && (\n <button\n type=\"button\"\n className=\"ml-4 text-gray-500 hover:text-gray-700\"\n onClick={onClose}\n aria-label=\"Dismiss alert\"\n data-testid=\"alert-close\"\n >\n <IconX size={18} aria-hidden=\"true\" />\n </button>\n )}\n </div>\n );\n};\n\nAlert.displayName = 'Alert';\n","'use client'\nimport { type SVGProps } from 'react';\n\nexport const AppleAppButtonIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n viewBox=\"0 0 198 66\"\n fill=\"none\"\n data-testid=\"AppleAppButtonIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <g clipPath=\"url(#clip0_890_9231)\">\n <mask\n id=\"mask0_890_9231\"\n data-testid=\"apple-icon-mask\"\n style={{\n maskType: 'luminance',\n }}\n maskUnits=\"userSpaceOnUse\"\n x={0}\n y={0}\n width={198}\n height={66}\n >\n <path d=\"M197.486 0H0V65.8286H197.486V0Z\" fill=\"white\" />\n </mask>\n <g mask=\"url(#mask0_890_9231)\">\n <path\n data-testid=\"apple-icon-path-1\"\n d=\"M181.76 0.000213943H15.7354C15.1303 0.000213943 14.5323 0.000213943 13.9288 0.00350538C13.4235 0.00679681 12.9223 0.0163585 12.4122 0.024406C11.304 0.03741 10.1984 0.13463 9.10507 0.31522C8.01324 0.499742 6.95563 0.847618 5.96798 1.34708C4.98154 1.85077 4.08019 2.50527 3.29665 3.28682C2.509 4.06618 1.85244 4.967 1.3522 5.95468C0.850583 6.94038 0.502759 7.99664 0.320743 9.08699C0.136996 10.176 0.0381201 11.2775 0.0250025 12.3817C0.00968747 12.8863 0.00807013 13.3926 0 13.8972V51.9366C0.00807013 52.4476 0.00968747 52.9427 0.0250025 53.4538C0.0381241 54.558 0.137 55.6595 0.320743 56.7484C0.502256 57.8394 0.850101 58.8962 1.3522 59.8823C1.85221 60.8668 2.50888 61.764 3.29665 62.539C4.07723 63.324 4.97915 63.979 5.96798 64.4788C6.95561 64.9796 8.01312 65.3296 9.10507 65.5169C10.1986 65.696 11.3041 65.7933 12.4122 65.808C12.9223 65.8191 13.4235 65.8255 13.9288 65.8255C14.5323 65.8288 15.1303 65.8288 15.7354 65.8288H181.76C182.352 65.8288 182.955 65.8288 183.548 65.8255C184.051 65.8255 184.567 65.8191 185.07 65.808C186.176 65.7941 187.28 65.6969 188.37 65.5169C189.466 65.3282 190.527 64.9784 191.52 64.4788C192.507 63.9787 193.408 63.3237 194.189 62.539C194.975 61.761 195.632 60.8644 196.139 59.8823C196.637 58.8955 196.981 57.8387 197.161 56.7484C197.344 55.6594 197.446 54.5581 197.467 53.4538C197.473 52.9427 197.473 52.4476 197.473 51.9366C197.486 51.3388 197.486 50.7442 197.486 50.1366V15.694C197.486 15.0913 197.486 14.4935 197.473 13.8972C197.473 13.3926 197.473 12.8863 197.467 12.3816C197.446 11.2773 197.344 10.1761 197.161 9.08692C196.981 7.9972 196.637 6.94102 196.139 5.95461C195.12 3.97494 193.504 2.36351 191.52 1.34694C190.527 0.848691 189.466 0.500906 188.37 0.315072C187.28 0.133686 186.176 0.0364325 185.07 0.0241756C184.567 0.0161445 184.051 0.00650058 183.548 0.00329142C182.955 0 182.352 0.000213943 181.76 0.000213943Z\"\n fill=\"#A6A6A6\"\n />\n <path\n data-testid=\"apple-icon-path-2\"\n d=\"M13.9369 64.3888C13.4341 64.3888 12.9434 64.3824 12.4446 64.3711C11.4111 64.3577 10.38 64.268 9.35986 64.1028C8.4086 63.9394 7.48707 63.6355 6.62569 63.201C5.7722 62.7703 4.99375 62.2054 4.32016 61.528C3.63684 60.8586 3.06793 60.0823 2.63598 59.2298C2.19929 58.3717 1.89707 57.4519 1.73986 56.5024C1.57008 55.4824 1.47822 54.4508 1.46507 53.4167C1.45462 53.0697 1.44092 51.914 1.44092 51.914V13.8972C1.44092 13.8972 1.4555 12.7593 1.46515 12.425C1.47774 11.3926 1.56906 10.3627 1.73834 9.3441C1.89585 8.3921 2.1983 7.46967 2.63523 6.60876C3.06558 5.7568 3.63132 4.97988 4.31055 4.30813C4.98901 3.63 5.76994 3.0622 6.62488 2.62544C7.48428 2.19243 8.40406 1.89067 9.3534 1.73027C10.3769 1.56334 11.4116 1.47309 12.4486 1.46028L13.9377 1.44019H183.54L185.047 1.46109C186.074 1.47326 187.1 1.56271 188.114 1.72867C189.074 1.89107 190.002 2.19494 190.872 2.63027C192.584 3.51047 193.978 4.90303 194.857 6.61278C195.287 7.46774 195.585 8.38265 195.74 9.32644C195.912 10.3534 196.008 11.3914 196.027 12.4322C196.032 12.8983 196.032 13.3989 196.032 13.8972C196.045 14.5144 196.045 15.1017 196.045 15.6939V50.1365C196.045 50.7345 196.045 51.3179 196.032 51.9061C196.032 52.4412 196.032 52.9315 196.025 53.4361C196.006 54.4583 195.911 55.4778 195.744 56.4864C195.589 57.4427 195.289 58.3696 194.853 59.2347C194.418 60.078 193.852 60.8477 193.177 61.5151C192.502 62.1962 191.722 62.7644 190.867 63.1979C190.001 63.6356 189.072 63.9407 188.114 64.1028C187.095 64.2688 186.063 64.3587 185.029 64.3711C184.546 64.3824 184.04 64.3888 183.548 64.3888L181.76 64.392L13.9369 64.3888Z\"\n fill=\"#1B1C1E\"\n />\n <path\n d=\"M40.877 33.4092C40.8948 32.0355 41.2607 30.6888 41.9407 29.494C42.6206 28.2994 43.5925 27.2955 44.7661 26.576C44.0206 25.5143 43.0371 24.6405 41.8938 24.0242C40.7503 23.4077 39.4785 23.0657 38.1794 23.0251C35.4081 22.7351 32.7214 24.6788 31.3092 24.6788C29.8696 24.6788 27.6954 23.0539 25.3539 23.1019C23.8395 23.1507 22.3635 23.5899 21.0699 24.3767C19.7762 25.1634 18.7089 26.2709 17.9722 27.5913C14.7805 33.1018 17.1611 41.2005 20.2186 45.6548C21.7483 47.8359 23.5361 50.2722 25.8753 50.1858C28.1645 50.0912 29.0193 48.7304 31.7825 48.7304C34.52 48.7304 35.3221 50.1859 37.7088 50.131C40.1652 50.0912 41.7129 47.9401 43.1888 45.7383C44.288 44.1842 45.1336 42.4665 45.6948 40.6489C44.2677 40.047 43.0499 39.0396 42.1931 37.7522C41.3364 36.4647 40.8788 34.9544 40.877 33.4092Z\"\n fill=\"white\"\n />\n <path\n d=\"M36.3687 20.0957C37.7079 18.4924 38.3677 16.4317 38.208 14.3511C36.1619 14.5654 34.2718 15.5407 32.9144 17.0823C32.2507 17.8355 31.7425 18.7118 31.4186 19.661C31.0948 20.6101 30.9616 21.6137 31.0269 22.6142C32.0504 22.6248 33.0629 22.4036 33.9881 21.9673C34.9134 21.5311 35.7273 20.8911 36.3687 20.0957Z\"\n fill=\"white\"\n />\n <path\n d=\"M69.8128 44.6641H62.0011L60.1251 50.1879H56.8164L64.2155 29.7515H67.6532L75.0523 50.1879H71.6871L69.8128 44.6641ZM62.8101 42.1153H69.0022L65.9497 33.1506H65.8643L62.8101 42.1153Z\"\n fill=\"white\"\n />\n <path\n d=\"M91.0322 42.7388C91.0322 47.369 88.547 50.3437 84.7967 50.3437C83.8468 50.3934 82.9018 50.1752 82.0705 49.7141C81.239 49.253 80.5546 48.5679 80.0955 47.7369H80.0246V55.117H76.9575V35.2881H79.9263V37.7662H79.9828C80.4629 36.9394 81.1589 36.2578 81.9967 35.7938C82.8344 35.33 83.7826 35.1014 84.7404 35.1321C88.5325 35.1321 91.0322 38.1214 91.0322 42.7388ZM87.8799 42.7388C87.8799 39.7222 86.3166 37.7389 83.9312 37.7389C81.5879 37.7389 80.0117 39.764 80.0117 42.7388C80.0117 45.741 81.5879 47.7515 83.9312 47.7515C86.3166 47.7515 87.8799 45.7828 87.8799 42.7388Z\"\n fill=\"white\"\n />\n <path\n d=\"M107.477 42.7388C107.477 47.369 104.992 50.3437 101.242 50.3437C100.292 50.3934 99.3471 50.1751 98.5156 49.7141C97.6843 49.253 96.9998 48.5679 96.5408 47.7369H96.4698V55.117H93.4028V35.2881H96.3714V37.7662H96.4279C96.9081 36.9394 97.6041 36.2577 98.4419 35.7938C99.2795 35.33 100.228 35.1014 101.186 35.1321C104.978 35.1321 107.477 38.1214 107.477 42.7388ZM104.325 42.7388C104.325 39.7222 102.762 37.7389 100.377 37.7389C98.0332 37.7389 96.457 39.764 96.457 42.7388C96.457 45.741 98.0332 47.7515 100.377 47.7515C102.762 47.7515 104.325 45.7828 104.325 42.7388Z\"\n fill=\"white\"\n />\n <path\n d=\"M118.346 44.4938C118.573 46.5205 120.548 47.851 123.245 47.851C125.831 47.851 127.69 46.5203 127.69 44.693C127.69 43.1067 126.569 42.157 123.913 41.5061L121.257 40.868C117.494 39.9616 115.746 38.2066 115.746 35.3587C115.746 31.8326 118.828 29.4106 123.204 29.4106C127.534 29.4106 130.503 31.8326 130.603 35.3587H127.507C127.321 33.3192 125.631 32.0882 123.16 32.0882C120.689 32.0882 118.999 33.3338 118.999 35.1465C118.999 36.5914 120.079 37.4416 122.72 38.0923L124.978 38.6453C129.183 39.6368 130.93 41.3212 130.93 44.3104C130.93 48.1338 127.876 50.5285 123.018 50.5285C118.473 50.5285 115.405 48.19 115.207 44.4936L118.346 44.4938Z\"\n fill=\"white\"\n />\n <path\n d=\"M137.549 31.762V35.288H140.39V37.71H137.549V45.924C137.549 47.2001 138.118 47.7948 139.367 47.7948C139.705 47.7889 140.041 47.7653 140.375 47.724V50.1316C139.814 50.2362 139.244 50.2835 138.672 50.273C135.647 50.273 134.467 49.1399 134.467 46.2503V37.71H132.295V35.288H134.467V31.762H137.549Z\"\n fill=\"white\"\n />\n <path\n d=\"M142.036 42.7389C142.036 38.0508 144.805 35.105 149.122 35.105C153.455 35.105 156.21 38.0508 156.21 42.7389C156.21 47.4397 153.468 50.3728 149.122 50.3728C144.778 50.3728 142.036 47.4397 142.036 42.7389ZM153.086 42.7389C153.086 39.5229 151.607 37.625 149.122 37.625C146.637 37.625 145.162 39.5374 145.162 42.7389C145.162 45.9675 146.637 47.8512 149.122 47.8512C151.607 47.8512 153.086 45.9675 153.086 42.7389Z\"\n fill=\"white\"\n />\n <path\n d=\"M158.739 35.2882H161.664V37.8242H161.735C161.933 37.0322 162.399 36.3322 163.053 35.8419C163.707 35.3518 164.511 35.1011 165.33 35.1322C165.682 35.131 166.035 35.1694 166.38 35.2465V38.1071C165.933 37.9712 165.468 37.9087 165.002 37.9223C164.556 37.9043 164.112 37.9826 163.701 38.152C163.288 38.3212 162.918 38.5775 162.613 38.9032C162.31 39.229 162.081 39.6162 161.941 40.0386C161.801 40.461 161.756 40.9085 161.807 41.3503V50.188H158.739V35.2882Z\"\n fill=\"white\"\n />\n <path\n d=\"M180.521 45.8117C180.109 48.5166 177.467 50.3728 174.087 50.3728C169.741 50.3728 167.043 47.4687 167.043 42.8097C167.043 38.136 169.756 35.105 173.958 35.105C178.093 35.105 180.691 37.9367 180.691 42.4545V43.5022H170.138V43.6871C170.09 44.2354 170.159 44.7878 170.341 45.3076C170.522 45.8275 170.813 46.3027 171.193 46.7019C171.573 47.101 172.035 47.4149 172.545 47.6228C173.057 47.8307 173.607 47.9277 174.158 47.9074C174.883 47.9752 175.61 47.8078 176.232 47.4301C176.854 47.0526 177.337 46.485 177.608 45.8117H180.521ZM170.153 41.3647H177.624C177.651 40.8717 177.576 40.3784 177.403 39.9155C177.23 39.4528 176.964 39.0306 176.62 38.6755C176.275 38.3204 175.861 38.0401 175.403 37.8521C174.945 37.6641 174.453 37.5726 173.958 37.5832C173.459 37.5803 172.963 37.6759 172.501 37.8647C172.039 38.0536 171.619 38.3318 171.266 38.6833C170.912 39.0349 170.632 39.453 170.44 39.9132C170.249 40.3733 170.152 40.8666 170.153 41.3647Z\"\n fill=\"white\"\n />\n <path\n d=\"M62.4261 14.3688C63.069 14.3228 63.7143 14.4197 64.3152 14.6524C64.916 14.8853 65.4578 15.248 65.901 15.7148C66.3442 16.1815 66.6781 16.7407 66.8784 17.3516C67.0788 17.9626 67.1406 18.6103 67.0596 19.2481C67.0596 22.3852 65.3593 24.1885 62.4261 24.1885H58.8691V14.3688H62.4261ZM60.3986 22.7998H62.2552C62.7146 22.8272 63.1745 22.7521 63.6011 22.5799C64.0278 22.4078 64.4107 22.1429 64.7217 21.8045C65.0327 21.4663 65.2642 21.0631 65.3995 20.6243C65.5346 20.1856 65.5698 19.7222 65.5027 19.2681C65.5649 18.8158 65.5261 18.3554 65.3889 17.9198C65.2518 17.4843 65.0196 17.0843 64.7092 16.7488C64.3989 16.4132 64.0179 16.1501 63.5937 15.9786C63.1694 15.807 62.7123 15.7312 62.2552 15.7565H60.3986V22.7998Z\"\n fill=\"white\"\n />\n <path\n d=\"M68.7871 20.4798C68.7404 19.9928 68.7962 19.5015 68.951 19.0372C69.106 18.573 69.3564 18.1462 69.6864 17.7843C70.0164 17.4222 70.4186 17.133 70.8672 16.935C71.3159 16.7371 71.801 16.6348 72.2916 16.6348C72.7823 16.6348 73.2675 16.7371 73.7161 16.935C74.1647 17.133 74.5669 17.4222 74.8969 17.7843C75.2268 18.1462 75.4772 18.573 75.6322 19.0372C75.7871 19.5015 75.8429 19.9928 75.7961 20.4798C75.8438 20.9674 75.7886 21.4593 75.6341 21.9244C75.4797 22.3893 75.2293 22.8169 74.8993 23.1796C74.5692 23.5424 74.1667 23.8322 73.7177 24.0306C73.2686 24.2289 72.7828 24.3314 72.2916 24.3314C71.8004 24.3314 71.3147 24.2289 70.8655 24.0306C70.4165 23.8322 70.014 23.5424 69.6839 23.1796C69.354 22.8169 69.1035 22.3893 68.9491 21.9244C68.7947 21.4593 68.7394 20.9674 68.7871 20.4798ZM74.2877 20.4798C74.2877 18.8735 73.564 17.9341 72.294 17.9341C71.0193 17.9341 70.302 18.8735 70.302 20.4798C70.302 22.0991 71.0193 23.0312 72.294 23.0312C73.5641 23.0311 74.2877 22.0926 74.2877 20.4798Z\"\n fill=\"white\"\n />\n <path\n d=\"M85.1132 24.1883H83.5917L82.0558 18.7305H81.9398L80.4104 24.1883H78.9035L76.855 16.7778H78.3426L79.6738 22.4325H79.7834L81.3113 16.7778H82.7182L84.246 22.4325H84.3622L85.6868 16.7778H87.1535L85.1132 24.1883Z\"\n fill=\"white\"\n />\n <path\n d=\"M88.8765 16.7777H90.2882V17.955H90.3978C90.5838 17.5322 90.8973 17.1778 91.2948 16.9411C91.6924 16.7044 92.154 16.5974 92.6155 16.6347C92.977 16.6077 93.3402 16.662 93.6778 16.7938C94.0155 16.9256 94.319 17.1316 94.5661 17.3963C94.8131 17.6609 94.9973 17.9776 95.1048 18.3229C95.2125 18.6683 95.2407 19.0333 95.1876 19.391V24.1883H93.721V19.7583C93.721 18.5673 93.2021 17.9751 92.1174 17.9751C91.8719 17.9638 91.6269 18.0053 91.3991 18.0972C91.1713 18.1891 90.966 18.3291 90.7974 18.5074C90.6289 18.6858 90.5011 18.8984 90.4226 19.1307C90.3442 19.3629 90.317 19.6093 90.3431 19.853V24.1883H88.8765V16.7777Z\"\n fill=\"white\"\n />\n <path d=\"M97.5244 13.885H98.991V24.1883H97.5244V13.885Z\" fill=\"white\" />\n <path\n d=\"M101.03 20.48C100.983 19.9928 101.039 19.5015 101.194 19.0372C101.349 18.5731 101.599 18.1462 101.929 17.7842C102.259 17.4222 102.661 17.1329 103.11 16.935C103.559 16.7371 104.044 16.6348 104.535 16.6348C105.025 16.6348 105.51 16.7371 105.959 16.935C106.408 17.1329 106.81 17.4222 107.14 17.7842C107.47 18.1462 107.721 18.5731 107.876 19.0372C108.03 19.5015 108.086 19.9928 108.04 20.48C108.087 20.9675 108.032 21.4595 107.877 21.9245C107.723 22.3894 107.473 22.817 107.142 23.1798C106.812 23.5424 106.41 23.8323 105.961 24.0306C105.512 24.2291 105.026 24.3315 104.535 24.3315C104.043 24.3315 103.558 24.2291 103.109 24.0306C102.659 23.8323 102.257 23.5424 101.927 23.1798C101.597 22.817 101.346 22.3894 101.192 21.9245C101.037 21.4595 100.982 20.9675 101.03 20.48ZM106.53 20.48C106.53 18.8736 105.807 17.9342 104.537 17.9342C103.262 17.9342 102.545 18.8736 102.545 20.48C102.545 22.0992 103.262 23.0312 104.537 23.0312C105.807 23.0312 106.53 22.0926 106.53 20.48Z\"\n fill=\"white\"\n />\n <path\n d=\"M109.583 22.0926C109.583 20.7587 110.579 19.9897 112.347 19.8804L114.36 19.7646V19.125C114.36 18.3423 113.842 17.9003 112.839 17.9003C112.02 17.9003 111.453 18.2001 111.29 18.724H109.87C110.02 17.4512 111.221 16.6348 112.907 16.6348C114.77 16.6348 115.821 17.5597 115.821 19.125V24.1883H114.409V23.1469H114.293C114.057 23.5204 113.726 23.825 113.334 24.0294C112.942 24.2339 112.503 24.3308 112.061 24.3104C111.749 24.3427 111.433 24.3096 111.135 24.213C110.837 24.1163 110.562 23.9585 110.329 23.7496C110.095 23.5406 109.908 23.2852 109.78 22.9998C109.652 22.7144 109.585 22.4053 109.583 22.0926ZM114.36 21.4593V20.8398L112.546 20.9556C111.522 21.0239 111.058 21.371 111.058 22.0242C111.058 22.6913 111.638 23.0794 112.436 23.0794C112.67 23.103 112.906 23.0794 113.131 23.0101C113.355 22.9409 113.563 22.8273 113.743 22.6762C113.922 22.5251 114.069 22.3394 114.176 22.1304C114.282 21.9214 114.345 21.6931 114.36 21.4593Z\"\n fill=\"white\"\n />\n <path\n d=\"M117.749 20.4799C117.749 18.1382 118.956 16.6549 120.833 16.6549C121.298 16.6335 121.759 16.7444 122.162 16.9747C122.566 17.205 122.895 17.5449 123.112 17.955H123.222V13.885H124.688V24.1883H123.283V23.0175H123.167C122.933 23.4248 122.592 23.7607 122.181 23.9885C121.769 24.2164 121.303 24.3278 120.833 24.3105C118.943 24.3105 117.749 22.8271 117.749 20.4799ZM119.263 20.4799C119.263 22.0517 120.006 22.9975 121.249 22.9975C122.485 22.9975 123.249 22.038 123.249 20.4862C123.249 18.9419 122.477 17.9687 121.249 17.9687C120.014 17.9687 119.263 18.9209 119.263 20.4799Z\"\n fill=\"white\"\n />\n <path\n d=\"M130.756 20.4798C130.709 19.9928 130.765 19.5015 130.92 19.0372C131.075 18.573 131.325 18.1462 131.655 17.7843C131.985 17.4222 132.387 17.133 132.836 16.935C133.285 16.7371 133.77 16.6348 134.26 16.6348C134.751 16.6348 135.236 16.7371 135.685 16.935C136.133 17.133 136.536 17.4222 136.866 17.7843C137.196 18.1462 137.446 18.573 137.601 19.0372C137.756 19.5015 137.812 19.9928 137.765 20.4798C137.812 20.9674 137.757 21.4593 137.604 21.9244C137.449 22.3893 137.198 22.8169 136.868 23.1796C136.538 23.5424 136.136 23.8322 135.686 24.0306C135.237 24.2289 134.751 24.3314 134.26 24.3314C133.769 24.3314 133.284 24.2289 132.834 24.0306C132.385 23.8322 131.983 23.5424 131.653 23.1796C131.323 22.8169 131.072 22.3893 130.918 21.9244C130.763 21.4593 130.708 20.9674 130.756 20.4798ZM136.256 20.4798C136.256 18.8735 135.533 17.9341 134.263 17.9341C132.988 17.9341 132.271 18.8735 132.271 20.4798C132.271 22.0991 132.988 23.0312 134.263 23.0312C135.533 23.0311 136.256 22.0926 136.256 20.4798Z\"\n fill=\"white\"\n />\n <path\n d=\"M139.733 16.7777H141.145V17.955H141.254C141.441 17.5322 141.754 17.1778 142.151 16.9411C142.549 16.7044 143.011 16.5974 143.472 16.6347C143.834 16.6077 144.196 16.662 144.535 16.7938C144.872 16.9256 145.175 17.1316 145.422 17.3963C145.669 17.6609 145.854 17.9776 145.961 18.3229C146.069 18.6683 146.097 19.0333 146.045 19.391V24.1883H144.577V19.7583C144.577 18.5673 144.059 17.9751 142.974 17.9751C142.729 17.9638 142.483 18.0053 142.255 18.0972C142.028 18.1891 141.822 18.3291 141.653 18.5074C141.486 18.6858 141.357 18.8984 141.279 19.1307C141.201 19.3629 141.173 19.6093 141.199 19.853V24.1883H139.733V16.7777Z\"\n fill=\"white\"\n />\n <path\n d=\"M154.331 14.9329V16.8117H155.941V18.0435H154.331V21.854C154.331 22.6303 154.652 22.9703 155.383 22.9703C155.569 22.9697 155.756 22.9583 155.941 22.9365V24.1548C155.678 24.2017 155.412 24.2266 155.144 24.2294C153.512 24.2294 152.864 23.6573 152.864 22.2286V18.0435H151.684V16.8116H152.864V14.9329H154.331Z\"\n fill=\"white\"\n />\n <path\n d=\"M157.945 13.885H159.399V17.9687H159.515C159.71 17.5419 160.032 17.1855 160.437 16.948C160.843 16.7104 161.312 16.6033 161.781 16.6412C162.14 16.6217 162.499 16.6816 162.834 16.8166C163.167 16.9517 163.468 17.1585 163.712 17.4223C163.956 17.6862 164.14 18.0005 164.248 18.3431C164.356 18.6857 164.388 19.0479 164.34 19.4039V24.1884H162.871V19.7647C162.871 18.5811 162.318 17.9816 161.283 17.9816C161.031 17.9609 160.777 17.9955 160.54 18.0828C160.302 18.17 160.087 18.308 159.909 18.487C159.73 18.6659 159.593 18.8815 159.508 19.1188C159.422 19.356 159.389 19.6091 159.411 19.8603V24.1883H157.945V13.885Z\"\n fill=\"white\"\n />\n <path\n d=\"M172.891 22.1874C172.692 22.8646 172.26 23.4505 171.671 23.8425C171.083 24.2344 170.374 24.4074 169.671 24.3312C169.181 24.3441 168.695 24.2507 168.246 24.0572C167.796 23.8639 167.394 23.5752 167.066 23.2112C166.74 22.8474 166.497 22.4169 166.353 21.9498C166.21 21.4826 166.171 20.9902 166.238 20.5063C166.173 20.021 166.213 19.5274 166.356 19.0589C166.498 18.5904 166.741 18.158 167.065 17.7909C167.39 17.4238 167.79 17.1306 168.239 16.931C168.687 16.7316 169.174 16.6305 169.665 16.6346C171.732 16.6346 172.98 18.0434 172.98 20.3704V20.8809H167.733V20.9627C167.709 21.2347 167.744 21.5084 167.833 21.7664C167.922 22.0244 168.065 22.2609 168.251 22.4607C168.438 22.6606 168.664 22.8195 168.915 22.9272C169.166 23.0347 169.437 23.0887 169.712 23.0857C170.063 23.1277 170.418 23.0647 170.732 22.9048C171.047 22.7448 171.307 22.495 171.479 22.1873L172.891 22.1874ZM167.733 19.7992H171.486C171.504 19.5504 171.47 19.3007 171.386 19.0658C171.303 18.8308 171.17 18.6162 170.997 18.4353C170.825 18.2546 170.617 18.1117 170.386 18.0159C170.155 17.9202 169.906 17.8737 169.657 17.8795C169.403 17.8762 169.151 17.9238 168.916 18.0191C168.682 18.1144 168.468 18.2558 168.288 18.4346C168.108 18.6136 167.967 18.8265 167.873 19.0608C167.777 19.2952 167.729 19.5462 167.733 19.7992Z\"\n fill=\"white\"\n />\n </g>\n </g>\n <defs>\n <clipPath id=\"clip0_890_9231\" data-testid=\"apple-icon-clippath\">\n <rect width={197.486} height={65.8286} fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n);","import { type SVGProps } from 'react';\n\nexport const IconLoading = ({ className, ...props }: SVGProps<SVGSVGElement>) => (\n <svg \n data-component=\"button\" \n data-testid=\"loading-svg-button\" \n viewBox=\"0 0 256 256\" \n width=\"1em\" \n height=\"1em\"\n className={className}\n stroke=\"currentColor\"\n {...props}\n >\n <line x1=\"128\" y1=\"32\" x2=\"128\" y2=\"64\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"24\"></line>\n <line\n x1=\"195.9\"\n y1=\"60.1\"\n x2=\"173.3\"\n y2=\"82.7\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"24\"\n ></line>\n <line x1=\"224\" y1=\"128\" x2=\"192\" y2=\"128\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"24\"></line>\n <line\n x1=\"195.9\"\n y1=\"195.9\"\n x2=\"173.3\"\n y2=\"173.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"24\"\n ></line>\n <line x1=\"128\" y1=\"224\" x2=\"128\" y2=\"192\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"24\"></line>\n <line\n x1=\"60.1\"\n y1=\"195.9\"\n x2=\"82.7\"\n y2=\"173.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"24\"\n ></line>\n <line x1=\"32\" y1=\"128\" x2=\"64\" y2=\"128\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"24\"></line>\n <line x1=\"60.1\" y1=\"60.1\" x2=\"82.7\" y2=\"82.7\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"24\"></line>\n </svg>\n);\n","'use client';\n\nimport React from 'react';\nimport { type ChangeEvent, type FocusEvent, type InputHTMLAttributes, type KeyboardEvent } from 'react';\n\nimport { IconEyeCheck, IconEyeOff } from '@tabler/icons-react';\nimport clsx from 'clsx';\n\nimport { IconLoading } from '../../icons/IconLoading';\n\nexport type TextInputProps = InputHTMLAttributes<HTMLInputElement> & {\n rightSection?: React.ReactNode;\n leftSection?: React.ReactNode;\n label?: React.ReactNode | string;\n className?: string;\n min?: string | undefined | number;\n max?: string | undefined | number;\n error?: string;\n showRightSection?: boolean;\n step?: string;\n loadingState?: boolean;\n autoFocus?: boolean;\n wrapperClassName?: string;\n maxLength?: undefined | number;\n password?: boolean;\n autoComplete?: string;\n enablePasswordManagerAutofill?: boolean;\n onBlur?: (e: FocusEvent<HTMLInputElement>) => void;\n onChange?: (e: ChangeEvent<HTMLInputElement>) => void;\n onKeyDown?: (e: KeyboardEvent<HTMLInputElement>) => void;\n};\n\nexport const TextInput = React.forwardRef<HTMLInputElement, TextInputProps>(\n (\n {\n rightSection,\n leftSection,\n className,\n error,\n autoFocus,\n label,\n maxLength,\n enablePasswordManagerAutofill = false,\n onBlur,\n disabled,\n loadingState,\n onKeyDown,\n min = '0',\n max,\n autoComplete,\n showRightSection = true,\n step,\n wrapperClassName,\n password = false,\n ...props\n },\n ref,\n ) => {\n const [showPassword, setShowPassword] = React.useState(false);\n\n return (\n <div data-component=\"TextInput\" data-testid=\"TextInput\" className={clsx('relative', wrapperClassName)}>\n {typeof label === 'string' ? (\n <label htmlFor={props.id} className=\"mb-2 flex items-center gap-1 text-xs font-medium text-black\">\n {label}\n </label>\n ) : (\n label\n )}\n\n <div className=\"relative\">\n {leftSection && (\n <div\n className={clsx(\n 'absolute top-0 left-0 flex h-10 w-12 content-center items-center justify-center align-middle text-sm font-medium text-black',\n )}\n >\n {leftSection}\n </div>\n )}\n <input\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n autoComplete={autoComplete}\n min={min}\n max={max}\n autoFocus={autoFocus}\n disabled={disabled}\n step={step}\n maxLength={maxLength}\n className={clsx(\n `${loadingState ? 'cursor-not-allowed' : ''}`,\n `${disabled ? 'text-gray-500' : 'text-gray-900'} selection:bg-turquoise-200 focus:border-turquoise-500 focus:ring-turquoise-500 active:border-turquoise-500 active:ring-turquoise-500 h-10 w-full rounded-[4px] border border-gray-200 bg-ultra-light-gray px-3 text-sm font-normal outline-hidden ${rightSection && 'pr-12'} ${leftSection && 'pl-12'} ${\n error &&\n 'border-red-500 text-red-500 selection:bg-red-200 focus:border-red-500 focus:ring-red-500 focus:placeholder:text-red-500 active:border-red-500 active:ring-red-500'\n }`,\n className,\n )}\n aria-busy={loadingState || undefined}\n data-lpignore={enablePasswordManagerAutofill ? undefined : 'true'} // lastpass\n data-1p-ignore={enablePasswordManagerAutofill ? undefined : 'true'} // 1Password\n ref={ref}\n {...props}\n type={password ? (showPassword ? 'text' : 'password') : 'text'}\n />\n {loadingState ? (\n <div className=\"absolute inset-y-0 right-0 flex h-10 w-12 content-center items-center justify-center align-middle text-sm font-medium text-black\">\n <IconLoading className=\"h-4 w-4 animate-spin text-gray-500\" aria-label=\"Loading\" />\n </div>\n ) : (\n rightSection &&\n showRightSection && (\n <div className=\"absolute inset-y-0 right-0 flex h-10 w-12 content-center items-center justify-center align-middle text-sm font-medium text-black\">\n {rightSection}\n </div>\n )\n )}\n {password && (\n <div className=\"absolute inset-y-0 right-4 flex content-center items-center justify-center align-middle text-sm font-medium text-black\">\n {showPassword ? (\n <IconEyeCheck\n data-testid=\"password-visibility-toggle\"\n className=\"cursor-pointer text-gray-500\"\n size={15}\n onClick={() => setShowPassword(false)}\n />\n ) : (\n <IconEyeOff\n data-testid=\"password-visibility-toggle\"\n className=\"cursor-pointer text-gray-500\"\n size={15}\n onClick={() => setShowPassword(true)}\n />\n )}\n </div>\n )}\n </div>\n {error && <div className=\"mt-2 text-xs font-normal text-red-500\">{error}</div>}\n </div>\n );\n },\n);\n","'use client'\nimport { type ChangeEvent, type KeyboardEvent, type Ref } from 'react';\n\nimport { TextInput, type TextInputProps } from '../textInput';\n\ninterface ISearchLocationFormProps extends TextInputProps {\n label: string;\n onChange: (e: ChangeEvent<HTMLInputElement>) => void;\n onFocus?: () => void;\n inputValue?: string;\n showSuggestions: boolean;\n handleOnKeyDown?: (e: KeyboardEvent<HTMLInputElement>) => void;\n children: React.ReactNode;\n loading?: boolean;\n rightSection?: React.ReactNode;\n inputRef?: Ref<HTMLInputElement>;\n}\n\nexport const AutoCompleteInput = ({\n label,\n onChange,\n onFocus,\n inputValue,\n showSuggestions,\n handleOnKeyDown,\n children,\n error,\n rightSection,\n inputRef,\n}: ISearchLocationFormProps) => (\n <div className=\"relative mb-8\">\n <TextInput\n ref={inputRef}\n label={label}\n id=\"search\"\n type=\"text\"\n name=\"searchField\"\n onChange={onChange}\n onFocus={onFocus}\n onKeyDown={handleOnKeyDown}\n value={inputValue}\n error={error}\n rightSection={rightSection}\n aria-autocomplete=\"list\"\n aria-controls=\"suggestions-googlemaps-location-list\"\n />\n {showSuggestions && inputValue && children}\n </div>\n);\n","'use client'\nimport { cn } from '@utils/cn';\n\ninterface IAvatarProps {\n 'data-testid'?: string;\n src: string;\n alt?: string;\n size?: number;\n radius?: keyof typeof radiusFormatter;\n}\n\nconst radiusFormatter = {\n 0: 'rounded-none',\n 2: 'rounded-sm',\n 4: 'rounded',\n 6: 'rounded-lg',\n 8: 'rounded-xl',\n 10: 'rounded-2xl',\n 12: 'rounded-3xl',\n 100: 'rounded-full',\n};\n\nexport const Avatar = ({ src, alt = '', size = 50, radius = 100, 'data-testid': dataTestId = 'avatar' }: IAvatarProps) => (\n <div data-component=\"Avatar\" data-testid={dataTestId}>\n {src && (\n \n <img\n src={src}\n className={cn('aspect-square appearance-none object-cover', radiusFormatter[radius])}\n alt={alt}\n width={size}\n height={size}\n data-testid=\"avatar-img\"\n />\n )}\n </div>\n);\n\nAvatar.displayName = 'Avatar';\n","'use client';\nimport { cn } from '@utils/cn';\n\ninterface IAvatarIndicator extends React.HTMLAttributes<HTMLDivElement> {\n indicatorCount?: number;\n}\n\nexport const AvatarIndicator = ({ indicatorCount, className, ...props }: IAvatarIndicator) => (\n <div\n className={cn(\n 'grid h-5 min-w-5 w-fit flex-col place-content-center items-center justify-center rounded-full bg-white px-0.5',\n className,\n )}\n data-component=\"AvatarIndicator\"\n data-testid=\"AvatarIndicator\"\n {...props}\n >\n <div className=\"font-[var(--font-family-sans)] text-[10px] leading-[10px] text-black\">{`+${indicatorCount}`}</div>\n </div>\n);\n","'use client';\nimport { cn } from '@utils/cn';\nimport { COLOR } from '@utils/enums';\ninterface IBadgeProps {\n styleVariant?:\n | 'green-light'\n | 'red'\n | 'accent-blue'\n | 'warning'\n | 'gray'\n | 'black'\n | 'dark-gray'\n | 'purple'\n | 'secondary'\n | 'secondary-light'\n | 'gray'\n | 'white';\n color?:\n | 'dark'\n | 'gray'\n | 'red'\n | 'secondary'\n | 'grape'\n | 'violet'\n | 'indigo'\n | 'blue'\n | 'cyan'\n | 'green'\n | 'lime'\n | 'yellow'\n | 'orange'\n | 'teal';\n favorite?: boolean;\n children?: React.ReactNode;\n className?: string;\n}\n\nexport const Badge = ({ styleVariant = COLOR.ACCENT_BLUE, className, favorite, children, ...props }: IBadgeProps) => {\n if (!children) return null;\n return (\n <span\n data-testid=\"badge\"\n data-component=\"Badge\"\n className={cn(\n 'inline-flex max-w-full place-content-center items-center px-2.5 align-middle text-xs leading-[20px] font-semibold tracking-wide text-wrap whitespace-normal normal-case rounded-sm',\n {\n 'bg-accent-blue-light text-accent-blue': styleVariant === COLOR.ACCENT_BLUE,\n 'bg-green-light text-green': styleVariant === COLOR.GREEN_LIGHT,\n 'bg-red-50 text-red-500': styleVariant === COLOR.RED,\n 'bg-purple-light text-purple': styleVariant === COLOR.PURPLE,\n 'bg-warning-light text-warning': styleVariant === COLOR.WARNING,\n 'bg-gray-50 text-black': styleVariant === COLOR.DARK_GRAY,\n 'bg-black text-white': styleVariant === COLOR.BLACK,\n 'bg-gray-50 text-gray-800': styleVariant === COLOR.GRAY,\n 'bg-secondary-light text-secondary': styleVariant === COLOR.SECONDARY_LIGHT,\n 'bg-secondary text-white': styleVariant === COLOR.SECONDARY,\n 'bg-white text-black': styleVariant === COLOR.WHITE,\n },\n className,\n )}\n {...props}\n >\n <span\n data-testid=\"badge-content\"\n className={cn('block h-5 overflow-hidden text-ellipsis whitespace-nowrap', {\n 'flex items-center': favorite,\n })}\n >\n {children}\n </span>\n </span>\n );\n};\nBadge.displayName = 'Badge';\n","'use client'\nimport { type HTMLAttributes } from 'react';\n\nimport { cn } from '@utils/cn';\nimport { COLOR } from '@utils/enums';\n\ninterface IBigBadgeProps extends HTMLAttributes<HTMLDivElement> {\n className?: string;\n styleVariant?: 'green' | 'red' | 'white' | 'accent-blue' | 'orange';\n 'data-testid'?: string;\n children: React.ReactNode;\n}\n\nexport const BigBadge = ({ styleVariant = COLOR.GREEN, className, children, ...props }: IBigBadgeProps) => (\n <div\n data-component=\"BigBadge\"\n data-testid=\"big-badge\"\n className={cn(\n 'grid h-9 max-w-full min-w-[140px] place-content-center rounded-full border border-solid px-6 py-1 text-sm font-medium whitespace-nowrap lowercase',\n {\n 'border-green text-green bg-white': styleVariant === COLOR.GREEN,\n 'border-accent-blue text-accent-blue bg-white': styleVariant === COLOR.ACCENT_BLUE,\n 'border-orange text-orange bg-white': styleVariant === COLOR.ORANGE,\n 'group-hover:bg-green-light': styleVariant === COLOR.GREEN,\n 'border-red-500 bg-white text-red-500': styleVariant === COLOR.RED,\n 'group-hover:bg-red-50': styleVariant === COLOR.RED,\n 'border-gray-200 bg-white text-black': styleVariant === COLOR.WHITE,\n '': styleVariant === COLOR.WHITE,\n },\n className\n )}\n {...props}\n >\n {children}\n </div>\n);\n","'use client'\nimport { type FC } from 'react';\n\nimport { IconArrowNarrowLeft } from '@tabler/icons-react';\n\n\ninterface IBreadCrumb {\n children: React.ReactNode;\n LinkText: FC<{ classNames: string; children: React.ReactNode }>;\n}\n\nexport const BreadCrumb = ({ children, LinkText }: IBreadCrumb) => (\n <LinkText data-component=\"BreadCrumb\" classNames=\"flex items-center\">\n <>\n <IconArrowNarrowLeft size={20} />\n <span className=\"flex items-center gap-5\">{children}</span>\n </>\n </LinkText>\n);\n\nBreadCrumb.displayName = 'BreadCrumb';\n","import clsx from 'clsx';\n\nconst defaultButtonStyling =\n 'justify-center group relative flex items-center gap-2 cursor-pointer border rounded py-2 px-5 text-sx md:text-sm md:font-medium font-medium hover:outline-hidden focus:outline-hidden disabled:cursor-not-allowed transition-colors duration-100 ease-in-out';\n\nexport const buttonVariants = {\n primary: clsx(\n defaultButtonStyling,\n 'border-transparent bg-primary text-black hover:bg-turquoise-700 hover:fill-white disabled:bg-turquoise-100 disabled:text-gray-800 disabled:hover:bg-turquoise-100',\n ),\n secondary: clsx(\n defaultButtonStyling,\n 'border-solid border-gray-200 bg-white text-black hover:border-gray-800 hover:bg-gray-50 hover:fill-white disabled:text-gray-800 disabled:hover:border-gray-200 disabled:hover:bg-white',\n ),\n danger: clsx(\n defaultButtonStyling,\n 'border-transparent bg-red-500 text-white hover:bg-red-700 disabled:bg-red-100 disabled:hover:bg-red-100',\n ),\n link: clsx(\n defaultButtonStyling,\n 'border-transparent bg-transparent text-accent-blue hover:bg-gray-50 disabled:bg-transparent disabled:text-gray-800 disabled:hover:bg-transparent',\n ),\n outline: clsx(\n defaultButtonStyling,\n 'border-solid border-gray-200 bg-transparent text-white hover:border-gray-800 hover:bg-[rgba(255,255,255,0.1)] disabled:text-gray-800 disabled:hover:border-gray-200 disabled:hover:bg-white',\n ),\n search: clsx(defaultButtonStyling, 'absolute top-0 right-0 h-full w-[50px] border-0 bg-transparent bg-no-repeat'),\n icon__primary: clsx(defaultButtonStyling, 'flex! items-center justify-center'),\n icon__danger: clsx(defaultButtonStyling, 'flex! items-center justify-center'),\n action: clsx(\n defaultButtonStyling,\n // < lg — ActionButton\n 'w-full bg-transparent border border-gray-200 whitespace-nowrap',\n // lg+ — ActionIcon\n 'lg:w-[36px] lg:h-[36px]',\n 'lg:p-0 lg:gap-0',\n 'lg:hover:bg-transparent lg:hover:border-black',\n 'lg:[&_svg]:-ml-2 lg:[&_svg]:-mr-2',\n ),\n} as const;\n","'use client'\nimport { type ButtonHTMLAttributes } from 'react';\n\nimport { cn } from '@utils/cn';\nimport formatIcon from '@utils/formatIcon';\nimport clsx from 'clsx';\n\nimport { IconLoading } from '../../icons/IconLoading';\n\nimport { buttonVariants } from './buttonVariants';\n\nexport interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n variant?: keyof typeof buttonVariants;\n ariaLabel?: string;\n isLoading?: boolean;\n block?: boolean;\n dataTestId?: string;\n icon?: React.ReactNode;\n iconRight?: boolean;\n children?: React.ReactNode;\n}\n\nexport function Button({\n type = 'button',\n variant = 'primary',\n ariaLabel,\n block = false,\n isLoading = false,\n icon: iconFromProps = null,\n iconRight = false,\n onClick,\n className,\n children,\n dataTestId,\n ...props\n}: ButtonProps) {\n const loadingIcon = <IconLoading className=\"animate-spin-slow mr-2 stroke-current\" />;\n const icon = isLoading ? loadingIcon : iconFromProps;\n\n const formattedIcon = icon ? formatIcon(icon, {\n className: clsx({\n '-mr-2': iconRight,\n '-ml-2': !iconRight,\n }, icon === loadingIcon ? 'text-current' : 'size-[1.125rem]')\n }) : null;\n\n const handleOnClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(event);\n };\n\n return (\n <button\n type={type}\n aria-label={ariaLabel}\n data-testid={dataTestId}\n className={cn(buttonVariants[variant], className, block && 'w-full text-sm')}\n onClick={handleOnClick}\n {...props}\n >\n {!iconRight && formattedIcon}\n {children}\n {iconRight && formattedIcon}\n </button>\n );\n}\n\nButton.displayName = 'Button';\n","'use client'\nimport { forwardRef, type JSX } from 'react';\n\nimport { cn } from '@utils/cn';\n\n\ninterface ICheckbox extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'> {\n className?: string;\n mediumBoldText?: boolean;\n error?: string;\n label?: React.ReactNode;\n indeterminate?: boolean;\n size?: 'sm' | 'md';\n labelClassName?: string;\n}\n\n\nconst CheckboxComponent = (\n { size = 'md', className, error, mediumBoldText, label, labelClassName, indeterminate = false, disabled = false, ...props }: ICheckbox,\n ref: React.Ref<HTMLInputElement>\n) => (<div data-testid=\"checkbox-wrapper\" className={cn('relative grid gap-2', className)}>\n <label className={cn('flex cursor-pointer items-center gap-3', labelClassName)}>\n <div data-testid={`checkbox-container-${size}`} className={cn('relative grid shrink-0 place-content-center', size === 'sm' ? 'size-4' : 'size-5')}>\n <input\n className=\"checked:border-light-blue checked:bg-light-blue [&:not([disabled])]:checked:border-light-blue [&:not([disabled])]:checked:bg-light-blue peer absolute inset-0 shrink-0 appearance-none rounded-xs border border-gray-800 bg-white focus:outline-hidden disabled:border-gray-300 disabled:bg-gray-100 disabled:[&[checked]]:border-gray-100\"\n type=\"checkbox\"\n data-testid=\"checkbox\"\n disabled={disabled}\n {...props}\n ref={ref}\n />\n {/* Checkmark SVG for checked state */}\n <svg\n data-testid=\"checkbox-checkmark\"\n className={cn(\n 'pointer-events-none absolute top-1/2 left-1/2 hidden -translate-x-1/2 -translate-y-1/2 stroke-white outline-hidden peer-checked:block',\n { 'stroke-gray-300': disabled },\n size === 'sm' ? 'size-3' : 'size-4',\n )}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n\n {/* Indeterminate SVG for indeterminate state */}\n <svg\n data-testid=\"checkbox-indeterminate\"\n className={cn(\n 'pointer-events-none absolute left-1/2 hidden -translate-x-1/2 -translate-y-1/2 stroke-black outline-hidden',\n { 'stroke-gray-300': disabled },\n size === 'sm' ? 'top-[60%] size-3' : 'top-1/2 size-4',\n { block: indeterminate },\n )}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <line x1=\"4\" y1=\"12\" x2=\"20\" y2=\"12\"></line>\n </svg>\n </div>\n {label && <span data-testid=\"checkbox-label\" className={cn('grow text-sm font-normal', labelClassName, { 'font-medium': mediumBoldText })}>{label}</span>}\n </label>\n {error && <small className=\"text-xs font-normal text-red-500\">{error}</small>}\n </div>\n );\n\nexport const Checkbox = forwardRef(CheckboxComponent) as (\n props: ICheckbox & { ref?: React.Ref<HTMLInputElement> }\n) => JSX.Element;\n","'use client'\nimport { cloneElement, forwardRef, isValidElement, useImperativeHandle, useState } from 'react';\n\nimport {\n type AlignedPlacement,\n autoUpdate,\n flip,\n offset,\n shift,\n type Side,\n useClick,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n} from '@floating-ui/react';\nimport { IconX } from '@tabler/icons-react';\nimport { cn } from '@utils/cn';\nimport clsx from 'clsx';\n\nimport { ActionIcon } from '../actionIcon';\n\ntype ITooltipProps = {\n content: React.ReactNode;\n children: React.ReactNode;\n hoverEnabled?: boolean;\n passedOpen?: boolean;\n placement?: AlignedPlacement | Side;\n isMobile?: boolean;\n amountOfOffset?: number;\n className?: string;\n style?: 'minimal' | 'card';\n}\n\nexport type PopoverRefType = {\n closePopover: () => void;\n openPopover: () => void;\n togglePopover: () => void;\n}\n\nexport const Popover = forwardRef<PopoverRefType, ITooltipProps>(\n (\n {\n content,\n children,\n hoverEnabled = false,\n passedOpen = false,\n placement = 'right',\n style = 'card',\n isMobile = false,\n className,\n }: ITooltipProps,\n ref,\n ) => {\n const [isOpen, setIsOpen] = useState(passedOpen);\n\n const mobileStyles = {\n width: `${style === 'card' && '100%'}`,\n };\n\n const { refs, floatingStyles, context } = useFloating({\n open: isOpen,\n onOpenChange: setIsOpen,\n placement: !isMobile ? placement : 'bottom-start',\n middleware: [\n !isMobile && flip(),\n !isMobile && shift(),\n offset(() => ({\n mainAxis: 15,\n crossAxis: !isMobile ? 0 : 78,\n })),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n const click = useClick(context, { event: 'click', keyboardHandlers: true });\n const focus = useFocus(context);\n const hover = useHover(context, {\n enabled: hoverEnabled,\n });\n const dismiss = useDismiss(context);\n const role = useRole(context, { role: 'tooltip' });\n\n const interactions = [click, focus, dismiss, role, hover];\n\n const { getReferenceProps, getFloatingProps } = useInteractions(interactions);\n\n // Use useImperativeHandle to expose closePopover to the parent\n useImperativeHandle(ref, () => ({\n closePopover: () => setIsOpen(false),\n openPopover: () => setIsOpen(true),\n togglePopover: () => setIsOpen((prev) => !prev),\n }));\n\n return (\n <div className={cn('', { '[&>div]:border-navyBlue': isOpen }, className)}>\n {isValidElement(children) &&\n cloneElement(\n children,\n getReferenceProps({\n ref: refs.setReference,\n ...(children.props as object),\n ...getReferenceProps(),\n }),\n )}\n\n {isOpen && (\n <div\n ref={refs.setFloating}\n style={{ ...floatingStyles, ...(isMobile && { ...mobileStyles }) }}\n {...getFloatingProps()}\n className={clsx('z-60', {\n 'w-fit rounded border border-gray-200! bg-white p-5': style === 'minimal',\n 'card w-[489px] drop-shadow-xl': style === 'card',\n })}\n data-testid=\"popover-container\"\n data-component=\"Popover\"\n >\n {style === 'minimal' && content}\n {style === 'card' && (\n <div className=\"bg-linear-gradient-x pt-[3px]\">\n <div className=\"relative overflow-hidden bg-white p-5\">\n {!hoverEnabled && (\n <ActionIcon\n onClick={() => setIsOpen(false)}\n title={''}\n icon={<IconX />}\n styleVariant=\"small\"\n className=\"absolute top-5 right-5\"\n />\n )}\n {content}\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n );\n },\n);\n\n","'use client';\nimport { type ReactNode, useEffect, useRef, useState } from 'react';\nimport { DayPicker, useDayPicker } from 'react-day-picker';\n\nimport { IconCalendar, IconX } from '@tabler/icons-react';\nimport { cn } from '@utils/cn';\nimport clsx from 'clsx';\nimport { addMonths, format, setMonth } from 'date-fns';\nimport { enGB, fr, nl, nlBE } from 'date-fns/locale';\n\nimport { Button } from '../button';\nimport { Popover, type PopoverRefType } from '../popover';\n\ninterface IDatePickerInputProps {\n value?: Date;\n label?: ReactNode | string;\n className?: string;\n classNames?: string;\n disabledFrom?: Date;\n disabledUntil?: Date;\n placeholder?: string;\n icon?: React.ReactNode;\n locale?: string;\n error?: string;\n onChange?: (date: Date | undefined) => void;\n lang?: string;\n todayText?: string;\n disabled?: boolean;\n minimalDropdownYears?: number;\n}\n\ninterface IDay {\n date: Date;\n}\n\nexport const DatePickerInput = ({\n lang,\n todayText,\n value,\n disabledFrom,\n disabledUntil,\n className,\n error,\n onChange,\n placeholder,\n label,\n disabled,\n minimalDropdownYears = 4,\n}: IDatePickerInputProps) => {\n const [selected, setSelected] = useState<Date | undefined>(value);\n const today = new Date();\n const [newMonth, setNewMonth] = useState(selected || today);\n const [dropdownOpened, setDropdownOpened] = useState({\n month: false,\n year: false,\n });\n const locales = { fr, enGB, nl, nlBE };\n const dropdownRef = useRef<HTMLDivElement | null>(null);\n const popoverRef = useRef<PopoverRefType | null>(null);\n const renderLocale = () => {\n switch (lang) {\n case 'fr-FR':\n return locales.fr;\n case 'nl-BE':\n return locales.nlBE;\n case 'nl-NL':\n return locales.nl;\n case 'en-GB':\n return locales.enGB;\n default:\n return locales.enGB;\n }\n };\n\n /* istanbul ignore next - relies on dropdown DOM not rendered in tests */\n const handleClickOutside = (event: MouseEvent) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node))\n setDropdownOpened({ month: false, year: false });\n };\n\n /* istanbul ignore next - environment differences make listener attach hard to test */\n useEffect(() => {\n if (dropdownOpened.month || dropdownOpened.year) document.addEventListener('mousedown', handleClickOutside);\n else document.removeEventListener('mousedown', handleClickOutside);\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [dropdownOpened]);\n\n const handleDayClick = (date: Date | undefined) => {\n /* istanbul ignore next - react-day-picker rarely calls onSelect(undefined) in our configuration */\n if (!date) return;\n handleClosePopover();\n setNewMonth(date);\n setSelected(date);\n onChange?.(date);\n };\n\n const isDateSelected = (day: IDay) => {\n /* istanbul ignore next - defensive null guard */\n if (!selected || !day) return false;\n // Create new Date objects to avoid mutating the original ones\n const d1 = new Date(day?.date);\n const d2 = new Date(selected);\n\n // Set the time components (hours, minutes, seconds, milliseconds) to zero\n d1.setHours(0, 0, 0, 0);\n d2.setHours(0, 0, 0, 0);\n\n // Compare the normalized dates\n return d1.getTime() === d2.getTime();\n };\n\n const handleClosePopover = () => {\n popoverRef.current?.closePopover();\n };\n\n const isDateToday = (day: IDay) => {\n /* istanbul ignore next - defensive null guard */\n if (!day) return false;\n const d1 = new Date(day?.date);\n const d2 = new Date(today);\n d1.setHours(0, 0, 0, 0);\n d2.setHours(0, 0, 0, 0);\n return d1.getTime() === d2.getTime();\n };\n\n return (\n <Popover\n style=\"minimal\"\n className=\"w-full\"\n ref={popoverRef}\n content={\n <div>\n <DayPicker\n mode=\"single\"\n selected={selected}\n onSelect={handleDayClick}\n locale={renderLocale()}\n fixedWeeks\n endMonth={addMonths(today, 13)}\n captionLayout=\"dropdown\"\n onMonthChange={(newMonth) => setNewMonth(newMonth)}\n showOutsideDays\n // If a disabledFrom is provided, disable all dates before it, if a toDate is provided, disable all dates after it\n disabled={disabledFrom ? { before: disabledFrom } : disabledUntil ? { after: disabledUntil } : undefined}\n className={className}\n classNames={{\n month_grid: 'mt-3 max-w-[400px] border-t border-gray-100',\n month_caption: 'text-sm font-bold',\n dropdowns: 'flex items-center w-[190px] gap-1 left-0 justify-center h-8',\n caption_label: 'text-sm font-medium flex items-center justify-center w-[190px]',\n chevron: 'w-4 h-4 z-50',\n nav: 'absolute w-[190px] justify-between flex h-8 items-center',\n nav_button: 'h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100 cursor-pointer',\n nav_button_previous: 'absolute left-1',\n nav_button_next: 'absolute right-1',\n day: 'h-8 w-8 p-0 aria-selected:opacity-100 font-normal text-sm',\n weekdays: 'pt-12',\n weekday: 'text-gray-300 text-sm font-normal pt-4 pb-2',\n day_today: 'bg-accent text-accent-foreground',\n day_outside:\n 'day-outside text-gray-800 aria-selected:bg-accent/50 aria-selected:text-muted-foreground aria-selected:opacity-30',\n day_disabled: 'text-gray-800',\n day_range_middle: 'aria-selected:bg-accent aria-selected:text-accent-foreground',\n day_hidden: 'invisible',\n }}\n components={{\n DayButton: (props) => {\n const { day, ...buttonProps } = props;\n const { goToMonth } = useDayPicker();\n return (\n <button\n type=\"button\"\n {...buttonProps}\n className={clsx(\n 'm-1 size-8 text-black transition-all duration-100 ease-in-out',\n 'md:hover:bg-gradient-calendar hover:rounded md:hover:text-white',\n isDateSelected(day) && 'bg-gradient-calendar rounded text-sm font-normal text-white',\n isDateToday(day) && 'border-b-primary border border-transparent',\n 'translate-y-0 active:translate-y-0.5',\n )}\n onClick={() => {\n goToMonth(day.date);\n handleDayClick(day.date);\n }}\n />\n );\n },\n Dropdown: (props) => {\n const { goToMonth, months } = useDayPicker();\n const { className: dropdownClassName } = props as {\n className?: string;\n };\n\n const today = new Date();\n\n /* istanbul ignore next - react-day-picker may not pass this className in our test env */\n if (dropdownClassName === 'rdp-months_dropdown') {\n const selectedYear = newMonth.getFullYear();\n\n const selectItems = Array.from({ length: 12 }, (_, i) => {\n const monthDate = setMonth(new Date(selectedYear, i), i);\n\n return {\n value: i.toString(),\n label: format(monthDate, 'MMMM', {\n locale: renderLocale(),\n }),\n };\n });\n\n return (\n <>\n <div className=\"relative\">\n <span\n className=\"cursor-pointer\"\n onClick={() =>\n setDropdownOpened({\n ...dropdownOpened,\n month: !dropdownOpened.month,\n year: false,\n })\n }\n >\n {format(newMonth, 'MMMM', { locale: renderLocale() })}\n </span>\n {dropdownOpened.month && (\n <div\n ref={dropdownRef}\n className={'shadow-dropdown absolute z-70 rounded-md border border-gray-50 bg-white'}\n >\n {selectItems.map((item) => (\n <div\n key={item.value}\n onClick={() => {\n const newDate = new Date(selectedYear, parseInt(item.value));\n goToMonth(newDate);\n setDropdownOpened({\n month: false,\n year: false,\n });\n }}\n className=\"z-70 cursor-pointer border-b border-gray-50 bg-white px-4 py-1 font-normal text-black transition duration-200 ease-out hover:bg-gray-50\"\n >\n {item.label}\n </div>\n ))}\n </div>\n )}\n </div>\n <Button\n variant=\"secondary\"\n type=\"button\"\n className=\"absolute top-4 right-4 z-10 h-8 px-3 text-xs font-normal\"\n onClick={() => {\n goToMonth(today);\n handleDayClick(today);\n }}\n >\n {todayText}\n </Button>\n </>\n );\n /* istanbul ignore next - react-day-picker may not pass this className in our test env */\n } else if (dropdownClassName === 'rdp-years_dropdown') {\n const earliestYear = new Date().getFullYear() - minimalDropdownYears;\n const latestYear = new Date().getFullYear() + 1;\n /* istanbul ignore else - defensive guard will always be truthy */\n if (earliestYear && latestYear) {\n const years = Array.from(\n { length: latestYear - earliestYear + 1 },\n (_, i) => earliestYear + i,\n ).reverse();\n return (\n <div className=\"relative\">\n <span\n className=\"cursor-pointer\"\n onClick={() =>\n setDropdownOpened({\n ...dropdownOpened,\n year: !dropdownOpened.year,\n month: false,\n })\n }\n >\n {format(newMonth, 'yyyy', { locale: renderLocale() })}\n </span>\n {dropdownOpened.year && (\n <div\n ref={dropdownRef}\n className=\"shadow-dropdown absolute z-70 rounded-md border border-gray-50 bg-white max-h-64 overflow-y-auto\"\n >\n {years.map((year) => (\n <div\n key={year}\n onClick={() => {\n const newDate = months?.[0].date || new Date();\n newDate.setFullYear(year);\n goToMonth(newDate);\n setDropdownOpened({\n month: false,\n year: false,\n });\n }}\n className={\n 'z-70 cursor-pointer border-b border-gray-50 px-4 py-1 font-normal text-black transition duration-200 ease-out hover:bg-gray-50'\n }\n >\n {year}\n </div>\n ))}\n </div>\n )}\n </div>\n );\n }\n }\n /* istanbul ignore next - fallback path only when react-day-picker passes unknown className */\n return <></>;\n },\n }}\n />\n </div>\n }\n placement=\"bottom-start\"\n >\n <div data-component=\"datePickerInput\" className={cn('relative', className)}>\n {/* istanbul ignore next - trivial render guard */}\n {label && <label className=\"mb-2 flex items-center gap-1 text-xs font-medium\">{label}</label>}\n <Button\n variant=\"outline\"\n type=\"button\"\n disabled={disabled}\n className={cn(\n 'flex h-10 w-full items-center justify-start bg-gray-50 px-3 text-black',\n /* istanbul ignore next - cosmetic class toggle */ {\n 'border-red-500 text-red-500': error,\n },\n )}\n onClick={() => setNewMonth(today)}\n >\n <IconCalendar />\n <span className=\"text-sm font-normal text-nowrap text-black\">\n {selected ? selected.toLocaleDateString() : placeholder}\n </span>\n {/* istanbul ignore next - close icon rendering is covered functionally elsewhere */}\n {selected !== undefined && (\n <div>\n <span\n className=\"cursor-pointer text-sm font-normal text-gray-800\"\n role=\"button\"\n aria-label=\"Clear date\"\n tabIndex={0}\n onClick={() => {\n setSelected(undefined);\n onChange?.(undefined);\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n setSelected(undefined);\n onChange?.(undefined);\n }\n }}\n >\n <IconX size={15} />\n </span>\n </div>\n )}\n </Button>\n {/* istanbul ignore next - trivial render guard */}\n {error && <small className=\"text-xs font-normal text-red-500\">{error}</small>}\n </div>\n </Popover>\n );\n};\n","'use client'\nimport clsx from 'clsx';\n\ninterface DividerProps {\n 'data-testid'?: string;\n className?: string;\n}\n\nexport const Divider = ({ className, ...props }: DividerProps) => (\n <div data-component=\"divider\" className={clsx('block h-px w-full bg-gray-200', className)} {...props} />\n);\n","'use client';\nimport { type ButtonHTMLAttributes, forwardRef, type JSX, type Ref } from 'react';\n\nimport { IconHeart, IconHeartFilled } from '@tabler/icons-react';\n\nimport { ActionIcon } from '../actionIcon';\n\ninterface IFavouriteButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'type' | 'size'> {\n onClick: () => void;\n favourite: boolean;\n iconOutline?: React.ReactNode;\n iconFilled?: React.ReactNode;\n iconSize?: number;\n className?: string;\n favouriteTitle?: string;\n 'data-testid'?: string;\n iconColor?: string;\n iconColorSelected?: string;\n styleVariant?: 'transparent' | 'small' | 'default' | 'round' | undefined;\n children?: React.ReactNode;\n}\n\nexport const FavouriteButton = forwardRef<HTMLButtonElement, IFavouriteButtonProps>((props, ref) => {\n const {\n onClick,\n favourite,\n iconFilled,\n iconOutline,\n favouriteTitle,\n iconColorSelected = 'text-secondary',\n iconColor = 'text-gray-800',\n iconSize,\n className = '',\n styleVariant = 'transparent',\n children,\n ...rest\n } = props;\n\n return (\n <ActionIcon\n onClick={onClick}\n data-component=\"favouriteButton\"\n title={favouriteTitle || 'Favorite'}\n styleVariant={styleVariant}\n className={`${favourite ? iconColorSelected : iconColor} ${className}`.trim()}\n iconSize={iconSize}\n ref={ref}\n icon={favourite ? (iconFilled ?? <IconHeartFilled />) : (iconOutline ?? <IconHeart />)}\n {...rest}\n >\n {children}\n </ActionIcon>\n );\n}) as (props: IFavouriteButtonProps & { ref?: Ref<HTMLButtonElement> }) => JSX.Element;\n","'use client'\nimport { IconFilter } from '@tabler/icons-react';\n\nimport { Button } from '../button';\nimport { UnstyledButton } from '../unstyledButton';\n\ninterface IFilterButtonProps {\n onClick: () => void;\n hasFilters: boolean;\n reset: () => void;\n filtersText: string;\n resetText: string;\n}\n\nexport const FilterButton = ({ onClick, hasFilters, reset, filtersText, resetText }: IFilterButtonProps) => (\n <div className=\"flex gap-3\" data-testid=\"filterButton\">\n <Button\n onClick={onClick}\n variant=\"secondary\"\n className=\"font-normal md:font-normal\"\n icon={<IconFilter stroke={1} />}\n >\n {filtersText}\n </Button>\n <UnstyledButton className=\"text-sm font-normal disabled:text-gray-500\" onClick={reset} disabled={!hasFilters}>\n {resetText}\n </UnstyledButton>\n </div>\n );\n","'use client'\nimport { cn } from '@utils/cn';\n\ninterface IFilterItemProps {\n title: string;\n isActive?: boolean;\n onClick?: () => void;\n}\n\nexport const FilterItem = ({ title, isActive = false, onClick }: IFilterItemProps) => (\n <label\n className={cn(\n 'has-checked:border-primary has-checked:bg-turquoise-100 flex cursor-pointer items-center gap-3 rounded-full border border-gray-200 px-7 py-1.5 text-sm leading-6 font-normal transition-all duration-300 ease-in-out hover:bg-gray-50',\n )}\n >\n <input type=\"checkbox\" className=\"hidden\" onChange={onClick} checked={isActive} />\n {\n title\n }\n </label>\n );\n","'use client'\nimport { useEffect, useRef, useState } from 'react';\n\nimport { cn } from '@utils/cn';\n\nimport { FilterButton } from './FilterButton';\nimport { FilterItem } from './FilterItem';\n\ninterface IFilterProps {\n filters: string[];\n selectedFilters: string[];\n selectedFiltersText: string;\n setFilters: (filter: string[]) => void;\n callBack?: () => void;\n filtersText: string;\n resetText: string;\n}\n\nexport const Filters = ({ filters, setFilters, selectedFilters, selectedFiltersText, filtersText, resetText }: IFilterProps) => {\n\n\n const content = useRef<HTMLDivElement>(null);\n\n const [showFilters, setShowFilters] = useState(false);\n\n const onFilter = (filter: string) => {\n if (selectedFilters.includes(filter)) setFilters(selectedFilters.filter((f) => f !== filter));\n else setFilters([...selectedFilters, filter]);\n };\n\n useEffect(() => {\n setShowFilters(selectedFilters.length > 0);\n }, [selectedFilters]);\n\n const onReset = () => {\n setFilters([]);\n };\n\n return (\n <div className=\"grid justify-end gap-3\" data-testid=\"filters-component\">\n <div className=\"flex items-center justify-end gap-3\">\n <span className=\"text-sm font-medium\" data-testid=\"filters-title\">\n {selectedFiltersText}\n </span>\n <FilterButton\n onClick={() => setShowFilters(!showFilters)}\n hasFilters={selectedFilters.length > 0}\n reset={() => onReset()}\n filtersText={filtersText}\n resetText={resetText}\n />\n </div>\n <div\n ref={content}\n data-testid=\"filters-items-container\"\n data-visible={showFilters}\n className={cn(\n 'flex flex-wrap justify-end gap-2 overflow-hidden opacity-0 ease-in-out [transition:max-height_0.4s,opacity_0.3s]',\n showFilters && 'opacity-100',\n )}\n style={{\n maxHeight: showFilters ? `${content?.current?.scrollHeight}px` : '0px',\n }}\n >\n {filters.map((filter) => (\n <FilterItem\n key={filter}\n title={filter}\n isActive={selectedFilters.includes(filter)}\n onClick={() => onFilter(filter)}\n />\n ))}\n </div>\n </div>\n );\n};\n","'use client'\nimport { type SVGProps } from 'react';\nexport const GoogleAppButtonIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n viewBox=\"0 0 224 66\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n data-testid=\"googleAppButtonIcon\"\n data-component=\"googleAppButtonIcon\"\n {...props}\n >\n <g data-testid=\"google-app-icon-g\" clipPath=\"url(#clip0_890_9261)\">\n <path\n data-testid=\"google-app-icon-path\"\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M215.718 65.8286H8.73944C4.17466 65.8286 0.457031 62.1186 0.457031 57.6V8.22857C0.457031 3.69363 4.17466 0 8.73944 0H215.718C220.278 0 224 3.69363 224 8.22857V57.6C224 62.1186 220.278 65.8286 215.718 65.8286Z\"\n fill=\"#1B1C1E\"\n />\n <path\n data-testid=\"google-app-icon-path\"\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M215.718 1.31739C219.545 1.31739 222.679 4.42415 222.679 8.22857V57.6C222.679 61.4045 219.566 64.5112 215.718 64.5112H8.73944C4.91079 64.5112 1.77712 61.4045 1.77712 57.6V8.22857C1.77712 4.42415 4.89022 1.31739 8.73944 1.31739H215.718ZM215.718 0H8.73944C4.17466 0 0.457031 3.71004 0.457031 8.22857V57.6C0.457031 62.1349 4.17466 65.8286 8.73944 65.8286H215.718C220.278 65.8286 224 62.1349 224 57.6V8.22857C224 3.71004 220.278 0 215.718 0Z\"\n fill=\"#A6A6A6\"\n />\n <path\n d=\"M118.22 21.776C116.727 21.776 115.469 21.2549 114.474 20.2288C113.487 19.2316 112.936 17.8567 112.96 16.4531C112.96 14.9551 113.47 13.687 114.474 12.6815C115.465 11.6555 116.723 11.1343 118.216 11.1343C119.692 11.1343 120.951 11.6555 121.963 12.6815C122.966 13.7198 123.476 14.988 123.476 16.4531C123.459 17.9552 122.95 19.2234 121.963 20.2246C120.971 21.259 119.713 21.776 118.22 21.776ZM73.8021 21.776C72.3422 21.776 71.0756 21.2631 70.0392 20.2493C69.0111 19.2397 68.4888 17.9634 68.4888 16.4572C68.4888 14.9511 69.0111 13.6747 70.0392 12.6651C71.055 11.6514 72.3216 11.1384 73.8021 11.1384C74.5258 11.1384 75.2291 11.282 75.9035 11.5734C76.5657 11.8566 77.1044 12.2424 77.5033 12.7143L77.6019 12.8334L76.4875 13.925L76.3723 13.7896C75.7431 13.0427 74.9001 12.6774 73.7856 12.6774C72.7904 12.6774 71.9227 13.0303 71.2071 13.728C70.4875 14.4298 70.1215 15.3491 70.1215 16.4613C70.1215 17.5735 70.4875 18.4928 71.2071 19.1946C71.9227 19.8923 72.7904 20.2452 73.7856 20.2452C74.8466 20.2452 75.739 19.8923 76.434 19.1946C76.8453 18.7842 77.1002 18.2096 77.1908 17.4832H73.617V15.9483H78.7246L78.7451 16.0879C78.7822 16.3464 78.8192 16.6131 78.8192 16.8594C78.8192 18.2753 78.3916 19.4203 77.5443 20.2658C76.5821 21.2671 75.3237 21.776 73.8021 21.776ZM132.86 21.5585H131.285L126.462 13.8553L126.503 15.2424V21.5544H124.928V11.3559H126.725L126.774 11.4339L131.31 18.6897L131.269 17.3068V11.3559H132.86V21.5585ZM106.385 21.5585H104.789V12.8908H102.021V11.3559H109.148V12.8908H106.381V21.5585H106.385ZM100.722 21.5585H99.1305V11.3559H100.722V21.5585ZM91.7774 21.5585H90.1859V12.8908H87.4183V11.3559H94.5451V12.8908H91.7774V21.5585ZM86.4107 21.542H80.3079V11.3559H86.4107V12.8908H81.9035V15.6897H85.9706V17.2082H81.9035V20.0071H86.4107V21.542ZM115.642 19.1741C116.353 19.8841 117.217 20.2411 118.22 20.2411C119.252 20.2411 120.095 19.8923 120.799 19.1741C121.498 18.4763 121.851 17.5612 121.851 16.4572C121.851 15.3532 121.498 14.4339 120.803 13.7404C120.091 13.0303 119.224 12.6733 118.224 12.6733C117.192 12.6733 116.349 13.0221 115.65 13.7404C114.951 14.438 114.597 15.3532 114.597 16.4572C114.597 17.5612 114.947 18.4805 115.642 19.1741Z\"\n fill=\"white\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M112.812 35.8035C108.926 35.8035 105.776 38.7462 105.776 42.8051C105.776 46.8269 108.947 49.8065 112.812 49.8065C116.699 49.8065 119.849 46.8434 119.849 42.8051C119.849 38.7462 116.699 35.8035 112.812 35.8035ZM112.812 47.0322C110.686 47.0322 108.856 45.2757 108.856 42.7886C108.856 40.2646 110.69 38.545 112.812 38.545C114.939 38.545 116.769 40.2646 116.769 42.7886C116.773 45.292 114.939 47.0322 112.812 47.0322ZM97.4608 35.8035C93.5746 35.8035 90.4244 38.7462 90.4244 42.8051C90.4244 46.8269 93.5952 49.8065 97.4608 49.8065C101.347 49.8065 104.497 46.8434 104.497 42.8051C104.497 38.7462 101.343 35.8035 97.4608 35.8035ZM97.4608 47.0322C95.3347 47.0322 93.5046 45.2757 93.5046 42.7886C93.5046 40.2646 95.3388 38.545 97.4608 38.545C99.5869 38.545 101.417 40.2646 101.417 42.7886C101.417 45.292 99.5869 47.0322 97.4608 47.0322ZM79.1934 37.9417V40.9048H86.3203C86.1022 42.567 85.5512 43.7941 84.7082 44.6354C83.6635 45.6778 82.0516 46.8106 79.2098 46.8106C74.8302 46.8106 71.4045 43.2811 71.4045 38.9103C71.4045 34.5395 74.8302 31.0101 79.2098 31.0101C81.5744 31.0101 83.2976 31.9417 84.5765 33.1318L86.6821 31.0305C84.9055 29.3315 82.5409 28.0305 79.2263 28.0305C73.2181 28.0305 68.1763 32.9143 68.1763 38.8939C68.1763 44.8899 73.2139 49.7572 79.2263 49.7572C82.4709 49.7572 84.9055 48.6984 86.8302 46.7039C88.7917 44.7462 89.4127 41.9843 89.4127 39.7557C89.4127 39.0622 89.3594 38.4383 89.2483 37.9089H79.1893C79.1934 37.9048 79.1934 37.9417 79.1934 37.9417ZM153.912 40.2482C153.325 38.6764 151.547 35.7872 147.903 35.7872C144.292 35.7872 141.29 38.623 141.29 42.7886C141.29 46.7202 144.259 49.79 148.253 49.79C151.461 49.79 153.329 47.8324 154.097 46.6833L151.716 45.091C150.926 46.2606 149.829 47.0281 148.269 47.0281C146.695 47.0281 145.592 46.314 144.86 44.9062L154.241 41.028C154.241 41.0321 153.912 40.2482 153.912 40.2482ZM144.346 42.5875C144.272 39.883 146.452 38.5081 148.01 38.5081C149.24 38.5081 150.265 39.1114 150.613 39.9896L144.346 42.5875ZM136.726 49.3715H139.806V28.8021H136.726V49.3715ZM131.668 37.359H131.557C130.862 36.5341 129.542 35.7872 127.856 35.7872C124.356 35.7872 121.132 38.8611 121.132 42.8092C121.132 46.7408 124.34 49.7778 127.856 49.7778C129.521 49.7778 130.862 49.0267 131.557 48.1854H131.668V49.1908C131.668 51.8627 130.237 53.3031 127.93 53.3031C126.042 53.3031 124.87 51.9488 124.393 50.8161L121.716 51.9323C122.485 53.7792 124.537 56.0651 127.926 56.0651C131.536 56.0651 134.596 53.9434 134.596 48.7682V36.2057H131.684V37.359C131.688 37.359 131.668 37.359 131.668 37.359ZM128.131 47.0322C126.005 47.0322 124.228 45.2592 124.228 42.8092C124.228 40.3385 126.005 38.5491 128.131 38.5491C130.237 38.5491 131.869 40.359 131.869 42.8092C131.89 45.2592 130.241 47.0322 128.131 47.0322ZM168.335 28.8021H160.969V49.3715H164.049V41.582H168.339C171.747 41.582 175.099 39.1155 175.099 35.2002C175.099 31.2851 171.759 28.8021 168.335 28.8021ZM168.425 38.7091H164.045V31.6503H168.425C170.732 31.6503 172.035 33.5504 172.035 35.1798C172.035 36.7926 170.716 38.7091 168.425 38.7091ZM187.444 35.7666C185.208 35.7666 182.901 36.7557 181.946 38.9103L184.677 40.043C185.265 38.9103 186.343 38.5246 187.481 38.5246C189.078 38.5246 190.689 39.4766 190.726 41.1757V41.3932C190.175 41.0813 188.967 40.6053 187.518 40.6053C184.57 40.6053 181.58 42.214 181.58 45.2304C181.58 47.9925 183.998 49.7655 186.691 49.7655C188.761 49.7655 189.899 48.8339 190.611 47.7544H190.722V49.3468H193.691V41.4671C193.691 37.7981 190.961 35.7666 187.444 35.7666ZM187.058 47.0322C186.051 47.0322 184.64 46.5397 184.64 45.2757C184.64 43.6833 186.401 43.08 187.901 43.08C189.259 43.08 189.899 43.3713 190.706 43.7736C190.483 45.6203 188.921 47.0158 187.058 47.0322ZM204.524 36.2057L200.987 45.1278H200.876L197.212 36.2057H193.897L199.395 48.6779L196.261 55.6095H199.469L207.928 36.2057H204.524ZM176.798 49.3715H179.878V28.8021H176.798V49.3715Z\"\n fill=\"white\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M17.6631 12.3982C17.1862 12.9112 16.9106 13.695 16.9106 14.7211V51.1114C16.9106 52.1374 17.1862 52.9213 17.6796 53.4138L17.8071 53.5246L38.2376 33.1358V32.6802L17.7907 12.2874L17.6631 12.3982Z\"\n fill=\"url(#paint0_linear_890_9261)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M45.036 39.9525L38.2217 33.1521V32.6761L45.036 25.8757L45.184 25.966L53.2443 30.5379C55.5515 31.8347 55.5515 33.977 53.2443 35.2903L45.184 39.8622L45.036 39.9525Z\"\n fill=\"url(#paint1_linear_890_9261)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M45.1839 39.8624L38.2216 32.9143L17.6636 53.4303C18.4161 54.2347 19.6786 54.3251 21.0893 53.5411L45.1839 39.8624Z\"\n fill=\"url(#paint2_linear_890_9261)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M45.1839 25.9663L21.0893 12.3081C19.6786 11.5037 18.412 11.6145 17.6636 12.4189L38.2216 32.9144L45.1839 25.9663Z\"\n fill=\"url(#paint3_linear_890_9261)\"\n />\n <path\n opacity={0.2}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M45.0356 39.7146L21.1054 53.2826C19.7689 54.05 18.5763 53.9967 17.8072 53.299L17.6797 53.4261L17.8072 53.537C18.5763 54.2306 19.7689 54.2881 21.1054 53.5206L45.2001 39.8623L45.0356 39.7146Z\"\n fill=\"#1B1C1E\"\n />\n <path\n opacity={0.12}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M53.2441 35.0525L45.0151 39.7147L45.1633 39.8624L53.2235 35.2906C54.3791 34.6339 54.9466 33.772 54.9466 32.9143C54.8768 33.7023 54.2887 34.4492 53.2441 35.0525Z\"\n fill=\"#1B1C1E\"\n />\n <path\n opacity={0.25}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M21.0888 12.5459L53.2438 30.776C54.2884 31.3629 54.8765 32.1303 54.967 32.9142C54.967 32.0565 54.3993 31.1946 53.2438 30.538L21.0888 12.3079C18.7817 10.9905 16.9106 12.0904 16.9106 14.7211V14.9591C16.9106 12.3243 18.7817 11.245 21.0888 12.5459Z\"\n fill=\"white\"\n />\n </g>\n <defs data-testid=\"google-app-icon-defs\">\n <linearGradient\n id=\"paint0_linear_890_9261\"\n x1={36.405}\n y1={14.3285}\n x2={3.68775}\n y2={23.0638}\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#00A0FF\" />\n <stop offset={0.00657} stopColor=\"#00A1FF\" />\n <stop offset={0.2601} stopColor=\"#00BEFF\" />\n <stop offset={0.5122} stopColor=\"#00D2FF\" />\n <stop offset={0.7604} stopColor=\"#00DFFF\" />\n <stop offset={1} stopColor=\"#00E3FF\" />\n </linearGradient>\n <linearGradient\n id=\"paint1_linear_890_9261\"\n x1={56.253}\n y1={32.9142}\n x2={16.3504}\n y2={32.9142}\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#FFE000\" />\n <stop offset={0.4087} stopColor=\"#FFBD00\" />\n <stop offset={0.7754} stopColor=\"#FFA500\" />\n <stop offset={1} stopColor=\"#FF9C00\" />\n </linearGradient>\n <linearGradient\n id=\"paint2_linear_890_9261\"\n x1={41.3981}\n y1={36.6951}\n x2={15.2049}\n y2={80.8704}\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#FF3A44\" />\n <stop offset={1} stopColor=\"#C31162\" />\n </linearGradient>\n <linearGradient\n id=\"paint3_linear_890_9261\"\n x1={12.4868}\n y1={0.294332}\n x2={24.1726}\n y2={20.0238}\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#32A071\" />\n <stop offset={0.0685} stopColor=\"#2DA771\" />\n <stop offset={0.4762} stopColor=\"#15CF74\" />\n <stop offset={0.8009} stopColor=\"#06E775\" />\n <stop offset={1} stopColor=\"#00F076\" />\n </linearGradient>\n <clipPath id=\"clip0_890_9261\">\n <rect width={223.543} height={65.8286} fill=\"white\" transform=\"translate(0.457031)\" />\n </clipPath>\n </defs>\n </svg>\n);","'use client'\nimport { forwardRef } from 'react';\n\nimport { cn } from '@utils/cn';\n\nimport { UnstyledButton } from '../unstyledButton';\n\ninterface IHamburgerMenuButtonProps {\n setMenuState: () => void;\n menuState: boolean;\n}\n\nexport const HamburgerMenuButton = forwardRef<HTMLButtonElement, IHamburgerMenuButtonProps>(\n ({ menuState, setMenuState }: IHamburgerMenuButtonProps, ref) => {\n const defaultClasses = cn('absolute h-[2px] bg-white duration-150');\n\n return (\n <UnstyledButton\n onClick={setMenuState}\n className=\"relative h-4 w-6\"\n name=\"hamburgerMenuButton\"\n data-component=\"hamburgerMenuButton\"\n aria-label=\"Mobile Menu button\"\n ref={ref}\n >\n <span\n data-testid=\"hamburger-line-top\"\n className={cn(defaultClasses, 'top-0 left-0 w-6', {\n 'translation top-1/2 translate-y-[-50%] rotate-45 transform duration-150 ease-in': menuState,\n })}\n />\n <span\n data-testid=\"hamburger-line-middle\"\n className={cn(defaultClasses, 'top-1/2 right-0 w-4 translate-y-[-50%]', {\n 'translation opacity-0 ease-in': menuState,\n })}\n />\n <span\n data-testid=\"hamburger-line-bottom\"\n className={cn(defaultClasses, 'bottom-0 left-0 w-6', {\n 'translation top-1/2 translate-y-[-50%] -rotate-45 transform duration-150 ease-in': menuState,\n })}\n />\n </UnstyledButton>\n );\n },\n);\n\nHamburgerMenuButton.displayName = 'HamburgerMenuButton';\n","'use client'\ninterface HRProps {\n className?: string;\n}\n\nexport const HR = ({ className }: HRProps) => (\n <hr data-component=\"hr\" className={`h-px w-full border-none bg-gray-200 ${className}`} />\n);\n\nHR.displayName = 'HR';\n","'use client'\nimport * as React from 'react';\n\nimport { cn } from '@utils/cn';\n\ninterface IIsland extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n noShadow?: boolean;\n noPadding?: boolean;\n}\n\nexport const Island = ({ children, className, noShadow = false, noPadding = false, ...props }: IIsland) => (\n <div\n data-testid=\"island\"\n data-component=\"island\"\n className={cn(\n 'relative bg-white px-5 py-5 md:px-10 md:py-9',\n {\n 'shadow-[0_-0.5rem_2rem_rgba(38,41,92,0.04)]': !noShadow,\n 'drop-shadow-none': noShadow,\n 'md:px-0 md:py-0': noPadding,\n },\n className,\n )}\n {...props}\n >\n {children}\n </div>\n);\n\nIsland.displayName = 'Island';\n","'use client';\nimport { Fragment, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { buttonVariants } from '@components/button/buttonVariants';\nimport { Tooltip } from '@components/tooltip';\nimport { UnstyledButton } from '@components/unstyledButton';\nimport { IconDotsVertical } from '@tabler/icons-react';\nimport { cn } from '@utils/cn';\n\nexport interface KebabMenuProps {\n title?: string;\n tooltip?: string;\n disabled?: boolean;\n content: {\n key: number;\n onClick: () => void;\n title: string;\n disabled?: boolean;\n tooltip?: string;\n }[];\n styleVariant?: 'default' | 'small';\n}\n\nexport const KebabMenu = ({ title, tooltip, content, disabled = false, styleVariant = 'default' }: KebabMenuProps) => {\n const [isOpen, setIsOpen] = useState(false);\n const menuRef = useRef<HTMLDivElement>(null);\n const defaultStyling =\n 'text-black flex items-center justify-self-end gap-1 bg-transparent font-medium py-1 h-9 min-w-9 cursor-pointer px-0';\n\n const handleToggle = () => {\n if (!disabled) setIsOpen((prev) => !prev);\n };\n\n const handleItemClick = (onClick: () => void) => {\n if (!disabled) {\n onClick();\n setIsOpen(false);\n }\n };\n\n const handleClickOutside = (event: MouseEvent) => {\n if (menuRef.current && !menuRef.current.contains(event.target as Node)) setIsOpen(false);\n };\n\n useEffect(() => {\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, []);\n\n const button = useMemo(\n () => (\n <UnstyledButton\n aria-label=\"Options Menu\"\n className={cn(buttonVariants['secondary'], defaultStyling, {\n 'md:pr-3.5 md:pl-5': title,\n 'h-7 min-w-7': styleVariant === 'small',\n })}\n disabled={disabled}\n onClick={handleToggle}\n >\n {title && <span className=\"hidden md:block\">{title}</span>}\n <IconDotsVertical size={20} stroke={1} fill=\"black\" />\n </UnstyledButton>\n ),\n [title, styleVariant, disabled, handleToggle],\n );\n\n return (\n <>\n <div\n data-component=\"kebabMenu\"\n data-testid=\"kebab-menu\"\n ref={menuRef}\n data-tooltip-id={title}\n data-tooltip-content={title}\n >\n {tooltip ? (\n <Tooltip passedOpen={false} size=\"sm\" content={tooltip}>\n {button}\n </Tooltip>\n ) : (\n button\n )}\n {isOpen && (\n <div className=\"relative\">\n <div className=\"absolute right-0 z-10 mt-2 w-auto min-w-[200px] rounded-md border-[0.0625rem] border-gray-200 bg-white p-1 shadow-md\">\n {content.map((c, index) => {\n const button = (\n <UnstyledButton\n onClick={() => handleItemClick(c.onClick)}\n className={\n 'w-full rounded-md px-4 py-2 text-left text-sm font-normal whitespace-nowrap hover:bg-gray-50'\n }\n aria-label=\"Options Menu Item\"\n disabled={c.disabled}\n >\n {c.title}\n </UnstyledButton>\n );\n\n return c.tooltip ? (\n <Tooltip key={index} passedOpen={false} size=\"sm\" content={c.tooltip}>\n {button}\n </Tooltip>\n ) : (\n <Fragment key={index}>{button}</Fragment>\n );\n })}\n </div>\n </div>\n )}\n </div>\n </>\n );\n};\n\nKebabMenu.displayName = 'KebabMenu';\n","'use client'\n\nimport { cn } from '@utils/cn';\n\ninterface LabelProps {\n children: React.ReactNode | string | React.ReactNode[];\n htmlFor?: string;\n className?: string;\n}\n\nexport const Label = ({ children, className, ...props }: LabelProps) => (\n <label\n data-component=\"label\"\n data-testid=\"label\"\n className={cn('flex items-center gap-1 text-xs font-medium text-black', className)}\n {...props}\n >\n {children}\n </label>\n);\n","'use client'\nexport const Loader = () => (\n <div data-testid=\"loader-container\" className=\"inline-flex h-full w-auto items-center justify-center\">\n <div data-testid=\"loader\" className=\"loader\"></div>\n </div>\n);\n\nLoader.displayName = 'Loader';\n","'use client'\nimport { type SVGProps } from 'react';\nexport const LogoBlack = (props: SVGProps<SVGSVGElement>) => (\n <svg viewBox=\"0 0 110 68\" fill=\"none\" data-component=\"logo\" data-testid=\"logo\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g clipPath=\"url(#clip0_2069_36940)\">\n <path\n data-testid=\"logo-path\"\n d=\"M109.937 0C109.936 0.125784 109.934 0.251569 109.934 0.377356C109.934 2.23291 109.934 4.08846 109.934 5.94402C109.934 6.33238 109.962 6.30387 109.579 6.30497C109.305 6.30575 109.031 6.30512 108.757 6.30512C72.6623 6.30512 36.5679 6.30514 0.473486 6.30452C0.315656 6.30452 0.157829 6.29536 0 6.29047C2.53566e-06 4.19365 2.53566e-06 2.09682 2.53566e-06 0C36.6456 0 73.2911 0 109.937 0Z\"\n fill=\"#10D1BB\"\n />\n <path\n d=\"M0 61.7095C0.14758 61.7114 0.295163 61.715 0.442743 61.715C36.7629 61.7152 73.083 61.7152 109.403 61.7156C109.551 61.7156 109.698 61.7203 109.845 61.7241C109.884 61.7251 109.924 61.7667 109.926 61.806C109.929 61.9106 109.934 62.0152 109.934 62.1199C109.934 63.9646 109.934 65.8094 109.934 67.6541C109.934 67.7694 109.936 67.8847 109.937 67.9999H0C0 65.9031 0 63.8063 0 61.7095Z\"\n fill=\"#10D1BB\"\n />\n <path\n d=\"M110 32.522C109.927 32.5249 109.853 32.5303 109.779 32.5303C108.324 32.5308 106.869 32.5307 105.413 32.5306C105.35 32.5306 105.287 32.5304 105.223 32.529C105.157 32.5275 105.122 32.4978 105.121 32.4394C105.119 32.3556 105.118 32.2718 105.118 32.188C105.117 31.8001 105.118 31.4123 105.117 31.0245C105.117 30.9721 105.115 30.9198 105.113 30.8675C105.112 30.8415 105.063 30.8171 105.041 30.8327C104.949 30.9007 104.856 30.9686 104.764 31.0379C104.224 31.4449 103.646 31.7859 103.022 32.0492C102.39 32.3165 101.734 32.5011 101.052 32.5953C100.56 32.6632 100.066 32.7077 99.5705 32.6874C99.1707 32.671 98.7711 32.6489 98.3725 32.5998C97.4581 32.4871 96.573 32.2648 95.7179 31.9281C93.6794 31.1254 92.0923 29.7867 90.9473 27.9302C90.3094 26.8961 89.8495 25.7877 89.578 24.6048C89.4773 24.1661 89.4082 23.7214 89.3539 23.2737C89.3045 22.867 89.2868 22.4589 89.2649 22.0512C89.231 21.422 89.2759 20.7951 89.3513 20.1695C89.5478 18.538 90.1241 17.0466 91.0342 15.6819C92.0516 14.1562 93.3963 12.9896 95.0259 12.1434C95.8695 11.7054 96.7528 11.372 97.6806 11.1603C98.1322 11.0573 98.5892 10.9845 99.0508 10.9342C99.7875 10.8538 100.525 10.8585 101.262 10.8942C101.567 10.909 101.87 10.9511 102.173 10.9941C102.622 11.0579 103.065 11.147 103.502 11.2658C105.215 11.7319 106.706 12.5796 107.955 13.8394C108.416 14.3047 108.805 14.825 109.124 15.3962C109.149 15.4415 109.17 15.4898 109.187 15.5388C109.192 15.5546 109.185 15.5843 109.173 15.5951C109.094 15.6637 109.013 15.7311 108.93 15.7946C108.319 16.2599 107.708 16.724 107.096 17.1887C106.393 17.7233 105.69 18.2582 104.986 18.7927C104.936 18.8307 104.884 18.8661 104.832 18.902C104.809 18.9182 104.769 18.9066 104.753 18.8793C104.711 18.8068 104.67 18.7337 104.628 18.6612C104.48 18.4067 104.311 18.1665 104.116 17.9449C103.395 17.1243 102.499 16.5837 101.447 16.2918C101.039 16.1784 100.62 16.1224 100.198 16.1226C98.7114 16.1235 97.5022 16.7064 96.5777 17.863C96.0995 18.4614 95.7819 19.143 95.5733 19.8748C95.3441 20.6791 95.2764 21.5021 95.3325 22.3337C95.3779 23.0048 95.504 23.661 95.7537 24.2908C96.0357 25.0019 96.4293 25.6395 96.99 26.1674C97.6084 26.7496 98.3353 27.1286 99.169 27.3097C99.7098 27.4272 100.256 27.457 100.804 27.4098C101.855 27.3194 102.812 26.9652 103.674 26.3591C104.071 26.0798 104.439 25.7668 104.769 25.4119C104.779 25.4019 104.773 25.3761 104.77 25.3584C104.769 25.3526 104.755 25.3452 104.747 25.3449C104.652 25.3415 104.557 25.3371 104.463 25.3371C103.482 25.3365 102.501 25.3368 101.52 25.3367C101.436 25.3367 101.352 25.3375 101.267 25.3361C101.154 25.3342 101.126 25.304 101.124 25.1813C101.123 25.0975 101.124 25.0136 101.124 24.9298C101.124 24.1227 101.124 23.3156 101.124 22.5085C101.124 22.0998 101.124 21.691 101.124 21.2822C101.124 21.23 101.127 21.1774 101.135 21.1259C101.138 21.1094 101.159 21.0915 101.176 21.0826C101.193 21.0737 101.216 21.0728 101.237 21.0723C101.3 21.0708 101.363 21.0709 101.426 21.0709C104.232 21.0708 107.037 21.0708 109.842 21.0709C109.895 21.0709 109.947 21.0725 110 21.0733V32.522Z\"\n fill=\"black\"\n />\n <path\n d=\"M58.423 45.7755C58.423 49.2346 58.4236 52.6936 58.4223 56.1527C58.4222 56.5883 58.4795 56.5365 58.0371 56.537C56.6977 56.5385 55.3583 56.5376 54.0189 56.5375C53.9346 56.5375 53.8502 56.536 53.7659 56.5363C53.7209 56.5364 53.6839 56.5194 53.6546 56.4872C53.6193 56.4485 53.5848 56.409 53.5518 56.3684C51.7619 54.1684 49.972 51.9684 48.1824 49.7681C47.2015 48.562 46.2211 47.3555 45.2402 46.1493C45.2204 46.1249 45.1983 46.1023 45.1769 46.0791C45.1483 46.0482 45.1912 46.0812 45.149 46.0814C45.1404 46.0814 45.1264 46.0881 45.1242 46.0947C45.1178 46.1144 45.1132 46.1355 45.113 46.1561C45.1116 46.2609 45.1114 46.3657 45.1114 46.4706C45.1114 49.6885 45.1114 52.9065 45.1112 56.1245C45.1112 56.2292 45.1095 56.3339 45.1067 56.4386C45.1052 56.4907 45.0583 56.5336 45.0027 56.5352C44.9289 56.5372 44.8551 56.5375 44.7813 56.5375C43.0095 56.5376 41.2377 56.5375 39.4659 56.5375C39.4026 56.5375 39.3394 56.5376 39.2761 56.5367C39.1818 56.5353 39.1297 56.5097 39.1317 56.38C39.133 56.2961 39.1315 56.2123 39.1315 56.1284C39.1315 49.2313 39.1312 42.3341 39.1322 35.437C39.1323 34.958 39.0683 35.0146 39.5454 35.014C40.832 35.0123 42.1187 35.0134 43.4054 35.0134C43.4792 35.0134 43.5533 35.0175 43.6268 35.0126C43.7422 35.0049 43.8209 35.0486 43.894 35.1412C44.5904 36.0232 45.2918 36.9011 45.991 37.7808C47.86 40.1324 49.7286 42.4842 51.5974 44.836C51.8326 45.132 52.0675 45.4282 52.304 45.7232C52.3363 45.7636 52.3767 45.7976 52.4149 45.833C52.4175 45.8354 52.4369 45.8268 52.4412 45.8192C52.4504 45.803 52.4601 45.7842 52.4605 45.7662C52.4625 45.6719 52.462 45.5776 52.462 45.4832C52.462 42.129 52.462 38.7748 52.462 35.4205C52.462 35.3262 52.4616 35.2319 52.4627 35.1375C52.4638 35.0429 52.4935 35.0165 52.5996 35.0143C52.6523 35.0132 52.7051 35.0134 52.7578 35.0134C54.5507 35.0134 56.3436 35.0134 58.1364 35.0134C58.1892 35.0134 58.2419 35.0132 58.2946 35.0146C58.3975 35.0173 58.4211 35.0414 58.4224 35.1468C58.4236 35.2411 58.423 35.3355 58.423 35.4298C58.423 38.8784 58.423 42.327 58.423 45.7755Z\"\n fill=\"black\"\n />\n <path\n d=\"M86.605 21.7644C86.605 25.2233 86.6059 28.6822 86.604 32.1411C86.6037 32.59 86.6704 32.5287 86.2283 32.5294C84.8784 32.5316 83.5285 32.5303 82.1786 32.5301C82.0943 32.5301 82.01 32.5283 81.9256 32.5274C81.8803 32.5269 81.8462 32.5057 81.8183 32.4716C81.6121 32.2196 81.405 31.9686 81.1996 31.7161C78.6611 28.5951 76.1229 25.4739 73.584 22.3532C73.5051 22.2562 73.42 22.1643 73.3365 22.071C73.3339 22.0681 73.3124 22.0745 73.3087 22.0814C73.2994 22.0983 73.2904 22.1179 73.29 22.1365C73.288 22.2308 73.2887 22.3252 73.2887 22.4195C73.2887 25.6583 73.2887 28.8971 73.2885 32.1359C73.2885 32.2407 73.2865 32.3454 73.2842 32.4502C73.2834 32.4894 73.2446 32.5242 73.2006 32.5256C73.1269 32.528 73.0532 32.5299 72.9794 32.53C72.6525 32.5305 72.3256 32.5302 71.9986 32.5302C70.5539 32.5302 69.1091 32.5303 67.6643 32.5299C67.5695 32.5299 67.4746 32.5278 67.3801 32.5218C67.3643 32.5208 67.3452 32.4971 67.3365 32.4795C67.3277 32.4618 67.3277 32.4386 67.3274 32.4178C67.3263 32.3235 67.3262 32.2292 67.3262 32.1348C67.3262 25.2275 67.3261 18.3201 67.3264 11.4127C67.3264 11.3081 67.3289 11.2034 67.3317 11.0987C67.3329 11.0558 67.3695 11.0185 67.4099 11.0169C67.4625 11.0149 67.5152 11.0134 67.5679 11.0134C68.9705 11.0132 70.3731 11.0133 71.7758 11.0134C71.8179 11.0134 71.8601 11.0151 71.9023 11.015C71.9482 11.0148 71.9832 11.0375 72.0108 11.07C72.0652 11.134 72.1174 11.1998 72.1696 11.2655C74.8164 14.5952 77.463 17.925 80.1098 21.2546C80.2601 21.4437 80.4126 21.631 80.563 21.82C80.5794 21.8406 80.5942 21.847 80.6159 21.8295C80.6228 21.8239 80.6309 21.8147 80.6311 21.8069C80.6344 21.7023 80.6384 21.5977 80.6384 21.4932C80.6388 18.9776 80.6387 16.462 80.6387 13.9464C80.6387 13.0869 80.6385 12.2274 80.639 11.3679C80.6391 11.2738 80.6398 11.1793 80.6487 11.0857C80.6508 11.0627 80.6829 11.0295 80.7066 11.024C80.7571 11.0124 80.811 11.0136 80.8636 11.0136C82.7091 11.0132 84.5547 11.0133 86.4002 11.0135C86.4424 11.0135 86.4852 11.0115 86.5264 11.0181C86.5562 11.0229 86.5855 11.0403 86.5926 11.0746C86.5988 11.1051 86.6036 11.1365 86.6041 11.1675C86.6057 11.2619 86.605 11.3562 86.605 11.4505C86.605 14.8885 86.605 18.3264 86.605 21.7644Z\"\n fill=\"black\"\n />\n <path\n d=\"M41.9507 21.8205C41.9262 22.311 41.9056 22.7602 41.8521 23.2085C41.5771 25.5158 40.3731 28.0879 38.2308 29.9621C36.9961 31.0423 35.5907 31.8235 34.0114 32.2898C33.5465 32.4271 33.0729 32.5215 32.5936 32.5959C31.7766 32.7227 30.955 32.7444 30.1333 32.6965C28.6095 32.6076 27.1678 32.2159 25.8225 31.4882C23.2223 30.0817 21.4701 27.9686 20.506 25.197C20.3129 24.6419 20.1732 24.0726 20.0774 23.494C19.9485 22.7162 19.9029 21.9314 19.9506 21.1445C20.0284 19.8579 20.3239 18.6212 20.8524 17.4425C21.985 14.9166 23.8264 13.0814 26.3334 11.897C27.1361 11.5177 27.9766 11.2508 28.8487 11.0873C29.2519 11.0117 29.6593 10.9575 30.0706 10.9322C30.3969 10.9121 30.7224 10.8887 31.0497 10.8897C31.5566 10.8911 32.0599 10.9341 32.5625 10.996C33.2759 11.0839 33.972 11.2432 34.6467 11.4879C36.2464 12.068 37.6436 12.9622 38.8206 14.1868C40.1807 15.602 41.0935 17.2655 41.5909 19.1578C41.727 19.6758 41.8225 20.2007 41.8805 20.7314C41.9214 21.1059 41.9301 21.4839 41.9507 21.8205ZM30.9468 27.4555C31.3254 27.4496 31.7251 27.4288 32.1178 27.3407C32.9847 27.1464 33.7225 26.7216 34.3408 26.092C34.765 25.6598 35.0796 25.1531 35.3175 24.5998C35.6822 23.7517 35.8479 22.8603 35.8797 21.9426C35.891 21.618 35.8726 21.2943 35.8389 20.9701C35.791 20.5098 35.7016 20.0595 35.5673 19.618C35.348 18.8974 35.0037 18.2423 34.4927 17.6823C33.679 16.7904 32.6682 16.2788 31.4594 16.1777C30.9976 16.1391 30.5337 16.1426 30.0716 16.2161C29.7478 16.2676 29.4315 16.3393 29.1267 16.4585C28.2898 16.7857 27.6142 17.3185 27.0921 18.0445C26.522 18.8374 26.2265 19.7346 26.0768 20.6876C26.0131 21.0929 26.0027 21.5006 26.0014 21.9096C25.9993 22.5531 26.0954 23.1828 26.269 23.8007C26.4752 24.5347 26.8015 25.2113 27.2912 25.8015C27.8757 26.5061 28.6042 27.0022 29.4883 27.2659C29.957 27.4058 30.4385 27.4465 30.9468 27.4555Z\"\n fill=\"black\"\n />\n <path\n d=\"M25.5241 56.718C24.895 56.7012 24.3362 56.6802 23.7828 56.5985C22.6171 56.4265 21.5115 56.0709 20.4699 55.5188C18.0579 54.2402 16.3527 52.3317 15.3186 49.8231C15.0424 49.1531 14.8383 48.4608 14.7034 47.7502C14.6273 47.3493 14.5641 46.9452 14.5489 46.5356C14.5404 46.3052 14.515 46.0753 14.5134 45.845C14.51 45.3522 14.5445 44.8615 14.6072 44.3721C14.8212 42.7015 15.4145 41.1716 16.3461 39.7716C17.4473 38.1167 18.9145 36.8725 20.6994 35.9925C21.5048 35.5954 22.3475 35.3032 23.2272 35.1214C23.5567 35.0533 23.8902 35.0047 24.2255 34.9656C24.9826 34.8772 25.7409 34.8823 26.4994 34.9214C26.804 34.9371 27.107 34.9808 27.4093 35.027C27.7845 35.0845 28.1539 35.165 28.5202 35.2619C29.4527 35.5086 30.3231 35.8993 31.1464 36.3946C33.2557 37.6638 34.7532 39.4518 35.6915 41.7104C35.9654 42.3696 36.17 43.0509 36.31 43.7499C36.382 44.1088 36.4332 44.4716 36.4683 44.8373C36.5044 45.2138 36.5177 45.5898 36.5176 45.9672C36.5175 46.4397 36.4728 46.9081 36.406 47.3756C36.168 49.0435 35.5456 50.562 34.5936 51.9481C33.5004 53.5399 32.0681 54.7466 30.3347 55.605C29.5491 55.994 28.7291 56.2877 27.8708 56.4684C27.3245 56.5834 26.7722 56.6663 26.2122 56.6861C25.9594 56.6951 25.7067 56.7094 25.5241 56.718ZM30.4524 45.7182C30.4674 44.9881 30.3492 44.2568 30.124 43.5426C29.8973 42.8237 29.5411 42.175 29.0217 41.6224C28.4028 40.9639 27.6594 40.5086 26.7746 40.2913C26.5183 40.2284 26.2573 40.1985 25.9951 40.171C25.4015 40.1087 24.8151 40.1558 24.237 40.2888C23.4478 40.4705 22.7742 40.8661 22.1966 41.4264C21.7381 41.8713 21.3954 42.3954 21.1379 42.9758C20.7847 43.7716 20.6239 44.6117 20.5792 45.4747C20.5399 46.2331 20.6289 46.9805 20.8253 47.7143C21 48.367 21.2712 48.977 21.6653 49.5293C22.2042 50.2845 22.9071 50.8327 23.7779 51.1645C24.1237 51.2963 24.4834 51.3666 24.8512 51.4118C25.4537 51.4858 26.0493 51.4617 26.6429 51.3411C27.618 51.1431 28.4208 50.6525 29.0742 49.9162C29.4898 49.4479 29.7899 48.9085 30.0051 48.3232C30.3119 47.489 30.4642 46.6275 30.4524 45.7182Z\"\n fill=\"black\"\n />\n <path\n d=\"M44.2491 17.2909C44.2491 15.3308 44.249 13.3708 44.2493 11.4107C44.2493 11.306 44.2523 11.2013 44.2551 11.0966C44.2561 11.0577 44.2961 11.021 44.3374 11.0185C44.3689 11.0166 44.4004 11.0141 44.4319 11.0138C44.5057 11.0131 44.5796 11.0135 44.6534 11.0135C46.3724 11.0135 48.0914 11.0135 49.8104 11.0135C49.9053 11.0135 50.0003 11.0121 50.0951 11.0149C50.18 11.0174 50.2177 11.0267 50.2226 11.1514C50.2238 11.1828 50.2236 11.2143 50.2237 11.2458C50.2238 11.3191 50.2238 11.3925 50.2238 11.4659C50.2238 14.9458 50.2228 18.4257 50.2252 21.9056C50.2254 22.2513 50.2292 22.5983 50.2592 22.9423C50.3248 23.6954 50.4572 24.4357 50.7494 25.1403C50.8987 25.5001 51.0809 25.8405 51.317 26.1518C51.528 26.43 51.7756 26.6701 52.0586 26.876C52.5218 27.2132 53.0414 27.3912 53.6111 27.435C53.8639 27.4544 54.1158 27.4551 54.3694 27.4397C55.0794 27.3964 55.6967 27.1366 56.2319 26.6756C56.5209 26.4266 56.7648 26.1397 56.9652 25.8158C57.2545 25.3482 57.4553 24.8433 57.5872 24.3126C57.6883 23.9061 57.755 23.4932 57.7993 23.0755C57.8404 22.6885 57.849 22.3019 57.849 21.9142C57.8492 18.4028 57.849 14.8914 57.8495 11.3801C57.8496 11.2755 57.854 11.1708 57.8609 11.0665C57.862 11.0509 57.8867 11.0267 57.9032 11.0241C57.955 11.0161 58.008 11.014 58.0606 11.0139C58.4192 11.0132 58.7777 11.0135 59.1363 11.0135C60.5811 11.0135 62.0259 11.0134 63.4707 11.0138C63.5653 11.0139 63.6599 11.0168 63.7542 11.0231C63.7702 11.0242 63.7891 11.0466 63.7985 11.0636C63.8081 11.081 63.8108 11.1039 63.8112 11.1245C63.8128 11.2188 63.8129 11.3132 63.8129 11.4075C63.813 14.856 63.813 18.3044 63.8129 21.7529C63.8129 21.8996 63.8113 22.0464 63.8109 22.1931C63.8091 22.8539 63.7689 23.5116 63.6814 24.1676C63.5661 25.0313 63.3803 25.878 63.0997 26.7033C62.8251 27.5106 62.4513 28.2693 61.9637 28.9721C61.2894 29.9441 60.4442 30.7349 59.4293 31.3479C58.4465 31.9414 57.3894 32.3347 56.2557 32.53C55.5579 32.6503 54.8565 32.714 54.1485 32.7151C53.5998 32.7159 53.0523 32.7017 52.5063 32.6413C50.9164 32.4654 49.4543 31.9532 48.1461 31.0254C47.007 30.2175 46.1407 29.1803 45.5053 27.9469C45.1389 27.2357 44.878 26.4862 44.6841 25.7121C44.5542 25.1934 44.4557 24.6686 44.3857 24.1395C44.3458 23.8388 44.3181 23.536 44.2946 23.2328C44.2465 22.6151 44.2493 21.9971 44.2492 21.3787C44.2489 20.0161 44.2491 18.6535 44.2491 17.2909Z\"\n fill=\"black\"\n />\n <path\n d=\"M62.2285 45.7821C62.2285 42.3122 62.2283 38.8422 62.2287 35.3722C62.2288 34.9817 62.1882 35.0133 62.58 35.0133C67.4108 35.0132 72.2416 35.0132 77.0725 35.0135C77.1567 35.0135 77.2409 35.0167 77.3251 35.0198C77.3661 35.0213 77.4024 35.059 77.4034 35.1006C77.4052 35.174 77.4063 35.2473 77.4063 35.3207C77.4065 36.5472 77.4065 37.7738 77.4065 39.0003C77.4065 39.3253 77.407 39.6503 77.4059 39.9752C77.4057 40.0273 77.4014 40.0798 77.3923 40.131C77.3894 40.1476 77.3659 40.1721 77.3505 40.1731C77.2457 40.1803 77.1405 40.1852 77.0355 40.1853C74.2193 40.1858 71.4031 40.1857 68.5868 40.1859C68.4814 40.1859 68.376 40.1885 68.2705 40.1903C68.2512 40.1906 68.2133 40.2338 68.2127 40.2551C68.2115 40.297 68.2083 40.3389 68.2083 40.3807C68.208 41.2403 68.208 42.1 68.2084 42.9596C68.2084 43.0119 68.212 43.0643 68.2146 43.1166C68.2155 43.1357 68.2576 43.1774 68.2771 43.178C68.3824 43.1811 68.4877 43.186 68.593 43.186C70.7236 43.1865 72.8542 43.1864 74.9849 43.1864C75.2591 43.1864 75.5333 43.1859 75.8076 43.1868C75.8707 43.187 75.9344 43.1881 75.9966 43.197C76.0238 43.201 76.0594 43.2135 76.0617 43.2539C76.0647 43.306 76.07 43.3581 76.07 43.4102C76.0704 44.8674 76.0704 46.3246 76.0699 47.7817C76.0699 47.8339 76.0672 47.8867 76.059 47.9381C76.0563 47.9547 76.0342 47.9726 76.0166 47.9815C75.9988 47.9905 75.9757 47.9917 75.9548 47.992C75.8599 47.9932 75.765 47.9932 75.67 47.9932C73.3179 47.9933 70.9658 47.9932 68.6137 47.9934C68.5082 47.9934 68.4027 47.9946 68.2973 47.9955C68.2517 47.996 68.2136 48.0286 68.2127 48.0673C68.2113 48.1301 68.2083 48.1929 68.2083 48.2557C68.208 49.1992 68.2078 50.1427 68.2085 51.0862C68.2085 51.1592 68.2121 51.2324 68.2196 51.3049C68.2213 51.3212 68.2438 51.3399 68.2613 51.3486C68.2791 51.3575 68.3024 51.3576 68.3233 51.3578C68.4288 51.359 68.5342 51.3593 68.6397 51.3593C71.5192 51.3594 74.3988 51.3593 77.2783 51.3596C77.3837 51.3596 77.4891 51.3621 77.5946 51.3644C77.6241 51.365 77.675 51.4184 77.6758 51.4489C77.6775 51.5117 77.6787 51.5746 77.6787 51.6375C77.6788 53.1786 77.6789 54.7196 77.6786 56.2606C77.6786 56.3234 77.6761 56.3861 77.6732 56.4488C77.6717 56.4841 77.626 56.5325 77.5934 56.5333C77.4985 56.5355 77.4036 56.5373 77.3087 56.5374C75.4945 56.5376 73.6803 56.5375 71.8661 56.5375C68.7862 56.5375 65.7063 56.5375 62.6264 56.5375C62.5314 56.5375 62.4365 56.5378 62.3416 56.5357C62.2732 56.5342 62.2314 56.4878 62.23 56.4121C62.2281 56.3178 62.2285 56.2234 62.2285 56.1291C62.2285 52.6801 62.2285 49.2311 62.2285 45.7821Z\"\n fill=\"black\"\n />\n <path\n d=\"M88.4502 56.7968C87.9177 56.8204 87.4123 56.7749 86.9094 56.7242C85.5967 56.5919 84.3084 56.3298 83.0443 55.9521C82.0958 55.6687 81.1671 55.333 80.2709 54.912C79.9187 54.7465 79.573 54.5682 79.2364 54.3729C79.2091 54.357 79.1812 54.3423 79.1544 54.3257C79.1222 54.3057 79.1022 54.2474 79.1166 54.2155C79.1424 54.1583 79.1681 54.101 79.1959 54.0448C79.9715 52.4768 80.7473 50.9089 81.5235 49.3413C81.5559 49.276 81.5931 49.2129 81.6289 49.1493C81.6402 49.1292 81.6924 49.1175 81.7132 49.1296C81.804 49.1824 81.8946 49.2356 81.9851 49.2889C83.0568 49.9198 84.1744 50.4531 85.3544 50.8537C85.7827 50.9991 86.2137 51.1356 86.6561 51.2333C87.0059 51.3106 87.3583 51.3678 87.7153 51.4056C88.0941 51.4457 88.4724 51.4583 88.8523 51.4505C89.1275 51.4448 89.3979 51.4033 89.6625 51.3287C89.8161 51.2854 89.9551 51.2119 90.0732 51.1027C90.2355 50.9527 90.321 50.7713 90.3273 50.5478C90.3352 50.2683 90.2344 50.0367 90.0409 49.8408C89.9295 49.7279 89.7988 49.6396 89.6641 49.5565C89.4122 49.4012 89.1413 49.2877 88.8637 49.1876C88.339 48.9984 87.8038 48.8431 87.2681 48.689C86.2671 48.401 85.2754 48.0859 84.3116 47.6891C83.854 47.5007 83.4064 47.2923 82.9732 47.0538C82.52 46.8042 82.0938 46.516 81.7051 46.1745C80.9141 45.4795 80.4 44.6241 80.1797 43.5942C80.0516 42.9956 80.0085 42.3914 80.037 41.7822C80.0511 41.479 80.0714 41.1764 80.1139 40.8743C80.2414 39.9701 80.5385 39.1286 81.0124 38.3472C81.5104 37.526 82.1657 36.8543 82.96 36.3139C83.732 35.7885 84.5749 35.4154 85.4756 35.1714C85.9433 35.0448 86.4187 34.9575 86.901 34.8989C87.4161 34.8363 87.9317 34.8336 88.4484 34.8386C89.2528 34.8464 90.0424 34.9664 90.8265 35.1394C92.3238 35.4697 93.7525 35.9921 95.1378 36.6386C95.4521 36.7853 95.7642 36.9367 96.0773 37.086C96.1058 37.0996 96.1348 37.1123 96.1627 37.1269C96.1949 37.1437 96.2164 37.2045 96.2013 37.2357C96.174 37.2922 96.1466 37.3488 96.1174 37.4043C95.3428 38.8794 94.568 40.3543 93.7929 41.829C93.7638 41.8844 93.732 41.9385 93.7007 41.9926C93.6871 42.016 93.639 42.0331 93.6178 42.0224C93.5711 41.9988 93.5237 41.976 93.4785 41.9497C92.3649 41.3029 91.1888 40.7985 89.9586 40.4156C89.586 40.2996 89.2079 40.2049 88.8218 40.1531C88.5194 40.1125 88.2147 40.0774 87.9078 40.0845C87.6119 40.0914 87.3178 40.1152 87.0323 40.1964C86.9116 40.2308 86.7922 40.2756 86.6793 40.3302C86.3882 40.4709 86.2408 40.7153 86.2116 41.0285C86.1783 41.3867 86.2973 41.6873 86.5811 41.9185C86.7451 42.0522 86.9244 42.1619 87.1149 42.2524C87.4573 42.4149 87.8126 42.545 88.1757 42.6541C88.659 42.7994 89.1434 42.9414 89.6259 43.0893C90.3899 43.3236 91.1531 43.5605 91.8988 43.8488C92.3893 44.0385 92.8747 44.2404 93.3439 44.4783C93.8807 44.7505 94.3871 45.0695 94.8512 45.4526C95.7589 46.2021 96.3408 47.1493 96.5881 48.2966C96.7527 49.06 96.8007 49.8313 96.7302 50.6093C96.7084 50.8492 96.6877 51.0886 96.6533 51.3278C96.3927 53.1444 95.2989 54.5651 94.0962 55.3507C93.3406 55.8442 92.5219 56.1922 91.6492 56.4167C91.0877 56.5612 90.5169 56.6643 89.9407 56.7248C89.4378 56.7775 88.9329 56.8261 88.4502 56.7968Z\"\n fill=\"black\"\n />\n <path\n d=\"M7.41389 28.9104C7.41389 27.8309 7.41389 26.7514 7.41388 25.6719C7.41388 25.5986 7.41283 25.5252 7.41397 25.4518C7.41513 25.377 7.39829 25.3091 7.36172 25.2419C7.28172 25.0947 7.20971 24.9433 7.13325 24.7942C4.83885 20.3209 2.5443 15.8477 0.249818 11.3744C0.206811 11.2905 0.163152 11.207 0.121808 11.1223C0.0889406 11.055 0.107963 11.016 0.171661 11.0144C0.203278 11.0135 0.234923 11.0136 0.266558 11.0136C2.28062 11.0135 4.29468 11.013 6.30874 11.0144C6.50042 11.0145 6.5091 10.9805 6.60571 11.2135C7.18299 12.6057 7.76556 13.9956 8.34514 15.3868C8.98106 16.9132 9.61566 18.4401 10.2508 19.9668C10.2749 20.0248 10.2986 20.083 10.3229 20.141C10.3351 20.1702 10.3514 20.1947 10.3851 20.2052C10.4342 20.2206 10.4336 20.1773 10.4434 20.1546C10.675 19.6161 10.9055 19.0772 11.1355 18.5381C12.1663 16.1216 13.1968 13.7051 14.2274 11.2886C14.2562 11.2212 14.2834 11.1531 14.3134 11.0863C14.3316 11.0459 14.3637 11.0196 14.4099 11.0176C14.473 11.0149 14.5363 11.0137 14.5995 11.0137C16.5819 11.0135 18.5643 11.0135 20.5468 11.0138C20.6099 11.0138 20.673 11.0176 20.7361 11.0204C20.7604 11.0214 20.7888 11.0668 20.7788 11.09C20.7497 11.157 20.7225 11.2252 20.6889 11.29C20.2215 12.1921 19.7533 13.0938 19.2849 13.9953C17.3533 17.7134 15.4215 21.4314 13.4898 25.1494C13.4753 25.1773 13.4629 25.2063 13.4468 25.2332C13.3753 25.3532 13.3522 25.4812 13.3525 25.6217C13.3559 27.0156 13.3546 28.4095 13.3546 29.8034C13.3546 30.6313 13.3547 31.4593 13.3543 32.2872C13.3543 32.35 13.3531 32.4131 13.3462 32.4754C13.3444 32.4918 13.321 32.5159 13.3046 32.5186C13.253 32.5272 13.1999 32.5301 13.1474 32.5302C12.7046 32.531 12.2617 32.5307 11.8188 32.5307C10.448 32.5307 9.07715 32.5307 7.70632 32.5307C7.39792 32.5307 7.41354 32.5509 7.41369 32.2432C7.41422 31.1322 7.4139 30.0213 7.41389 28.9104Z\"\n fill=\"black\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_2069_36940\" data-testid=\"logo-clip-path\">\n <rect width={110} height={68} fill=\"white\" data-testid=\"logo-clip-rect\" />\n </clipPath>\n </defs>\n </svg>\n);","'use client';\n\nimport { type JSX, type KeyboardEvent, useCallback, useEffect, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\n// import { useTranslations } from 'next-intl';\nimport { IconX } from '@tabler/icons-react';\nimport { cn } from '@utils/cn';\n\nimport { ActionIcon } from '../actionIcon';\ninterface IModal {\n children: React.ReactNode;\n title?: string;\n withCloseButton?: boolean;\n opened: boolean;\n onClose: () => void;\n additionalClassNames?: string;\n gradient?: boolean;\n dataTestId?: string;\n size?: string | number;\n uncloseAble?: boolean;\n closeModalWithConfirmation?: boolean;\n confirmText?: string;\n}\n\nexport const Modal = ({\n title,\n children,\n withCloseButton = true,\n opened,\n additionalClassNames,\n closeModalWithConfirmation = false,\n gradient = true,\n uncloseAble = false,\n confirmText = 'Are you sure you want to close this modal?',\n dataTestId,\n onClose,\n size,\n}: IModal) => {\n // const t = useTranslations();\n const ref = useRef<HTMLDivElement | null>(null);\n const refContainer = useRef<HTMLDivElement | null>(null);\n const [isOpen, setIsOpen] = useState(false);\n\n useEffect(() => {\n setIsOpen(opened);\n }, [opened]);\n\n const handleClose = useCallback(() => {\n if (uncloseAble) return;\n if (closeModalWithConfirmation) {\n if (window.confirm(confirmText)) {\n setIsOpen(false);\n onClose();\n }\n } else {\n setIsOpen(false);\n onClose();\n }\n }, [closeModalWithConfirmation, onClose, uncloseAble]);\n\n const handleClickOutside = useCallback(\n (event: MouseEvent) => {\n if (refContainer.current && refContainer.current.contains(event.target as HTMLElement))\n if (ref.current && !ref.current.contains(event.target as HTMLElement)) handleClose();\n },\n [handleClose],\n );\n\n const handleEscapeKey = useCallback(\n (event: KeyboardEvent) => {\n if (event.code === 'Escape') handleClose();\n },\n [handleClose],\n );\n\n useEffect(() => {\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside);\n window.addEventListener('keydown', handleEscapeKey as unknown as EventListener);\n }\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n window.removeEventListener('keydown', handleEscapeKey as unknown as EventListener);\n };\n }, [handleClickOutside, handleClose, handleEscapeKey, isOpen, onClose, opened, ref]);\n\n if (!isOpen) return null;\n\n return createPortal(\n <div\n className={cn(\n 'fixed top-0 left-0 z-999 grid h-full w-full items-center overflow-y-scroll overscroll-contain px-4 py-10 md:py-20',\n )}\n data-testid={dataTestId}\n data-component=\"modal\"\n ref={refContainer}\n >\n <div className=\"bg-navy-blue/40 fixed top-0 left-0 z-[-1] size-full\" data-testid=\"modalBg\" />\n <div className={'relative flex w-full justify-center'}>\n <section\n className={cn(\n 'relative h-full w-full max-w-[1000px] bg-white px-5 py-8 shadow-xl md:px-10 md:py-10',\n additionalClassNames,\n size,\n )}\n ref={ref}\n role=\"dialog\"\n tabIndex={-1}\n aria-modal={isOpen}\n aria-label={title}\n >\n <div className=\"relative z-10 w-full\">\n {withCloseButton && (\n <ActionIcon\n onClick={handleClose}\n aria-label={'close modal'}\n className=\"absolute top-0 right-0\"\n data-testid=\"close-modal\"\n icon={<IconX />}\n title={'Close modal'}\n // title={t('globals.closeModal')}\n />\n )}\n </div>\n {title && (\n <div className=\"relative w-full pt-14\">\n <h2 className=\"mt-0 mb-8 text-left text-3xl font-bold\">{title}</h2>\n </div>\n )}\n <div>{children}</div>\n {gradient && (\n <hr\n data-testid=\"modal-gradient\"\n className=\"absolute bottom-0 left-0 mt-8 mb-0 h-2! w-full border-none\"\n style={{\n backgroundImage:\n 'linear-gradient(90deg, var(--color-light-blue) 0%, var(--color-primary) 50.52%, var(--color-secondary) 100%)',\n }}\n />\n )}\n </section>\n </div>\n </div>,\n document.body,\n // Below is needed for test.tsx and for stories.tsx\n ) as unknown as JSX.Element;\n};\n\nModal.displayName = 'Modal';\n","'use client'\nimport { IconChevronLeft, IconChevronRight } from '@tabler/icons-react';\n\ninterface NavButtonsProps {\n onNext?: () => void;\n onPrev?: () => void;\n}\n\nexport const NavButtons = ({ onNext, onPrev }: NavButtonsProps) => (\n <div className=\"flex items-center overflow-hidden rounded border border-gray-200\">\n <div\n data-testid=\"chevron-left\"\n className={`flex ${onPrev ? 'cursor-pointer hover:bg-gray-50' : 'cursor-not-allowed'} h-full items-center px-2`}\n onClick={onPrev}\n >\n <IconChevronLeft size={20} className={onPrev ? 'text-gray-500' : 'text-gray-200'} />\n </div>\n <div className=\"h-6 w-[0.8px] bg-gray-200\" />\n <div\n data-testid=\"chevron-right\"\n className={`flex ${onNext ? 'cursor-pointer hover:bg-gray-50' : 'cursor-not-allowed'} h-full items-center px-2 hover:bg-gray-50`}\n onClick={onNext}\n >\n <IconChevronRight size={20} className={onNext ? 'text-gray-500' : 'text-gray-200'} />\n </div>\n </div>\n);\n","'use client'\nimport { type ChangeEvent } from 'react';\n\ninterface NumberFieldProps {\n name: string;\n value: number | undefined;\n id: string;\n className?: string;\n label?: string;\n error?: string;\n max?: number;\n min?: number;\n isDisabled?: boolean;\n onChange?: (value: number) => void;\n}\n\nexport const NumberField = ({\n name,\n value = 0,\n max,\n min = 0,\n isDisabled,\n id,\n className = '',\n label,\n error,\n onChange,\n}: NumberFieldProps) => {\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n const newValue = parseInt(e.target.value, 10);\n onChange?.(newValue);\n };\n\n const handleIncrement = () => {\n onChange?.(value + 1);\n };\n\n const handleDecrement = () => {\n if (value > 0) onChange?.(value - 1);\n };\n\n return (\n <div data-testid=\"number-field-container\" className={`inline-flex flex-col ${className}`}>\n {label && (\n <label htmlFor={id} className=\"mb-1 text-sm font-medium text-gray-700\">\n {label}\n </label>\n )}\n <div\n className={`has-focus:border-primary group relative flex w-[108px] items-center rounded-md border border-gray-300 ${error ? 'border-red-300' : 'border-gray-300'}`}\n >\n <button\n type=\"button\"\n onClick={handleDecrement}\n disabled={isDisabled}\n className=\"absolute left-0 flex h-full w-8 items-center justify-center rounded-l-md border-r-0 bg-gray-50 text-gray-500 hover:bg-gray-100\"\n >\n -\n </button>\n <input\n type=\"number\"\n id={id}\n name={name}\n min={min}\n max={max}\n disabled={isDisabled}\n value={value}\n onChange={handleChange}\n className={`peer m-auto mx-8 block w-[42px] [appearance:textfield] items-center border-x border-gray-300 py-2 text-center focus:border-x-gray-300 focus:ring-0 focus:ring-red-500 focus:outline-hidden [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none ${\n error ? 'border-red-300' : 'border-gray-300'\n }`}\n />\n <button\n type=\"button\"\n onClick={handleIncrement}\n disabled={isDisabled}\n className=\"absolute right-0 flex h-full w-8 items-center justify-center rounded-r-md bg-gray-50 text-gray-500 hover:bg-gray-100\"\n >\n +\n </button>\n </div>\n {error && <p className=\"mt-1 text-sm font-normal text-red-600\">{error}</p>}\n </div>\n );\n};\n","'use client'\n\nimport { Island } from '../island';\n\ninterface PageUnavailableProps {\n \n notAvailableButton: React.ReactNode;\n notAvailableDescription: string;\n notAvailableHeaderText: string;\n}\n\nexport const PageUnavailable = ({ notAvailableButton, notAvailableDescription, notAvailableHeaderText }: PageUnavailableProps) => (\n <Island>\n <div className=\"mx-auto grid max-w-[900px] justify-items-center gap-8 text-center\">\n <h1 className=\"text-3xl font-bold\">{notAvailableHeaderText}</h1>\n <p>{notAvailableDescription}</p>\n <div>\n {notAvailableButton}\n </div>\n </div>\n </Island>\n );\n","'use client'\nimport React from 'react';\n\nimport { TextInput, type TextInputProps } from '../textInput';\n\nexport const PasswordInput = React.forwardRef<HTMLInputElement, TextInputProps>((props, ref) => (\n <TextInput password={true} enablePasswordManagerAutofill={true} type=\"password\" {...props} ref={ref} />\n));\n\nPasswordInput.displayName = 'PasswordInput';\n","'use client'\n\nimport { useEffect, useState } from 'react';\n\nimport { cn } from '@utils/cn';\n\ninterface ProgressProps {\n value: number;\n maxValue?: number;\n className?: string;\n}\n\nexport const ProgressBar = ({ value, maxValue = 100, className }: ProgressProps) => {\n const [width, setWidth] = useState(0);\n\n useEffect(() => {\n // Handle edge cases: negative values, zero maxValue, value > maxValue\n if (value <= 0)\n setWidth(0);\n else if (maxValue <= 0)\n setWidth(0);\n else if (value >= maxValue)\n setWidth(100);\n else\n setWidth((value / maxValue) * 100);\n }, [value, maxValue]);\n\n return (\n <div className={cn('h-2 rounded-lg bg-gray-100', className)} role=\"progressbar\" aria-valuenow={value} aria-valuemin={0} aria-valuemax={maxValue}>\n <div\n data-testid=\"progress-bar-fill\"\n className=\"h-2 rounded-lg bg-[#27295c] transition-all duration-1000 ease-in-out\"\n style={{ width: `${width}%` }}\n ></div>\n </div>\n );\n};\n","'use client'\nimport React from 'react';\n\nimport clsx from 'clsx';\n\nexport interface IRadioButton extends React.InputHTMLAttributes<HTMLInputElement> {\n id?: string;\n name?: string;\n value: string;\n label: string;\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n checked?: boolean;\n dataTestId?: string;\n containerClassName?: string;\n labelClassName?: string;\n inputClassName?: string;\n}\n\nexport const RadioButton = ({\n id,\n name,\n value,\n label,\n onChange,\n checked,\n dataTestId,\n className,\n containerClassName,\n labelClassName,\n ...props\n}: IRadioButton) => (\n <div data-testid=\"radio-button-container\" className={`${containerClassName || 'radio-button-container'} relative flex items-start`}>\n <div className=\"relative\">\n <input\n type=\"radio\"\n id={id}\n name={name}\n value={value}\n onChange={props.disabled ? undefined : onChange}\n checked={checked}\n data-testid={dataTestId}\n className={`${clsx(\n className,\n 'ease checked:border-navyBlue checked:bg-navy-blue relative m-0 flex size-5 cursor-pointer appearance-none items-center justify-center rounded-full border border-gray-400 bg-white transition-colors duration-100 focus:ring-0 focus:outline-hidden focus-visible:ring-0',\n {\n 'cursor-not-allowed opacity-50': props.disabled,\n },\n )}`}\n {...props}\n />\n {checked && (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 5 5\"\n className=\"absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 scale-100 text-white\"\n aria-hidden=\"true\"\n >\n <path fill=\"currentColor\" d=\"M0 2.5a2.5 2.5 0 115 0 2.5 2.5 0 01-5 0z\"></path>\n </svg>\n )}\n </div>\n <label\n htmlFor={id}\n className={` ${clsx(labelClassName, 'mb-0 cursor-pointer pl-3 text-sm font-normal', {\n 'text-gray-400': props.disabled,\n })}`}\n >\n {label}\n </label>\n </div>\n);\n\nRadioButton.displayName = 'RadioButton';\n","\nimport * as React from 'react';\nimport { type SVGProps } from 'react';\nexport const IconStarEmpty = (props: SVGProps<SVGSVGElement>) => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10.9656 1.4719L13.2213 6.04264C13.3782 6.36054 13.6815 6.58082 14.0324 6.63171L19.0762 7.36472C19.9602 7.49321 20.3127 8.57874 19.6736 9.20161L16.0236 12.7594C15.77 13.0068 15.654 13.3635 15.7141 13.7127L16.5756 18.7365C16.7266 19.6163 15.8029 20.2872 15.0128 19.8721L10.5013 17.5004C10.1875 17.3356 9.81248 17.3356 9.49875 17.5004L4.98726 19.8721C4.1971 20.2876 3.27344 19.6163 3.42447 18.7365L4.28596 13.7127C4.34604 13.3635 4.23006 13.0068 3.97641 12.7594L0.326406 9.20161C-0.31273 8.57832 0.0397965 7.49279 0.923406 7.36472L5.96766 6.63171C6.31851 6.58082 6.62181 6.36054 6.77868 6.04264L9.03442 1.4719C9.42908 0.671313 10.5705 0.671313 10.9656 1.4719Z\"\n fill=\"#E0E0E0\"\n />\n </svg>\n);\n","\nimport * as React from 'react';\nimport { type SVGProps } from 'react';\nexport const IconStarFilled = (props: SVGProps<SVGSVGElement>) => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10.9656 1.4719L13.2213 6.04264C13.3782 6.36054 13.6815 6.58082 14.0324 6.63171L19.0762 7.36472C19.9602 7.49321 20.3127 8.57874 19.6736 9.20161L16.0236 12.7594C15.77 13.0068 15.654 13.3635 15.7141 13.7127L16.5756 18.7365C16.7266 19.6163 15.8029 20.2872 15.0128 19.8721L10.5013 17.5004C10.1875 17.3356 9.81248 17.3356 9.49875 17.5004L4.98726 19.8721C4.1971 20.2876 3.27344 19.6163 3.42447 18.7365L4.28596 13.7127C4.34604 13.3635 4.23006 13.0068 3.97641 12.7594L0.326406 9.20161C-0.31273 8.57832 0.0397965 7.49279 0.923406 7.36472L5.96766 6.63171C6.31851 6.58082 6.62181 6.36054 6.77868 6.04264L9.03442 1.4719C9.42908 0.671313 10.5705 0.671313 10.9656 1.4719Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","\nimport * as React from 'react';\nimport { type SVGProps } from 'react';\nexport const IconStarHalfFilled = (props: SVGProps<SVGSVGElement>) => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M9.03439 0.600543L6.77865 5.17206C6.62178 5.49001 6.31849 5.71032 5.96763 5.76123L0.923798 6.49436C0.0397701 6.62287 -0.312748 7.70859 0.326389 8.33156L3.97638 11.89C4.23003 12.1374 4.34601 12.4942 4.28594 12.8434L3.42444 17.8681C3.27341 18.7481 4.19707 19.419 4.98723 19.0038L9.49872 16.6317C9.65559 16.5493 9.82779 16.5081 9.99999 16.5081C10.1722 16.5081 10.3444 16.5493 10.5012 16.6317L15.0127 19.0038C15.8029 19.4194 16.7266 18.7481 16.5755 17.8681L15.714 12.8434C15.654 12.4942 15.7699 12.1374 16.0236 11.89L19.6736 8.33156C20.3127 7.70817 19.9602 6.62246 19.0766 6.49436L14.0323 5.76123C13.6815 5.71032 13.3782 5.49001 13.2213 5.17206L10.9656 0.600543C10.7682 0.20013 10.3841 -5.14809e-05 9.99999 9.93083e-09C9.61596 5.14875e-05 9.23191 0.200233 9.03439 0.600543Z\"\n fill=\"#E0E0E0\"\n />\n <path\n d=\"M6.77865 5.17206L9.03439 0.600543C9.23191 0.200233 9.61596 5.14875e-05 9.99999 9.93083e-09V16.5081C9.82779 16.5081 9.65559 16.5493 9.49872 16.6317L4.98723 19.0038C4.19707 19.419 3.27341 18.7481 3.42444 17.8681L4.28594 12.8434C4.34601 12.4942 4.23003 12.1374 3.97638 11.89L0.326389 8.33156C-0.312748 7.70859 0.0397701 6.62287 0.923798 6.49436L5.96763 5.76123C6.31849 5.71032 6.62178 5.49001 6.77865 5.17206Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","'use client'\nimport { useState } from 'react';\n\nimport { cn } from '@utils/cn';\n\nimport { IconStarEmpty, IconStarFilled, IconStarHalfFilled } from '../../icons';\n\ninterface IRating {\n rating: number;\n size?: 'small' | 'normal' | 'large';\n className?: string;\n setReview?: (val: number) => void;\n setReviewError?: (val: string) => void;\n error?: string;\n ratings: { value: number; label: string }[];\n}\n\nexport const Rating = ({ rating, ratings, size = 'normal', setReview, className, setReviewError, error }: IRating) => {\n const [hoveredStars, setHoveredStars] = useState<number>(0);\n const [hoveredSmallStars, setHoveredSmallStars] = useState<number>(0);\n const [reviewIsSet, setReviewIsSet] = useState<boolean | number>(false);\n const currentRating = hoveredStars || Math.round(rating * 2) / 2;\n const currentSmallRating = hoveredSmallStars;\n\n const sizeClasses = {\n small: 'h-4 w-4',\n normal: 'h-[22px] w-[22px]',\n large: 'h-[32px] w-[32px]',\n };\n\n const handleStarClick = (value: number) => {\n if (!setReview) return;\n setReviewError?.('');\n setReview(value);\n setReviewIsSet(value);\n };\n\n const handleHover = (value: number) => setReview && setHoveredStars(value);\n\n const StarIcon = ({ index }: { index: number }) => {\n if (!setReview) {\n const roundedRating = Math.round(rating * 2) / 2;\n const hasHalf = roundedRating % 1 === 0.5;\n const effectiveRating = roundedRating;\n const fullStars = Math.floor(effectiveRating);\n if (index <= fullStars) return <IconStarFilled className={`text-yellow ${sizeClasses[size]}`} />;\n if (hasHalf && index === Math.ceil(effectiveRating))\n return <IconStarHalfFilled className={`text-yellow ${sizeClasses[size]}`} />;\n return <IconStarEmpty className={`text-yellow ${sizeClasses[size]}`} />;\n }\n\n const displayRating = reviewIsSet ? Number(reviewIsSet) : currentRating;\n const roundedRating = Math.round(displayRating * 2) / 2;\n const hasHalf = roundedRating % 1 === 0.5;\n const effectiveRating = roundedRating;\n const fullStars = Math.floor(effectiveRating);\n\n if (index <= fullStars) return <IconStarFilled className={`text-yellow ${sizeClasses[size]}`} />;\n if (hasHalf && index === Math.ceil(effectiveRating))\n return <IconStarHalfFilled className={`text-yellow ${sizeClasses[size]}`} />;\n return <IconStarEmpty className={`text-yellow ${sizeClasses[size]} `} />;\n };\n\n const StarSmallIcon = ({ index, className }: { index: number; className?: string }) => {\n const displayRating = currentSmallRating;\n const roundedRating = Math.round(displayRating * 2) / 2;\n\n if (index === roundedRating) return <IconStarFilled className={cn(className, 'text-yellow')} />;\n if (index - roundedRating === 0.5) return <IconStarHalfFilled className={cn(className, 'text-yellow')} />;\n return <IconStarEmpty className={cn(className, 'text-yellow')} />;\n };\n\n\n return (\n <span className={cn('flex flex-col', className)}>\n <div data-testid=\"rating-container\" data-component=\"rating\" className=\"flex flex-row gap-[2px]\">\n {[\n ...ratings\n .map(({ value }) => value)\n .sort((a, b) => a - b),\n ].map((value) => (\n <div\n key={value}\n data-testid={`star-item-${value}`}\n className={cn('relative', setReview && 'cursor-pointer')}\n onClick={() => handleStarClick(value)}\n onMouseEnter={() => handleHover(value)}\n onMouseLeave={() => handleHover(Number(reviewIsSet))}\n >\n <StarIcon index={value} />\n </div>\n ))}\n </div>\n {setReview && (\n <div data-testid=\"small-stars-container\" className=\"mt-4 flex flex-col gap-2\">\n {ratings.map(({ value, label }) => (\n <span\n key={value}\n data-testid={`small-star-item-${value}`}\n className=\"flex w-auto cursor-pointer items-center gap-1\"\n onMouseEnter={() => setHoveredSmallStars(value)}\n onMouseLeave={() => setHoveredSmallStars(0)}\n onClick={() => handleStarClick(value)}\n >\n {Array.from({ length: value }).map((_, i) => (\n <StarSmallIcon key={i} index={value} className=\"text-yellow size-5\" />\n ))}\n <span className=\"mt-[5px] flex items-center pl-2 text-[12px] text-gray-800\">{label}</span>\n </span>\n ))}\n </div>\n )}\n {error && <span className=\"mt-1 w-full text-[10px] font-normal text-red-500\">{error}</span>}\n </span>\n );\n};\n","'use client'\n\n// check old component what to do with the regions (i made this way dumber)\n\ninterface IRegionSelector {\n title: string;\n regions: React.ReactNode[];\n 'data-testid'?: string;\n}\n\nexport const RegionSelector = ({ title, regions, ...props }: IRegionSelector) => {\n if (regions?.length === 0) return null;\n\n return (\n <div\n data-component=\"regionSelector\"\n className=\"flex w-full flex-col items-center justify-center gap-11 break-words lg:gap-14\"\n {...props}\n >\n <h1 className=\"w-full text-2xl leading-10 font-bold md:text-3xl\">{title}</h1>\n <ul\n className=\"mx-auto flex w-full max-w-[415px] list-none flex-col items-start justify-start gap-3.5 pl-0 hover:cursor-pointer\"\n data-testid=\"region-select\"\n >\n {regions}\n </ul>\n </div>\n );\n};\n\nRegionSelector.displayName = 'RegionSelector';\n","'use client'\nimport { ProgressBar } from '../progressBar';\nimport { Rating } from '../rating';\n\nconst ReviewsLine = ({ maxValue, amount, countStarsText }: { maxValue: number; amount: number; countStarsText: string }) => (\n <div className=\"flex w-full flex-row place-content-center gap-5 align-middle\">\n <span className=\"min-w-20 tabular-nums\">{countStarsText}</span>\n <span className=\"flex w-full flex-1 items-center\">\n <ProgressBar value={amount} maxValue={maxValue} className=\"w-full\" />\n </span>\n <span className=\"w-10 text-right text-gray-800 tabular-nums\">{amount}</span>\n </div>\n );\n\ninterface AggregatedRating {\n score: number;\n amount: number;\n}\n\ninterface IReviewsProps {\n totalRatings: number;\n averageRating: number;\n ratings: { value: number; label: string }[];\n aggregatedRating: AggregatedRating[];\n countStarsText: string[];\n numberOfReviewsText: string;\n}\n\nfunction formatRating(rating: number): string | number {\n return rating === 0 ? 0 : rating.toFixed(1);\n}\n\nexport const Reviews = ({ totalRatings, ratings, averageRating, aggregatedRating, countStarsText, numberOfReviewsText }: IReviewsProps) => (\n <div className=\"bg-ultra-light-gray flex w-full flex-col p-6 md:flex-row\">\n <div className=\"mb-5 flex flex-1 flex-row items-start justify-start gap-5 md:mb-0 md:flex-col md:justify-center md:gap-0\">\n <div className=\"mb-4 text-[50px] leading-[50px] font-bold\">{formatRating(averageRating ?? 0)}</div>\n <div className=\"flex flex-col\">\n <Rating ratings={ratings} rating={averageRating} size=\"normal\" className=\"mb-4\" />\n <div className=\"text-gray-800\">\n ({numberOfReviewsText})\n </div>\n </div>\n </div>\n <div className=\"flex flex-1 flex-col items-center gap-2\">\n {aggregatedRating.map((rating, i) => {\n const arrayIndex = aggregatedRating.length - i;\n return <ReviewsLine amount={rating.amount} maxValue={totalRatings} key={i} countStarsText={countStarsText[arrayIndex - 1]} />;\n })}\n </div>\n </div>\n );\n","'use client'\nimport { useEffect, useState } from 'react';\nimport { Tooltip } from 'react-tooltip';\n\nimport { IconChevronUp } from '@tabler/icons-react';\n\n\nexport const ScrollToTop = ({scrollToTopTitle}: {scrollToTopTitle: string}) => {\n const [isVisible, setIsVisible] = useState(false);\n const showScrollToTopButtonPosition = 20;\n const scrollDuration = 250;\n\n useEffect(() => {\n const handleScroll = () => {\n if (window.scrollY > showScrollToTopButtonPosition) setIsVisible(true);\n else setIsVisible(false);\n };\n window.addEventListener('scroll', handleScroll);\n return () => {\n window.removeEventListener('scroll', handleScroll);\n };\n }, []);\n\n const scrollToTop = () => {\n const scrollStep = -window.scrollY / (scrollDuration / 15);\n const scrollInterval = setInterval(() => {\n if (window.scrollY !== 0) window.scrollBy(0, scrollStep);\n else clearInterval(scrollInterval);\n }, 15);\n };\n\n return (\n <>\n <button\n title={scrollToTopTitle}\n type=\"button\"\n disabled={false}\n data-testid=\"scrollToTop\"\n data-component=\"ActionIcon\"\n className={`active:translate-y-[1px] content-center rounded-[4px] border-gray-200 hover:border-black child:p-10 disabled:text-gray-500 bg-turquoise-700 hover:bg-turquoise-600 fixed -right-[10px] bottom-[105px] z-40 flex h-[43px] w-[62px] cursor-pointer items-center justify-center rounded-l-3xl border-0 px-2 text-black duration-500 ${\n isVisible ? 'translate-x-0' : 'translate-x-[60px]'\n }`}\n onClick={scrollToTop}\n data-tooltip-id={scrollToTopTitle}\n data-tooltip-content={scrollToTopTitle}\n >\n <IconChevronUp />\n </button>\n <Tooltip id={scrollToTopTitle} className=\"z-[99]\" />\n \n </>\n );\n};\n","'use client';\n\nimport { type ChangeEvent } from 'react';\n\nimport { TextInput, type TextInputProps } from '../textInput';\n\nexport interface SearchInputProps extends TextInputProps {\n placeholder: string;\n value?: string;\n onChange?: (e: ChangeEvent<HTMLInputElement>) => void;\n}\n\nexport const SearchInput = ({ placeholder, value, onChange, className, rightSection, ...props }: SearchInputProps) => (\n <TextInput\n placeholder={placeholder}\n className={className || 'w-full lg:w-auto lg:min-w-[23.75rem]'}\n rightSection={rightSection || <></>}\n value={value}\n onChange={onChange}\n {...props}\n />\n);\n","import { useState, useEffect } from 'react';\n\nexport function useDebouncedValue<T>(value: T, delay = 200): T {\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n useEffect(() => {\n const handler = setTimeout(() => setDebouncedValue(value), delay);\n return () => clearTimeout(handler);\n }, [value, delay]);\n\n return debouncedValue;\n}\n","'use client';\n\nimport * as React from 'react';\nimport {\n type ComponentPropsWithoutRef,\n type PointerEvent,\n type Ref,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingPortal,\n offset,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n} from '@floating-ui/react';\nimport { IconCheck, IconSearch, IconSelector, IconX } from '@tabler/icons-react';\nimport { cn } from '@utils/cn';\n\nimport { useDebouncedValue } from '../../hooks/useDebouncedValue';\nimport { useMergeRefs } from '../../hooks/useMergeRefs';\nimport { Label } from '../label';\n\ninterface Option {\n value: string;\n label: string;\n}\n\ninterface SelectProps extends ComponentPropsWithoutRef<'div'> {\n ref?: Ref<HTMLDivElement>;\n id: string;\n options: Option[];\n placeholder: string;\n label?: string;\n errorText?: string;\n hideError?: boolean;\n isClearable?: boolean;\n disabled?: boolean;\n multiSelect?: boolean;\n searchable?: boolean;\n value?: string | string[];\n defaultValue?: string | string[];\n onValueChange?: (value: string | string[] | undefined) => void;\n searchPlaceholder?: string;\n noResultsText: string;\n}\n\nexport function Select({\n id,\n options,\n placeholder,\n label,\n errorText,\n hideError = false,\n isClearable = false,\n disabled = false,\n multiSelect = false,\n searchable = false,\n value,\n defaultValue,\n onValueChange,\n className,\n searchPlaceholder,\n noResultsText,\n ...props\n}: SelectProps) {\n const innerRef = useRef<HTMLDivElement>(null);\n const buttonRef = useRef<HTMLButtonElement | null>(null);\n const optionRefs = useRef<(HTMLButtonElement | null)[]>([]);\n\n const mergedRef = useMergeRefs(innerRef, props.ref);\n\n const [internalValue, setInternalValue] = useState<string | string[] | undefined>(defaultValue);\n const [open, setOpen] = useState(false);\n const [searchTerm, setSearchTerm] = useState('');\n const [focusedIndex, setFocusedIndex] = useState(-1);\n\n const debouncedSearch = useDebouncedValue(searchTerm);\n\n const isControlled = value !== undefined;\n const currentValue = isControlled ? value : internalValue;\n\n const selectedLabels = useMemo(() => {\n if (Array.isArray(currentValue)) {\n return options\n .filter((o) => currentValue.includes(o.value))\n .map((o) => o.label)\n .join(', ');\n }\n return options.find((o) => o.value === currentValue)?.label;\n }, [currentValue, options]);\n\n const { refs, floatingStyles, context } = useFloating({\n open,\n onOpenChange: setOpen,\n middleware: [offset(4), flip(), shift()],\n whileElementsMounted: autoUpdate,\n placement: 'bottom-start',\n });\n\n const click = useClick(context);\n const dismiss = useDismiss(context);\n const role = useRole(context, { role: 'combobox' });\n const { getReferenceProps, getFloatingProps } = useInteractions([click, dismiss, role]);\n\n const handleSelect = useCallback(\n (val: string) => {\n if (multiSelect) {\n const current = Array.isArray(currentValue) ? currentValue : [];\n const newValues = current.includes(val) ? current.filter((v) => v !== val) : [...current, val];\n\n if (!isControlled) setInternalValue(newValues);\n onValueChange?.(newValues);\n } else {\n if (!isControlled) setInternalValue(val);\n onValueChange?.(val);\n setOpen(false);\n buttonRef.current?.focus();\n }\n },\n [multiSelect, currentValue, isControlled, onValueChange],\n );\n\n const handleClear = useCallback(\n (e: PointerEvent) => {\n e.preventDefault();\n e.stopPropagation();\n if (!isControlled) setInternalValue(undefined);\n onValueChange?.(undefined);\n setSearchTerm('');\n },\n [isControlled, onValueChange],\n );\n\n const showPlaceholder = !currentValue || (Array.isArray(currentValue) && currentValue.length === 0);\n\n const filteredOptions = useMemo(() => {\n if (!debouncedSearch.trim()) return options;\n return options.filter((opt) => opt.label.toLowerCase().includes(debouncedSearch.toLowerCase()));\n }, [options, debouncedSearch]);\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (disabled) return;\n\n if (!open) {\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n setOpen(true);\n setTimeout(() => {\n setFocusedIndex(0);\n optionRefs.current[0]?.focus();\n }, 0);\n }\n return;\n }\n\n switch (event.key) {\n case 'Escape':\n event.preventDefault();\n setOpen(false);\n setFocusedIndex(-1);\n buttonRef.current?.focus();\n break;\n case 'ArrowDown':\n event.preventDefault();\n setFocusedIndex((prev) => {\n const next = prev < filteredOptions.length - 1 ? prev + 1 : 0;\n optionRefs.current[next]?.focus();\n return next;\n });\n break;\n case 'ArrowUp':\n event.preventDefault();\n setFocusedIndex((prev) => {\n const next = prev > 0 ? prev - 1 : filteredOptions.length - 1;\n optionRefs.current[next]?.focus();\n return next;\n });\n break;\n case 'Home':\n event.preventDefault();\n setFocusedIndex(0);\n optionRefs.current[0]?.focus();\n break;\n case 'End':\n event.preventDefault();\n setFocusedIndex(filteredOptions.length - 1);\n optionRefs.current[filteredOptions.length - 1]?.focus();\n break;\n case 'Enter':\n case ' ':\n event.preventDefault();\n if (focusedIndex >= 0 && filteredOptions[focusedIndex]) handleSelect(filteredOptions[focusedIndex].value);\n\n break;\n }\n },\n [open, filteredOptions, focusedIndex, handleSelect, disabled],\n );\n\n useEffect(() => {\n if (!open) return;\n const listener = (e: KeyboardEvent) => handleKeyDown(e);\n document.addEventListener('keydown', listener);\n return () => document.removeEventListener('keydown', listener);\n }, [open, handleKeyDown]);\n\n useEffect(() => {\n if (!open) setSearchTerm('');\n }, [open]);\n\n return (\n <div\n ref={mergedRef}\n {...props}\n data-component=\"Select\"\n className={cn('grid gap-2 w-full', className)}\n role=\"group\"\n aria-labelledby={`${id}-label`}\n >\n {label && (\n <div className=\"leading-4\">\n <Label htmlFor={id}>{label}</Label>\n <span id={`${id}-label`} className=\"sr-only\">\n {label}\n </span>\n </div>\n )}\n\n <button\n id={id}\n type=\"button\"\n ref={(node) => {\n refs.setReference(node);\n buttonRef.current = node!;\n }}\n {...getReferenceProps()}\n disabled={disabled}\n className={cn(\n 'flex h-10 w-full items-center justify-between rounded-md border px-3 text-sm transition-colors bg-gray-20',\n 'border-gray-200 hover:border-gray-300 focus:border-gray-300 outline-none',\n !hideError && errorText && 'border-red-500 hover:border-red-500 focus:border-red-500',\n disabled && 'opacity-50 cursor-not-allowed',\n )}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n aria-disabled={disabled}\n aria-labelledby={`${id}-label`}\n aria-controls={`${id}-listbox`}\n >\n <div className=\"flex items-center gap-2 truncate text-black\">\n {showPlaceholder ? (\n <span className=\"text-gray-200\" aria-hidden=\"true\">\n {placeholder}\n </span>\n ) : (\n <span className=\"truncate\">{selectedLabels}</span>\n )}\n </div>\n\n {isClearable && !showPlaceholder ? (\n <IconX\n size={16}\n color=\"black\"\n className=\"cursor-pointer\"\n data-testid=\"clear-button\"\n onPointerDown={handleClear}\n role=\"button\"\n aria-label=\"Clear selection\"\n />\n ) : (\n <IconSelector size={16} color=\"black\" aria-hidden=\"true\" />\n )}\n </button>\n\n {open && (\n <FloatingPortal>\n <FloatingFocusManager context={context} modal={false}>\n <div\n ref={refs.setFloating}\n style={{\n ...floatingStyles,\n width: (refs.reference.current as HTMLElement | null)?.offsetWidth ?? 'auto',\n }}\n {...getFloatingProps()}\n id={`${id}-listbox`}\n role=\"listbox\"\n aria-labelledby={`${id}-label`}\n className={cn(\n 'z-[99999] mt-2 rounded-md border border-gray-200 bg-white shadow-md',\n 'overflow-hidden animate-in fade-in',\n )}\n >\n <div className=\"p-1 text-sm max-h-[250px] overflow-auto\">\n {searchable && (\n <div\n className=\"flex items-center gap-2 px-2 py-1 border-b border-gray-100 sticky top-0 bg-white\"\n role=\"search\"\n >\n <IconSearch size={14} className=\"text-gray-400\" aria-hidden=\"true\" />\n <input\n type=\"text\"\n autoFocus\n value={searchTerm}\n onChange={(e) => setSearchTerm(e.target.value)}\n placeholder={searchPlaceholder}\n className=\"w-full text-sm outline-none bg-transparent placeholder-gray-300\"\n aria-label=\"Search options\"\n />\n </div>\n )}\n\n <div className=\"mt-1 pr-2\">\n {filteredOptions.length ? (\n filteredOptions.map((opt, index) => {\n const isSelected = Array.isArray(currentValue)\n ? currentValue.includes(opt.value)\n : currentValue === opt.value;\n\n return (\n <button\n key={opt.value}\n ref={(el) => (optionRefs.current[index] = el)}\n type=\"button\"\n onClick={() => handleSelect(opt.value)}\n role=\"option\"\n aria-selected={isSelected}\n tabIndex={-1}\n className={cn(\n 'relative flex w-full items-center gap-2 rounded px-3 py-2 text-sm text-black select-none',\n 'hover:bg-gray-50 mx-1 my-[2px]',\n isSelected && 'bg-gray-50',\n focusedIndex === index && 'bg-gray-50 ring-1 ring-primary',\n )}\n >\n {multiSelect && (\n <span\n className={cn(\n 'flex h-4 w-4 items-center justify-center rounded-sm border',\n isSelected ? 'border-light-blue bg-light-blue' : 'border-gray-400 bg-white',\n )}\n aria-hidden=\"true\"\n >\n {isSelected && (\n <IconCheck size={12} color=\"white\" stroke={2} className=\"pointer-events-none\" />\n )}\n </span>\n )}\n <span className=\"flex-1 text-left\">{opt.label}</span>\n </button>\n );\n })\n ) : (\n <div className=\"px-3 py-2 text-gray-400\" role=\"status\">\n {noResultsText}\n </div>\n )}\n </div>\n </div>\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n\n {!hideError && errorText && (\n <span className=\"text-xs text-red-500\" role=\"alert\">\n {errorText}\n </span>\n )}\n </div>\n );\n}\n\nSelect.displayName = 'Select';\n","'use client'\ninterface ISettingsCardProps {\n icon: React.ReactNode;\n title: string;\n link: string;\n ManageText: string;\n LinkComponent: React.FC<{ className: string; href: string; children: React.ReactNode }>;\n}\n\nexport const SettingsCard = ({ icon, title, link, ManageText, LinkComponent }: ISettingsCardProps) => (\n <div\n data-component=\"SettingsCard\"\n data-testid=\"settings-card\"\n className=\"flex items-center justify-between gap-2 bg-white px-8 py-4 shadow-[0_-0.5rem_2rem_rgba(38,41,92,0.04)] md:px-4 lg:px-8\"\n >\n <div className=\"flex items-center gap-4\">\n <div>{icon}</div>\n <div className=\"text-base font-normal\">{title}</div>\n </div>\n <LinkComponent className=\"text-xs font-medium text-sky-600 no-underline hover:underline\" href={link}>\n {ManageText}\n </LinkComponent>\n </div>\n );\n","'use client'\nimport { cn } from '@utils/cn';\n\ninterface ISkeleton {\n className: string;\n 'data-testid'?: string;\n}\n\nexport const Skeleton = ({ className, 'data-testid': dataTestId }: ISkeleton) => (\n <span\n data-component=\"genericSkeleton\"\n data-testid={dataTestId || 'skeleton'}\n className={cn('inline-block rounded-md', 'animate-pulse bg-gray-100/50', className)}\n />\n);\n","'use client'\ninterface ISkillPillProps {\n name: string;\n number: number;\n}\n\nexport const SkillPill = ({ name, number }: ISkillPillProps) => (\n <div data-testid=\"skill-pill-container\" className=\"flex items-center rounded-full border border-gray-200 p-[3px]\">\n <span className=\"pr-4 pl-3\">{name}</span>\n <span data-testid=\"skill-pill-number\" className=\"bg-turquoise-200 grid h-[30px] min-w-[30px] place-content-center rounded-full px-2.5\">\n {number}\n </span>\n </div>\n);\n","'use client';\nimport { Fragment } from 'react';\n\nimport { IconCheck } from '@tabler/icons-react';\nimport clsx from 'clsx';\n\ninterface Step {\n label: string;\n}\n\ninterface NumberedStepperProps {\n steps: Step[];\n active: number;\n stepsCompleted: number[];\n completedLabel: string;\n className?: string;\n onStepClick: (index: number) => void;\n}\n\nexport const NumberedStepper = ({\n steps,\n active,\n className,\n stepsCompleted,\n completedLabel,\n onStepClick,\n}: NumberedStepperProps) => (\n <div\n data-testid=\"numbered-stepper-container\"\n className={clsx('flex w-full flex-col items-start gap-2 md:flex-row md:items-center md:gap-7', className)}\n >\n {steps.map((step, index) => (\n <Fragment key={index}>\n <div\n data-testid={`stepper-step-${index}`}\n onClick={() => (index < active ? onStepClick(index) : null)}\n className={`${index < active && 'cursor-pointer'} flex w-auto`}\n >\n <div className={'flex flex-auto flex-row gap-3'}>\n <div className={'flex size-12 flex-auto items-center justify-center whitespace-nowrap'}>\n <div\n data-testid={`stepper-number-${index}`}\n className={`grid size-12 place-content-center rounded-full leading-[36px]! md:leading-[40px]! ${\n index === 0 && active === 1 ? 'bg-light-blue text-white' : 'bg-transparent!'\n } ${\n index <= active ? 'border-light-blue text-light-blue border' : 'border border-gray-500 text-gray-500'\n } align-middle font-sans font-bold md:text-2xl`}\n >\n {index + 1}\n </div>\n </div>\n <div className=\"flex flex-auto flex-col justify-center\">\n <span\n data-testid={`stepper-label-${index}`}\n className={`content-center text-sm font-medium! whitespace-nowrap md:text-lg md:font-bold ${\n index <= active ? 'text-gray-900' : 'text-gray-500'\n }`}\n >\n {step.label}\n </span>\n <span>\n {completedLabel && active === 1 && index === 0 && stepsCompleted.length > 0 ? (\n <span className=\"text-green flex items-center text-xs font-medium\">\n {completedLabel} <IconCheck className=\"align-middle\" size={12} />\n </span>\n ) : (\n <></>\n )}{' '}\n </span>\n </div>\n </div>\n </div>\n {index < steps.length - 1 && (\n <div\n className={`my-2 ml-6 flex h-[24px] w-px align-middle md:ml-0 md:h-px md:w-auto md:flex-1 ${\n active === 1 ? 'bg-light-blue' : 'bg-[#CCCCCC]'\n }`}\n ></div>\n )}\n </Fragment>\n ))}\n </div>\n);\n","'use client'\nimport { IconCheck } from '@tabler/icons-react';\nimport { cn } from '@utils/cn';\nimport clsx from 'clsx';\n\nexport interface Step {\n label: string;\n value: string;\n}\n\ninterface StepperProps {\n steps: Step[];\n clickableSteps?: number[];\n completedSteps?: number[];\n setStep?: (step: number) => void;\n variant?: 'small' | 'default';\n activeStep: number;\n isMobile: boolean;\n className?: string;\n}\n\nexport const Stepper = ({\n steps,\n setStep = () => {},\n variant = 'default',\n clickableSteps,\n completedSteps,\n activeStep,\n isMobile,\n className,\n}: StepperProps) => (\n <div data-testid=\"stepper-container\" className={clsx('flex w-full justify-start', className)}>\n {steps?.map((step, index) => {\n const isClickable = index <= activeStep && clickableSteps?.includes(index);\n const isCompleted = completedSteps?.includes(index);\n\n return (\n <div key={index} data-testid={`stepper-step-${index}`} className={'flex w-full'}>\n <div className={'relative flex w-full justify-center'}>\n <div\n data-testid={`stepper-step-container-${index}`}\n className={`mr-2 flex w-36 flex-col items-center ${variant === 'small' || isMobile ? 'gap-0.5' : 'gap-3'}`}\n >\n {/* Step circle */}\n <div\n data-testid={`stepper-step-circle-${index}`}\n onClick={() => isClickable && setStep(index)}\n className={cn(\n 'relative z-10 flex size-8 items-center justify-center rounded-full border border-gray-500 bg-white text-gray-500',\n {\n 'size-5': variant === 'small' || isMobile,\n 'cursor-pointer': isClickable,\n 'cursor-not-allowed': clickableSteps && !clickableSteps.includes(index),\n 'border-light-blue text-light-blue': index === activeStep,\n 'border-light-blueDisabled bg-light-blueDisabled border text-white': isCompleted,\n 'border-light-blue bg-light-blue': index < activeStep,\n },\n )}\n >\n {(index < activeStep || isCompleted) && (\n <div className=\"flex items-center justify-center text-white\">\n <IconCheck size={variant === 'small' || isMobile ? 7 : 12} />\n </div>\n )}\n {index === activeStep && (\n <div\n data-testid=\"active-step-indicator\"\n className={`${variant === 'small' || isMobile ? 'size-1' : 'size-2'} bg-light-blue rounded-full`}\n ></div>\n )}\n </div>\n\n {/* Label of step */}\n <div className=\"flex flex-wrap items-center justify-center\">\n <span\n className={`text-center ${variant === 'small' || isMobile ? 'text-xs-fields' : 'text-sm font-normal'} ${\n index <= activeStep ? 'text-gray-900' : 'text-gray-500'\n }`}\n >\n {step.label}\n </span>\n </div>\n\n {/* Line that connects the steps */}\n {index < steps.length && index !== 0 && (\n <div\n className={`${variant === 'small' || isMobile ? 'top-2.5' : 'top-4'} absolute z-0 h-px w-full -translate-x-1/2 ${index < activeStep + 1 ? 'bg-light-blue' : 'bg-gray-200'}`}\n />\n )}\n </div>\n </div>\n </div>\n );\n })}\n </div>\n );\n","'use client'\n\ninterface IStickyMobileButton {\n children: React.ReactNode;\n}\n\nexport const StickyMobileButtonWrapper = ({ children }: IStickyMobileButton) => (\n <div data-testid=\"sticky-mobile-button-wrapper\" className=\"fixed inset-x-0 bottom-0 z-40 w-full bg-white p-8 md:hidden\">\n <div data-testid=\"sticky-mobile-button-grid\" className=\"grid place-content-center\">{children}</div>\n </div>\n);\n","'use client'\nimport { type HTMLAttributes } from 'react';\n\nimport { cn } from '@utils/cn';\n\ninterface ITable extends HTMLAttributes<HTMLDivElement> {\n children?: React.ReactNode;\n}\n\nexport const Table = ({ children, className, ...props }: ITable) => (\n <div \n data-testid=\"table\" \n data-component=\"table\" \n className={cn('table w-full table-fixed border-collapse overflow-auto', className)}\n {...props}\n >\n {children}\n </div>\n);\n","'use client'\nimport { type HTMLAttributes } from 'react';\n\nimport { cn } from '@utils/cn';\n\ninterface ITableCell extends HTMLAttributes<HTMLDivElement> {\n children?: React.ReactNode;\n smallPadding?: boolean;\n}\n\nexport const TableCell = ({ children, smallPadding, className }: ITableCell) => (\n <div\n data-testid=\"tableCell\"\n data-component=\"tableCell\"\n className={`${cn(\n 'table-cell py-2 align-middle text-sm font-normal first:pl-2 last:pr-2 md:py-0 md:xl:first:pl-10 md:xl:last:pr-10',\n {\n 'md:xl:first:pl-5 md:xl:last:pr-5': smallPadding,\n },\n className,\n )}`}\n >\n {children}\n </div>\n);\n","'use client'\n\ninterface ITableHeader {\n children: React.ReactNode;\n}\n\nexport const TableHeader = ({ children }: ITableHeader) => (\n <div data-component=\"tableHeader\" data-testid=\"tableHeader\" className=\"table-header-group border-b border-gray-200\">\n {children}\n </div>\n);\n","'use client'\nimport { type HTMLAttributes } from 'react';\n\nimport { cn } from '@utils/cn';\n\ninterface ITableHeaderItem extends HTMLAttributes<HTMLDivElement> {\n children?: React.ReactNode;\n smallPadding?: boolean;\n}\n\nexport const TableHeaderItem = ({ children, smallPadding, className, ...props }: ITableHeaderItem) => (\n <div\n data-testid=\"tableHeaderItem\"\n data-component=\"tableHeaderItem\"\n className={cn(\n 'hidden h-10 align-middle text-xs font-medium first:pl-10 last:pr-10 xl:table-cell',\n {\n 'xl:first:pl-5 xl:last:pr-5': smallPadding,\n },\n className,\n )}\n {...props}\n >\n {children}\n </div>\n);\n","'use client';\nimport { type HTMLAttributes } from 'react';\n\ninterface ITableRow extends HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n}\n\nexport const TableHeaderRow = ({ children, ...props }: ITableRow) => (\n <div\n data-testid=\"tableHeaderRow\"\n data-component=\"tableHeaderRow\"\n className=\"table-row xl:border-0 xl:border-b xl:border-solid xl:border-gray-200\"\n {...props}\n >\n {children}\n </div>\n);\n","import { type HTMLAttributes } from 'react';\n\nimport { cn } from '@utils/cn';\n\ninterface ITableRow extends Omit<HTMLAttributes<HTMLDivElement>, 'className'> {\n children: React.ReactNode;\n className?: string;\n header?: boolean;\n}\n\nexport function TableRow({ children, className, header, ...props }: ITableRow) {\n return (\n <div\n data-testid=\"tableRow\"\n data-component=\"tableRow\"\n className={`${cn(\n 'table-row border-x-0 border-y-0 border-t border-solid border-gray-200 xl:border-t xl:border-solid xl:border-gray-200',\n 'hover:bg-ultra-light-blue',\n header && 'font-medium',\n className\n )}`}\n {...props}\n >\n {children}\n </div>\n );\n}\n","'use client';\nimport React, { forwardRef, type RefObject } from 'react';\n\nexport interface TabProps {\n setActiveTab: (tab: string) => void;\n tabId: string;\n ref: RefObject<HTMLButtonElement | null>;\n activeTab: boolean;\n tabContent: React.ReactNode | React.ReactNode[] | string;\n rightSection?: React.ReactNode | undefined;\n clickFnc: (tabId: string) => void;\n}\n\nexport const Tab = forwardRef<HTMLButtonElement, TabProps>(\n ({ tabId, activeTab, tabContent, clickFnc, rightSection }, ref) => (\n <button\n ref={ref}\n data-testid={`tab-${tabId}`}\n className={`${\n activeTab && 'text-light-blue bg-[#F0F0F6]'\n } bg-ultra-light-blue px-5 py-[10px] text-xs font-normal whitespace-nowrap text-black transition-colors duration-100 hover:border-black hover:bg-[#F0F0F6] data-active:border-black data-active:bg-[#F0F0F6] data-active:font-medium data-active:text-black`}\n onClick={() => clickFnc(tabId)}\n >\n {tabContent}\n {rightSection && <span className=\"ml-2 inline-flex\">{rightSection}</span>}\n </button>\n ),\n);\n","'use client';\n\nimport clsx from 'clsx';\n\nexport interface TabsBadgeProps {\n children: React.ReactNode;\n}\n\nexport const TabsBadge = ({ children }: TabsBadgeProps) => {\n const isCircular =\n (typeof children === 'number' && children <= 9) || (typeof children === 'string' && children.length === 1) || false;\n\n return (\n <div\n data-testid=\"tabs-badge\"\n className={clsx('bg-secondary h-5 rounded-full text-xs leading-5 font-medium text-white', {\n 'w-5 text-center': isCircular,\n 'px-2': !isCircular,\n })}\n >\n {children}\n </div>\n );\n};\n\nTabsBadge.displayName = 'TabsBadge';\n","'use client';\nimport { createRef, forwardRef, type ReactElement, type RefObject, useEffect, useMemo, useState } from 'react';\n\nimport { Tab } from './Tab';\n\ninterface ITab {\n name: string;\n value: string;\n rightSection?: ReactElement | undefined;\n clickFnc?: (val: string) => void;\n requiredPermissions?: string[];\n}\n\ninterface TabsWrapperProps {\n children?: React.ReactNode | React.ReactNode[];\n defaultActive?: string;\n setActiveTab: (value: string) => void;\n activeTab?: string;\n tabs: ITab[];\n}\n\nexport const TabsWrapper = ({ setActiveTab, activeTab, tabs }: TabsWrapperProps) => {\n const tabRefs = useMemo(() => {\n const refs: { [key: string]: RefObject<HTMLButtonElement> } = {};\n tabs?.forEach((tab) => {\n refs[tab.value] = createRef<HTMLButtonElement>();\n });\n return refs;\n }, [tabs]);\n\n const [underlineStyle, setUnderlineStyle] = useState({ width: 0, left: 0 });\n\n useEffect(() => {\n if (activeTab && tabRefs[activeTab]?.current) {\n const activeTabElement = tabRefs[activeTab].current;\n setUnderlineStyle({\n width: activeTabElement?.offsetWidth || 0,\n left: activeTabElement?.offsetLeft || 0,\n });\n }\n }, [activeTab, tabRefs]);\n\n return (\n <div className=\"w-full\">\n <div className=\"relative inline-block w-auto border-b-[3px] border-gray-200\">\n <div className=\"flex\">\n {tabs &&\n tabs?.map((tab) =>\n tab.requiredPermissions ? (\n // <Authorize key={tab.value} requiredPermissions={tab.requiredPermissions}>\n <TabContent\n key={tab.value}\n tab={tab}\n ref={tabRefs[tab.value]}\n setActiveTab={setActiveTab}\n activeTab={activeTab}\n />\n ) : (\n // </Authorize>\n <TabContent\n key={tab.value}\n tab={tab}\n ref={tabRefs[tab.value]}\n setActiveTab={setActiveTab}\n activeTab={activeTab}\n />\n ),\n )}\n </div>\n <div\n className=\"absolute h-[3px] bg-gray-900 transition-all duration-300\"\n style={{\n width: underlineStyle.width,\n left: underlineStyle.left,\n bottom: '-3px',\n }}\n />\n </div>\n </div>\n );\n};\n\nconst TabContent = forwardRef<\n HTMLButtonElement,\n { tab: ITab; setActiveTab: (val: string) => void; activeTab?: string }\n>(({ tab, setActiveTab, activeTab }, ref) => (\n <Tab\n ref={ref}\n tabId={tab.value}\n setActiveTab={setActiveTab}\n activeTab={activeTab === tab.value}\n tabContent={tab.name}\n rightSection={tab?.rightSection || undefined}\n clickFnc={() => {\n tab.clickFnc && tab.clickFnc(tab.value);\n setActiveTab(tab.value);\n }}\n />\n));\n\nTabContent.displayName = 'TabContent';\n","'use client'\n\nimport { forwardRef, type TextareaHTMLAttributes } from 'react';\n\nimport { cn } from '@utils/cn';\n\nexport interface ITextarea extends Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'className' | 'rows'> {\n label?: React.ReactNode;\n error?: string;\n className?: string;\n rows?: number;\n}\n\nexport const Textarea = forwardRef<HTMLTextAreaElement, ITextarea>(\n ({ className, label, error, rows = 8, ...props }, ref) => (\n <div className=\"relative grid gap-2\">\n {label && <label className=\"flex items-center gap-1 text-xs font-medium text-black\">{label}</label>}\n <textarea\n data-component=\"TextArea\"\n rows={rows}\n ref={ref}\n className={cn(\n 'disabled:bg-grey-100 bg-ultra-light-gray w-full rounded border border-gray-200 p-3 text-sm font-normal text-black placeholder:text-gray-800 focus:ring-0 focus:outline-hidden disabled:cursor-not-allowed disabled:border-gray-300',\n {\n 'border-red-500 text-red-500 selection:bg-red-200 focus:border-red-500 focus:ring-red-500 focus:placeholder:text-red-500 active:border-red-500 active:ring-red-500':\n !!error,\n },\n className,\n )}\n {...props}\n />\n {error && <small className=\"text-xs font-normal text-red-500\">{error}</small>}\n </div>\n ),\n);\n","'use client';\n\nimport { type HTMLAttributes } from 'react';\nimport { Tooltip } from 'react-tooltip';\n\nimport { cn } from '@utils/cn';\nimport { COLOR, THEME_ICON_STYLE_VARIANT } from '@utils/enums';\nimport formatIcon from '@utils/formatIcon';\n\nexport interface IThemeIcon extends Omit<HTMLAttributes<HTMLDivElement>, 'className'> {\n styleVariant?:\n | 'black'\n | 'gray'\n | 'secondary'\n | 'secondary-with-background'\n | 'turquoise'\n | 'accent-blue'\n | 'check'\n | 'warning'\n | 'error';\n icon: React.ReactNode;\n className?: string;\n adjustedSize?: string | number;\n title: string;\n}\n\nexport function ThemeIcon({ styleVariant = 'black', className, icon, adjustedSize, title, ...props }: IThemeIcon) {\n const classNames = cn(\n 'bg-transparent h-9 w-9 rounded-[5px] grid place-content-center',\n {\n 'text-black': styleVariant === COLOR.BLACK,\n 'text-gray-500': styleVariant === COLOR.GRAY,\n 'text-secondary': styleVariant === COLOR.SECONDARY,\n 'bg-gray-50 text-secondary': styleVariant === THEME_ICON_STYLE_VARIANT.SECONDARY_WITH_BACKGROUND,\n 'text-primary': styleVariant === COLOR.TURQUOISE,\n 'text-accent-blue': styleVariant === COLOR.ACCENT_BLUE,\n 'text-check': styleVariant === COLOR.CHECK,\n 'text-warning': styleVariant === COLOR.WARNING,\n 'text-red-500': styleVariant === COLOR.ERROR,\n },\n className,\n );\n\n return (\n <>\n <div\n data-testid=\"theme-icon\"\n data-tooltip-id={title}\n data-tooltip-content={title}\n data-component=\"ThemeIcon\"\n className={classNames}\n {...props}\n >\n {formatIcon(icon, {\n strokeWidth: '1',\n size: adjustedSize ? adjustedSize : 20,\n })}\n </div>\n <Tooltip id={title} />\n </>\n );\n}\n","'use client';\nimport React, { type ChangeEvent, forwardRef } from 'react';\n\nexport interface ITimeInput extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'> {\n 'data-testid'?: string;\n label?: string;\n error?: string;\n withSeconds?: boolean;\n}\n\nexport const TimeInput = forwardRef<HTMLInputElement, ITimeInput>(\n ({ label, error, withSeconds, className = '', ...props }, ref) => {\n const handleTimeChange = (e: ChangeEvent<HTMLInputElement>) => {\n if (props.onChange) props.onChange(e);\n };\n\n return (\n <div className=\"leading-none\" data-component=\"timeInput\">\n {label && (\n <label className=\"mb-2 block text-xs font-medium\" htmlFor={props.id}>\n {label}\n </label>\n )}\n <input\n {...props}\n ref={ref}\n type=\"time\"\n step={withSeconds ? '1' : '60'}\n onChange={handleTimeChange}\n className={`bg-ultra-light-gray focus:border-primary flex h-10 min-h-[36px] w-full items-center rounded-[5px] border border-solid border-gray-200 px-3 text-sm font-normal focus:outline-hidden ${error ? 'border-red-500' : ''} ${className}`}\n />\n {error && <p className=\"pt-2 text-xs font-normal text-red-500\">{error}</p>}\n </div>\n );\n },\n);","'use client'\ninterface ToggleProps {\n onClick: () => void;\n value: boolean;\n disabled?: boolean;\n}\n\nexport const Toggle = ({ onClick, value, disabled = false }: ToggleProps) => {\n const handleToggle = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (!disabled) onClick();\n };\n\n return (\n <div onClick={handleToggle} className=\"cursor-pointer\" data-testid=\"toggle-wrapper\">\n <div\n data-testid=\"toggle-background\"\n className={`relative h-6 w-12 rounded-xl ${\n value ? (disabled ? 'bg-turquoise-200' : 'bg-turquoise-500') : 'bg-gray-500'\n } ${disabled && 'cursor-not-allowed'}`}\n >\n <span\n data-testid=\"toggle-circle\"\n className={`absolute block size-[20px] rounded-full bg-white ${\n value ? 'translate-x-[26px] translate-y-[2px]' : 'translate-x-[2px] translate-y-[2px]'\n }`}\n ></span>\n </div>\n </div>\n );\n};\n","'use client';\nimport { useEffect, useState } from 'react';\n\nimport { IconMessageDots } from '@tabler/icons-react';\n\nimport { Tooltip } from '../tooltip';\n\ninterface ITruncatedText {\n text: string;\n limit?: number;\n}\n\nexport const TruncatedText = ({ text, limit = 20 }: ITruncatedText) => {\n const [truncatedText, setTruncatedText] = useState(text);\n\n useEffect(() => {\n if (text.length > limit) setTruncatedText(text.substring(0, limit) + '...');\n else setTruncatedText(text);\n }, [text, limit]);\n\n return (\n <div className=\"flex items-center gap-2\">\n <span className=\"text-sm font-normal\">{truncatedText}</span>\n {text.length > limit && (\n <Tooltip content={text}>\n <span className=\"text-secondary\" data-testid=\"truncated-text-icon\">\n <IconMessageDots stroke={1} />\n </span>\n </Tooltip>\n )}\n </div>\n );\n};\n","'use client'\n\nimport { cn } from '@utils/cn';\n\ntype IUnorderedListProps = {\n children: React.ReactNode;\n className?: string;\n actionItem?: React.ReactNode;\n};\n\nexport const UnorderedList = ({ children, className, actionItem, ...props }: IUnorderedListProps) => (\n <ul className={cn('m-0 last:border-none', className)} data-component=\"unorderedList\" data-testid=\"unorderedList\" {...props}>\n {children}\n {actionItem && <span className=\"flex items-center\">{actionItem}</span>}\n </ul>\n);\n","'use client'\n\nimport { cn } from '@utils/cn';\n\ntype IUnorderedListProps = {\n children: React.ReactNode;\n actionItem?: React.ReactNode;\n className?: string;\n header?: boolean;\n};\n\nexport const UnorderedListItem = ({\n children,\n actionItem,\n className,\n header = false,\n ...props\n}: IUnorderedListProps) => (\n <li\n {...props}\n data-component=\"unorderedListItem\"\n className={cn(\n 'grid min-h-[74px] list-none items-center border-b border-solid border-b-gray-200 py-5 text-sm font-normal last:border-none md:flex md:py-4 md:pr-10 md:pl-10',\n header ? 'md:items-end' : 'hover:bg-ultra-light-blue',\n {\n 'grid-cols-2': actionItem,\n },\n className,\n )}\n >\n {children}\n\n {actionItem && <span className=\"flex justify-end gap-2 md:absolute md:right-8 md:items-center\">{actionItem}</span>}\n </li>\n);\n","import { useCallback } from 'react';\n\nimport phone, { type PhoneInvalidResult, type PhoneValidResult } from 'phone';\n\ninterface PhoneOptions {\n country?: string;\n validateMobilePrefix?: boolean;\n strictDetection?: boolean;\n}\n\nexport function usePhoneNumber() {\n /**\n * Validates a phone number and returns parsing results\n */\n const validatePhone = useCallback(\n (phoneNumber: string, options?: PhoneOptions): PhoneValidResult | PhoneInvalidResult => phone(phoneNumber, options),\n [],\n );\n\n /**\n * Strips the country code from a phone number\n * Example: +85265698900 -> 65698900\n */\n const stripCountryCode = useCallback((phoneNumber: string): string => {\n const result = phone(phoneNumber);\n\n if (!result.isValid) return phoneNumber;\n\n return result.phoneNumber.replace(result.countryCode, '');\n }, []);\n\n /**\n * Returns the country code from a phone number\n * Example: +85265698900 -> +852\n */\n const getCountryCode = useCallback((phoneNumber: string): string => {\n const result = phone(phoneNumber);\n\n if (!result.isValid) return phoneNumber;\n\n return result.countryCode;\n }, []);\n\n /**\n * Formats a phone number to international format with country code\n * Example: 0648711212 (with country: 'NL') -> +31648711212\n */\n const formatToInternational = useCallback((phoneNumber: string, options?: PhoneOptions): string => {\n const result = phone(phoneNumber, options);\n\n if (!result.isValid) return phoneNumber;\n\n return result.phoneNumber;\n }, []);\n\n return {\n validatePhone,\n stripCountryCode,\n getCountryCode,\n formatToInternational,\n };\n}\n","import CountryList from 'country-list-with-dial-code-and-flag';\n\nexport const usePhoneNumberPrefix = (defaultCountry: string) => {\n const countryList = CountryList.getAll();\n\n return countryList\n .filter((country) => country.dial_code)\n .sort((a, b) => {\n if (a?.code === defaultCountry) return -1;\n if (b?.code === defaultCountry) return 1;\n\n return a.name.localeCompare(b.name);\n });\n};\n","import {\n type ChangeEvent,\n type KeyboardEvent,\n type RefObject,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react';\n\nimport { TextInput, type TextInputProps } from '@components/textInput';\nimport {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingPortal,\n offset,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n} from '@floating-ui/react';\nimport { usePhoneNumber } from '@hooks/phone/usePhoneNumber';\nimport { usePhoneNumberPrefix } from '@hooks/phone/usePhoneNumberPrefix';\nimport { cn } from '@utils/cn';\nimport { type Country } from 'country-list-with-dial-code-and-flag';\n\ninterface CountryType {\n name: string;\n dial_code: string;\n code: string;\n flag: string;\n}\n\ninterface CountrySelectorRef {\n updateCountry: (countryCode: string) => void;\n getSelectedCountry: () => CountryType | null;\n}\n\ninterface CountrySelectorProps {\n searchPlaceholder: string;\n defaultCountry: string;\n ref: RefObject<CountrySelectorRef>;\n}\n\nconst CountrySelector = ({ searchPlaceholder, defaultCountry, ref }: CountrySelectorProps) => {\n const phoneNumberPrefixes = usePhoneNumberPrefix(defaultCountry);\n const [selectedCountry, setSelectedCountry] = useState<CountryType | null>(\n phoneNumberPrefixes.find((country) => country.code === defaultCountry) || null,\n );\n const [openDropdown, setOpenDropdown] = useState(false);\n const [searchQuery, setSearchQuery] = useState('');\n const [filteredCountries, setFilteredCountries] = useState(phoneNumberPrefixes);\n const [highlightedIndex, setHighlightedIndex] = useState(-1);\n const optionRefs = useRef<(HTMLButtonElement | null)[]>([]);\n\n const { refs, floatingStyles, context } = useFloating({\n open: openDropdown,\n onOpenChange: (isOpen) => {\n setOpenDropdown(isOpen);\n if (isOpen) setHighlightedIndex(-1);\n },\n middleware: [offset(4), flip(), shift()],\n whileElementsMounted: autoUpdate,\n placement: 'bottom-start',\n });\n\n const click = useClick(context);\n const dismiss = useDismiss(context);\n const role = useRole(context, { role: 'combobox' });\n const { getReferenceProps, getFloatingProps } = useInteractions([click, dismiss, role]);\n\n const performSearch = useCallback(\n (query: string): CountryType[] => {\n if (!query) return phoneNumberPrefixes;\n const lowerQuery = query.toLowerCase();\n return phoneNumberPrefixes.filter(\n (country) =>\n country.name.toLowerCase().includes(lowerQuery) ||\n country.dial_code.toLowerCase().includes(lowerQuery) ||\n country.code.toLowerCase().includes(lowerQuery),\n );\n },\n [phoneNumberPrefixes],\n );\n\n useEffect(() => {\n const results = performSearch(searchQuery);\n setFilteredCountries(results as Country[]);\n setHighlightedIndex(-1);\n }, [searchQuery]);\n\n useEffect(() => {\n optionRefs.current = optionRefs.current.slice(0, filteredCountries.length);\n }, [filteredCountries]);\n\n useEffect(() => {\n if (highlightedIndex >= 0 && optionRefs.current[highlightedIndex]) {\n optionRefs.current[highlightedIndex]?.scrollIntoView({\n behavior: 'auto',\n block: 'nearest',\n });\n }\n }, [highlightedIndex]);\n\n const handleSelect = (country: CountryType) => {\n setSelectedCountry(country);\n setOpenDropdown(false);\n };\n\n const handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n if (filteredCountries.length === 0) return;\n\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n setHighlightedIndex((prev) => (prev < filteredCountries.length - 1 ? prev + 1 : 0));\n break;\n case 'ArrowUp':\n e.preventDefault();\n setHighlightedIndex((prev) => (prev > 0 ? prev - 1 : filteredCountries.length - 1));\n break;\n case 'Enter': {\n e.preventDefault();\n if (highlightedIndex >= 0) handleSelect(filteredCountries[highlightedIndex]);\n break;\n }\n case 'Escape':\n e.preventDefault();\n setOpenDropdown(false);\n break;\n }\n };\n\n useImperativeHandle(ref, () => ({\n updateCountry: (countryCode: string) => {\n const country = phoneNumberPrefixes.find((c) => c.dial_code === countryCode);\n if (country) setSelectedCountry(country);\n },\n getSelectedCountry: () => selectedCountry,\n }));\n\n return (\n <div className=\"relative\">\n <button\n type=\"button\"\n ref={refs.setReference}\n {...getReferenceProps()}\n className={cn('flex h-10 items-center justify-between px-2 text-sm transition-colors')}\n aria-haspopup=\"listbox\"\n aria-expanded={openDropdown}\n aria-label={`Country selector. Currently selected: ${selectedCountry?.name || 'None'} ${selectedCountry?.dial_code || ''}`}\n >\n <div className=\"flex items-center gap-1\">\n <span className=\"text-xs font-medium\">{selectedCountry?.dial_code}</span>\n </div>\n </button>\n\n {openDropdown && (\n <FloatingPortal>\n <FloatingFocusManager context={context} modal={false}>\n <div\n ref={refs.setFloating}\n style={{\n ...floatingStyles,\n width: '280px',\n }}\n {...getFloatingProps()}\n role=\"listbox\"\n aria-label=\"Country selection\"\n className={cn(\n 'z-[999] rounded-md border border-gray-200 bg-white shadow-lg',\n 'overflow-hidden animate-in fade-in',\n )}\n >\n <div className=\"p-2 border-b border-gray-100\">\n <TextInput\n placeholder={searchPlaceholder}\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n onKeyDown={handleKeyDown}\n autoFocus\n aria-label=\"Search countries\"\n role=\"searchbox\"\n />\n </div>\n\n <div className=\"max-h-[200px] overflow-auto p-1\">\n {filteredCountries.length > 0 ? (\n filteredCountries.map((country, index) => (\n <button\n key={country.code + country.name + country.dial_code}\n ref={(el) => (optionRefs.current[index] = el)}\n type=\"button\"\n role=\"option\"\n aria-selected={selectedCountry?.code === country.code}\n onClick={() => handleSelect(country)}\n className={cn(\n 'flex w-full items-center gap-3 rounded px-3 py-2 text-sm hover:bg-gray-50',\n selectedCountry?.code === country.code && 'bg-gray-50',\n highlightedIndex === index && 'bg-gray-50 border border-gray-100',\n )}\n >\n <span className=\"text-base\">{country.flag}</span>\n <span className=\"flex-1 text-left truncate\">{country.name}</span>\n <span className=\"text-xs font-medium text-gray-600\">{country.dial_code}</span>\n </button>\n ))\n ) : (\n <div className=\"px-3 py-2 text-sm text-gray-500 text-center\">No countries found</div>\n )}\n </div>\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </div>\n );\n};\n\ninterface PhoneInputProps extends Omit<TextInputProps, 'onChange' | 'value' | 'ref'> {\n searchPlaceHolder: string;\n defaultCountry?: string;\n invalidMessage: string;\n defaultValue?: string;\n onChange: (value: string) => void;\n ref?: RefObject<HTMLInputElement>;\n}\n\nexport const PhoneInput = ({\n placeholder,\n searchPlaceHolder,\n defaultCountry = 'NL',\n invalidMessage,\n defaultValue,\n onChange,\n ref,\n ...rest\n}: PhoneInputProps) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const [phoneNumber, setPhoneNumber] = useState(defaultValue || '');\n const { validatePhone, stripCountryCode, getCountryCode, formatToInternational } = usePhoneNumber();\n const countrySelectorRef = useRef<CountrySelectorRef>(null);\n const [error, setError] = useState('');\n\n // Filter input to only allow numbers, +, and ()\n const filterPhoneInput = (value: string): string => value.replace(/[^0-9+()]/g, '');\n\n const handlePhoneNumberChange = (e: ChangeEvent<HTMLInputElement>) => {\n const filteredValue = filterPhoneInput(e.target.value);\n\n if (error) setError('');\n\n if (filteredValue.startsWith('+') && filteredValue.length > 1) {\n const countryCode = getCountryCode(filteredValue);\n if (countryCode) countrySelectorRef.current?.updateCountry(countryCode);\n const strippedNumber = stripCountryCode(filteredValue);\n setPhoneNumber(strippedNumber);\n return;\n } else setPhoneNumber(filteredValue);\n };\n\n const handleBlur = () => {\n if (phoneNumber.trim()) {\n const selectedCountry = countrySelectorRef.current?.getSelectedCountry();\n const validationResult = validatePhone(phoneNumber, {\n country: selectedCountry?.code,\n });\n if (validationResult.isValid) {\n const formattedNumber = formatToInternational(phoneNumber, {\n country: selectedCountry?.code,\n });\n const displayNumber = stripCountryCode(formattedNumber);\n const fullNumber = selectedCountry?.dial_code + displayNumber;\n setPhoneNumber(displayNumber);\n onChange(fullNumber);\n } else setError(invalidMessage);\n }\n };\n\n return (\n <TextInput\n {...rest}\n value={phoneNumber}\n onChange={handlePhoneNumberChange}\n onBlur={handleBlur}\n leftSection={\n <CountrySelector\n ref={countrySelectorRef}\n searchPlaceholder={searchPlaceHolder}\n defaultCountry={defaultCountry}\n />\n }\n placeholder={placeholder}\n error={error}\n ref={ref || inputRef}\n aria-label=\"Phone number input\"\n inputMode=\"tel\"\n autoComplete=\"tel\"\n />\n );\n};\n\nPhoneInput.displayName = 'PhoneInput';\n","'use client';\nimport React, { type ReactNode, useCallback, useEffect, useRef, useState } from 'react';\n\nimport { buttonVariants } from '@components/button/buttonVariants';\nimport { UnstyledButton } from '@components/unstyledButton';\nimport { cn } from '@utils/cn';\n\ninterface IProfileMenu {\n title?: ReactNode;\n metaTitle?: string;\n icon?: ReactNode;\n disabled?: boolean;\n classNames?: {\n root?: string;\n button?: string;\n menu?: string;\n };\n content: {\n key: number;\n onClick: () => void;\n title: string;\n disabled?: boolean;\n }[];\n}\n\nexport const ProfileMenu = ({ title, metaTitle, icon, content, disabled = false, classNames }: IProfileMenu) => {\n const [isOpen, setIsOpen] = useState(false);\n const [focusedIndex, setFocusedIndex] = useState(-1);\n const menuRef = useRef<HTMLDivElement>(null);\n const buttonRef = useRef<HTMLButtonElement>(null);\n const menuItemRefs = useRef<(HTMLButtonElement | null)[]>([]);\n /* istanbul ignore next - id generation not critical to logic and flaky in coverage */\n const menuId = `profile-menu-${metaTitle || 'default'}`;\n /* istanbul ignore next - id generation not critical to logic and flaky in coverage */\n const buttonId = `${menuId}-button`;\n\n const defaultStyling =\n 'text-black flex items-center gap-1 bg-transparent py-1 px-2.5 h-9 min-w-9 cursor-pointer border-gray-200 focus:bg-gray-50 focus:ring focus:ring-primary focus:outline-none focus:border-0 focus:ring-inset';\n\n const handleToggle = () => {\n if (!disabled) {\n setIsOpen((prev) => {\n const newIsOpen = !prev;\n /* istanbul ignore next - branch depends on async DOM focus */\n if (newIsOpen) {\n // Focus first menu item when opening\n setTimeout(() => {\n /* istanbul ignore next - async focus behavior depends on DOM/timing */\n setFocusedIndex(0);\n /* istanbul ignore next - async focus behavior depends on DOM/timing */\n menuItemRefs.current[0]?.focus();\n }, 0);\n } else {\n /* istanbul ignore next - focus reset depends on DOM/timing */\n setFocusedIndex(-1);\n /* istanbul ignore next - focus reset depends on DOM/timing */\n buttonRef.current?.focus();\n }\n return newIsOpen;\n });\n }\n };\n\n /* istanbul ignore next - click handler behavior covered via integration; unit env flaky */\n const handleItemClick = (onClick: () => void) => {\n if (!disabled) {\n onClick();\n setIsOpen(false);\n setFocusedIndex(-1);\n\n /* istanbul ignore next - async focus timing not reliable in unit tests */\n setTimeout(() => buttonRef.current?.focus(), 0);\n }\n };\n\n /* istanbul ignore next - relies on document events; hard to unit test reliably */\n const handleClickOutside = (event: MouseEvent) => {\n if (menuRef.current && !menuRef.current.contains(event.target as Node)) {\n setIsOpen(false);\n setFocusedIndex(-1);\n }\n };\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n /* istanbul ignore next - early return depends on open state timing */\n if (!isOpen) return;\n /* istanbul ignore next - keyboard navigation covered by e2e; unit env is flaky */\n switch (event.key) {\n case 'Escape':\n event.preventDefault();\n setIsOpen(false);\n setFocusedIndex(-1);\n buttonRef.current?.focus();\n break;\n case 'ArrowDown':\n event.preventDefault();\n setFocusedIndex((prev) => {\n const nextIndex = prev < content.length - 1 ? prev + 1 : 0;\n menuItemRefs.current[nextIndex]?.focus();\n return nextIndex;\n });\n break;\n case 'ArrowUp':\n event.preventDefault();\n setFocusedIndex((prev) => {\n const nextIndex = prev > 0 ? prev - 1 : content.length - 1;\n menuItemRefs.current[nextIndex]?.focus();\n return nextIndex;\n });\n break;\n case 'Home':\n event.preventDefault();\n setFocusedIndex(0);\n menuItemRefs.current[0]?.focus();\n break;\n case 'End': {\n event.preventDefault();\n const lastIndex = content.length - 1;\n setFocusedIndex(lastIndex);\n menuItemRefs.current[lastIndex]?.focus();\n break;\n }\n }\n },\n [isOpen, content.length],\n );\n\n /* istanbul ignore next - global listeners are not reliably asserted in unit tests */\n useEffect(() => {\n document.addEventListener('mousedown', handleClickOutside);\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [handleKeyDown]);\n\n return (\n <>\n <div\n className={cn('relative', classNames?.root)}\n data-component=\"ProfileMenu\"\n data-testid=\"profile-menu\"\n ref={menuRef}\n data-context-menu-id={metaTitle}\n data-context-menu-content={metaTitle}\n >\n <UnstyledButton\n ref={buttonRef}\n id={buttonId}\n aria-label=\"Toggle profile menu\"\n aria-expanded={isOpen}\n aria-haspopup=\"menu\"\n aria-controls={isOpen ? menuId : undefined}\n className={cn(buttonVariants['secondary'], defaultStyling, classNames?.button)}\n disabled={disabled}\n onClick={handleToggle}\n >\n {title && <span className=\"hidden font-normal md:block\">{title}</span>}\n {icon}\n </UnstyledButton>\n {isOpen && (\n <div\n id={menuId}\n role=\"menu\"\n aria-labelledby={buttonId}\n className={cn(\n 'absolute right-0 z-10 mt-2 w-auto min-w-[200px] rounded-md border-[0.0625rem] border-gray-200 bg-white p-1 shadow-md',\n classNames?.menu,\n )}\n >\n {content.map(\n /* istanbul ignore next - render callback not meaningful for unit coverage */\n (c, index) => (\n <UnstyledButton\n key={index}\n ref={\n /* istanbul ignore next - ref setter is a render-time callback */\n (el) => {\n menuItemRefs.current[index] = el;\n }\n }\n role=\"menuitem\"\n tabIndex={-1}\n onClick={\n /* istanbul ignore next - inline handler wrapper */\n () => handleItemClick(c.onClick)\n }\n className={cn(\n 'w-full rounded-md px-4 py-2 text-left text-sm font-normal whitespace-nowrap transition-colors',\n 'focus:ring-primary hover:bg-gray-50 focus:bg-gray-50 focus:ring focus:outline-none focus:ring-inset',\n c.disabled && 'cursor-not-allowed opacity-50',\n focusedIndex === index && 'bg-gray-50',\n )}\n aria-label={c.title}\n disabled={c.disabled}\n >\n {c.title}\n </UnstyledButton>\n ),\n )}\n </div>\n )}\n </div>\n </>\n );\n};\n\n","export const isSSR = () =>\n typeof window === 'undefined' || typeof document === 'undefined';","'use client';\nimport { forwardRef, useEffect, useImperativeHandle } from 'react';\n\nimport {\n IconBold,\n IconClearFormatting,\n IconItalic,\n IconList,\n IconListNumbers,\n IconUnderline,\n} from '@tabler/icons-react';\nimport { Placeholder } from '@tiptap/extension-placeholder';\nimport { Underline } from '@tiptap/extension-underline';\nimport { EditorContent, useEditor } from '@tiptap/react';\nimport { StarterKit } from '@tiptap/starter-kit';\nimport { cn } from '@utils/cn';\nimport { isSSR } from '@utils/ssr';\n\nexport interface IWysiwygEditorImperativeHandle {\n resetContent: (newContent: string) => void;\n}\ninterface IWysiwygEditor {\n id: string;\n content?: string;\n placeholder?: string;\n forceRefresh?: boolean;\n readOnly?: boolean;\n onChange?: (v: string) => void;\n error?: string;\n className?: string;\n formName?: string;\n}\n\nconst BoldIcon = () => <IconBold size={18} stroke={1.5} />;\nconst ItalicIcon = () => <IconItalic size={18} stroke={1.5} />;\nconst UnderlineIcon = () => <IconUnderline size={18} stroke={1.5} />;\nconst ClearFormattingIcon = () => <IconClearFormatting size={18} stroke={1.5} />;\nconst ListIcon = () => <IconList size={18} stroke={1.5} />;\nconst ListNumbersIcon = () => <IconListNumbers size={18} stroke={1.5} />;\n\nexport const WysiwygEditor = forwardRef(\n ({ id, content, className, placeholder, onChange, readOnly, error }: IWysiwygEditor, ref) => {\n const editor = useEditor({\n extensions: [\n StarterKit,\n Underline,\n Placeholder.configure({\n placeholder: placeholder,\n }),\n ],\n editorProps: {\n attributes: {\n class:\n 'min-h-[190px] md:min-h-[150px] bg-ultra-light-gray text-sm font-normal p-4 prose prose-sm sm:prose-base lg:prose-lg xl:prose-2xl focus:outline-hidden',\n },\n },\n content: content,\n immediatelyRender: false,\n editable: !readOnly,\n onUpdate({ editor }) {\n let sanitizedOutput = editor.getHTML().replaceAll(/<li><p>(.*?)<\\/p><(\\/?)(ol|li|ul)>/gi, '<li>$1<$2$3>');\n\n // Replace multiple consecutive empty paragraphs with a single one\n sanitizedOutput = sanitizedOutput.replace(/(<p><\\/p>\\s*)+/gi, '<p></p>');\n\n // Remove empty <p></p> tags from the start\n sanitizedOutput = sanitizedOutput.replace(/^(<p><\\/p>\\s*)+/gi, '');\n\n // Remove empty <p></p> tags from the end\n sanitizedOutput = sanitizedOutput.replace(/(<p><\\/p>\\s*)+$/gi, '');\n\n // Replace remaining <p></p> tags (single empty lines between paragraphs) with a regular break\n sanitizedOutput = sanitizedOutput.replace(/<p><\\/p>/gi, '<br>');\n\n onChange && onChange(sanitizedOutput);\n },\n });\n\n useEffect(() => {\n if (!editor) return;\n if (content === null) editor.commands.setContent('');\n }, [content, editor]);\n\n useEffect(() => {\n if (!editor) return;\n editor.setEditable(readOnly ? !readOnly : true);\n }, [readOnly, editor]);\n\n useImperativeHandle(\n ref,\n () => ({\n resetContent(newContent: string) {\n editor?.commands?.setContent(newContent);\n },\n }),\n [editor],\n );\n\n if (isSSR()) return null;\n\n return (\n <div>\n <div\n data-testid={`${id}-container`}\n className={cn('rounded-md border border-gray-200', className, error && 'border-red-600')}\n >\n {editor && (\n <div className=\"flex flex-wrap gap-2 border-b border-gray-200 p-2\">\n <div className=\"flex flex-row divide-x divide-gray-400 rounded-md border border-gray-400\">\n <button\n type=\"button\"\n data-testid=\"bold-button\"\n onClick={() => editor.chain().focus().toggleBold().run()}\n className={`${editor.isActive('bold') ? 'bg-primary/20' : 'bg-white'} flex size-[26px] items-center justify-center rounded-l-md border-gray-400 text-xs font-normal hover:bg-gray-100 focus:ring-2 focus:ring-teal-500 focus:outline-hidden`}\n >\n <BoldIcon />\n </button>\n <button\n type=\"button\"\n data-testid=\"italic-button\"\n onClick={() => editor.chain().focus().toggleItalic().run()}\n className={`${editor.isActive('italic') ? 'bg-primary/20' : 'bg-white'} flex size-[26px] items-center justify-center border-gray-400 text-xs font-normal hover:bg-gray-100 focus:ring-2 focus:ring-teal-500 focus:outline-hidden`}\n >\n <ItalicIcon />\n </button>\n <button\n type=\"button\"\n data-testid=\"underline-button\"\n onClick={() => editor.chain().focus().toggleUnderline().run()}\n className={`${editor.isActive('underline') ? 'bg-primary/20' : 'bg-white'} flex size-[26px] items-center justify-center border-gray-400 text-xs font-normal hover:bg-gray-100 focus:ring-2 focus:ring-teal-500 focus:outline-hidden`}\n >\n <UnderlineIcon />\n </button>\n <button\n type=\"button\"\n data-testid=\"clear-formatting-button\"\n onClick={() => editor.chain().focus().clearNodes().unsetAllMarks().run()}\n className={\n 'flex size-[26px] items-center justify-center rounded-r-md border-gray-400 bg-white text-xs font-normal hover:bg-gray-100 focus:ring-2 focus:ring-teal-500 focus:outline-hidden'\n }\n >\n <ClearFormattingIcon />\n </button>\n </div>\n <div className=\"flex flex-row divide-x divide-gray-400 rounded-md border border-gray-400\">\n <button\n type=\"button\"\n data-testid=\"bullet-list-button\"\n onClick={() => editor.chain().focus().toggleBulletList().run()}\n className={`${editor.isActive('bulletList') ? 'bg-primary/20' : 'bg-white'} flex size-[26px] items-center justify-center rounded-l-md border-gray-400 text-xs font-normal hover:bg-gray-100 focus:ring-2 focus:ring-teal-500 focus:outline-hidden`}\n >\n <ListIcon />\n </button>\n <button\n type=\"button\"\n data-testid=\"ordered-list-button\"\n onClick={() => editor.chain().focus().toggleOrderedList().run()}\n className={`${editor.isActive('orderedList') ? 'bg-primary/20 text-primary' : 'bg-white'} flex size-[26px] items-center justify-center rounded-r-md border-gray-400 text-xs font-normal hover:bg-gray-100 focus:ring-2 focus:ring-teal-500 focus:outline-hidden`}\n >\n <ListNumbersIcon />\n </button>\n </div>\n </div>\n )}\n <EditorContent\n editor={editor}\n data-component=\"wysiwygEditor\"\n data-testid={id}\n id={id}\n className={cn('overflow-hidden rounded-[inherit]')}\n />\n </div>\n {error && <span className=\"mt-1 text-xs font-normal text-red-600\">{error}</span>}\n </div>\n );\n },\n);\n"],"mappings":"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cAChE;KACG,kBACN,2BAACC;IACC,KAAK;IACI;IACT,OAAO;IACP,QAAQ;IACR,WAAW;IACX,eAAY;IACZ,WAAU;KACV;IACE,mBAEN,4BAAC;GAAI,eAAY;GAAoB,WAAU;8BAC7C,2BAAC;IACC,eAAY;IACZ,YAAY,EAAE,YAAY,MAAM;8BAEhC,2BAAC,iBAAG,UAAY;KACZ,EACL,SAAS,uBACR,2BAACA;IACC,KAAK;IACI;IACT,OAAO;IACP,QAAQ;IACR,WAAW;IACX,MAAK;IACL,WAAU;IACV,eAAY;KACZ,mBAEF,2BAACA;IACC,KAAK;IACI;IACT,OAAO;IACP,QAAQ;IACR,WAAW;IACX,MAAK;IACL,WAAU;IACV,eAAY;KACZ;IAEA;GAEJ,IAEP;AAEN;AAED,QAAQ,cAAc;;;;ACrItB,IAAY,kFAAL;AACL;AACA;AACA;AACA;;AACD;AAED,IAAY,gFAAL;AACL;;AACD;AAED,IAAY,0CAAL;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACD;AAED,IAAY,4CAAL;AACL;AACA;AACA;;AACD;AAED,IAAY,0DAAL;AACL;AACA;;AACD;;;;AC/CD,MAAMC,gCAAwF,CAAE;;;;;;AAOhG,SAAwB,WACtBC,MACAC,yBACA;AACA,MAAK,cAAM,eAAe,KAAK,CAAE,QAAO;AAExC,QAAO,wBAAa,MAAM;EACxB,GAAG;EACH,GAAG;EACH,GAAI,KAAK;EACT,GAAG,EACD,WAAW,kBACT,8BAA8B,WAC9B,wBAAwB,WACvB,KAAK,MAAgC,UACvC,CACF;CACF,EAAC;AACH;;;;ACGD,MAAM,aAAa,CAAC,EAClB,KACA,OACA,WAAW,OACX,eAAe,WACf,MACA,OAAO,UACP,eAAe,QACf,WAAW,IACX,cAAc,GACd,SACA,UACA,GAAG,OACa,KAAK;CACrB,MAAM,oBAAoB,kBAAK;EAC7B,mMACE,iBAAiB,0BAA0B;EAC7C,4KACE,iBAAiB,0BAA0B;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"}
1
+ {"version":3,"file":"index.cjs","names":["React","Fragment","IconChevronDown","value: T","autoUpdate","FloatingArrow","globalDefaultFormatAttributes: SVGAttributes<SVGElement> & HTMLAttributes<SVGElement>","icon: React.ReactNode","defaultFormatAttributes: (SVGAttributes<SVGElement> & HTMLAttributes<SVGElement>) | IconProps","typeConfig: Record<AlertType, { bg: string; iconColor: string; Icon: React.ElementType }>","IconCircleCheck","IconAlertTriangle","IconAlertCircle","IconX","props: SVGProps<SVGSVGElement>","IconEyeCheck","IconEyeOff","IconArrowNarrowLeft","event: React.MouseEvent<HTMLButtonElement>","ref: React.Ref<HTMLInputElement>","autoUpdate","IconX","event: MouseEvent","date: Date | undefined","day: IDay","DayPicker","newMonth","today","IconCalendar","IconX","IconHeartFilled","IconHeart","IconFilter","filter: string","props: SVGProps<SVGSVGElement>","onClick: () => void","event: MouseEvent","IconDotsVertical","button","Fragment","props: SVGProps<SVGSVGElement>","event: MouseEvent","event: KeyboardEvent","IconX","IconChevronLeft","IconChevronRight","e: ChangeEvent<HTMLInputElement>","props: SVGProps<SVGSVGElement>","props: SVGProps<SVGSVGElement>","props: SVGProps<SVGSVGElement>","sizeClasses","value: number","roundedRating","hasHalf","effectiveRating","fullStars","className","rating: number","IconChevronUp","Tooltip","value: T","autoUpdate","val: string","e: PointerEvent","event: KeyboardEvent","e: KeyboardEvent","IconX","IconSelector","FloatingPortal","FloatingFocusManager","IconSearch","IconCheck","Fragment","IconCheck","IconCheck","refs: { [key: string]: RefObject<HTMLButtonElement> }","Tooltip","e: ChangeEvent<HTMLInputElement>","e: React.MouseEvent","IconMessageDots","phoneNumber: string","options?: PhoneOptions","defaultCountry: string","autoUpdate","query: string","country: CountryType","e: KeyboardEvent<HTMLInputElement>","countryCode: string","FloatingPortal","FloatingFocusManager","value: string","e: ChangeEvent<HTMLInputElement>","onClick: () => void","event: MouseEvent","event: KeyboardEvent","IconBold","IconItalic","IconUnderline","IconClearFormatting","IconList","IconListNumbers","StarterKit","Underline","newContent: string","EditorContent"],"sources":["../src/jsx-runtime-shim.ts","../src/utils/cn.ts","../src/components/unstyledButton/index.tsx","../src/components/accordion/AccordionItem.tsx","../src/components/accordion/AccordionWrapper.tsx","../src/hooks/useMergeRefs.ts","../src/components/tooltip/index.tsx","../src/utils/enums.ts","../src/utils/formatIcon.ts","../src/components/actionIcon/index.tsx","../src/components/alert/index.tsx","../src/components/appleAppButtonIcon/index.tsx","../src/icons/IconLoading.tsx","../src/components/textInput/index.tsx","../src/components/autoCompleteInput/index.tsx","../src/components/avatar/index.tsx","../src/components/avatarIndicator/index.tsx","../src/components/badge/index.tsx","../src/components/bigBadge/index.tsx","../src/components/breadCrumb/index.tsx","../src/components/button/buttonVariants.ts","../src/components/button/index.tsx","../src/components/checkbox/index.tsx","../src/components/popover/index.tsx","../src/components/datePickerInput/index.tsx","../src/components/divider/index.tsx","../src/components/favouriteButton/index.tsx","../src/components/filters/FilterButton.tsx","../src/components/filters/FilterItem.tsx","../src/components/filters/index.tsx","../src/components/googleAppButtonIcon/index.tsx","../src/components/hamburgerMenuButton/index.tsx","../src/components/hr/index.tsx","../src/components/island/index.tsx","../src/components/kebabMenu/index.tsx","../src/components/label/index.tsx","../src/components/loader/index.tsx","../src/components/logo/index.tsx","../src/components/modal/index.tsx","../src/components/navButtons/index.tsx","../src/components/numberField/index.tsx","../src/components/pageUnavailable/index.tsx","../src/components/passwordInput/index.tsx","../src/components/progressBar/index.tsx","../src/components/radioButton/index.tsx","../src/icons/IconStarEmpty.tsx","../src/icons/IconStarFilled.tsx","../src/icons/IconStarHalfFilled.tsx","../src/components/rating/index.tsx","../src/components/regionSelector/index.tsx","../src/components/reviews/index.tsx","../src/components/scrollToTop/index.tsx","../src/components/searchInput/index.tsx","../src/hooks/useDebouncedValue.ts","../src/components/select/index.tsx","../src/components/settingsCard/index.tsx","../src/components/skeleton/index.tsx","../src/components/skillPill/index.tsx","../src/components/stepper/NumberedStepper.tsx","../src/components/stepper/Stepper.tsx","../src/components/stickyMobileButton/index.tsx","../src/components/table/index.tsx","../src/components/table/tableCell/index.tsx","../src/components/table/tableHeader/index.tsx","../src/components/table/tableHeaderItem/index.tsx","../src/components/table/tableHeaderRow/index.tsx","../src/components/table/tableRow/index.tsx","../src/components/tabs/Tab.tsx","../src/components/tabs/TabsBadge.tsx","../src/components/tabs/TabsWrapper.tsx","../src/components/textArea/index.tsx","../src/components/themeIcon/index.tsx","../src/components/timeInput/index.tsx","../src/components/toggle/index.tsx","../src/components/truncatedText/index.tsx","../src/components/unorderedList/index.tsx","../src/components/unorderedListItem/index.tsx","../src/hooks/phone/usePhoneNumber.ts","../src/hooks/phone/usePhoneNumberPrefix.ts","../src/components/phoneInput/index.tsx","../src/components/profileMenu/index.tsx","../src/utils/ssr.ts","../src/components/wysiwygEditor/index.tsx"],"sourcesContent":["'use client';\n\n// This file ensures the JSX runtime is properly referenced in the bundle\nimport * as React from 'react';\n\n// Re-export the JSX runtime to ensure it's available\nexport const jsx = React.createElement;\nexport const jsxs = React.createElement;\nexport const Fragment = React.Fragment;\n","import clsx, { type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","'use client'\nimport { type ButtonHTMLAttributes, forwardRef } from 'react';\n\nimport { cn } from '@utils/cn';\n\ninterface IUnstyledButton extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'className'> {\n className?: string;\n}\n\nexport const UnstyledButton = forwardRef<HTMLButtonElement, IUnstyledButton>(({ className, ...props }, ref) => (\n <button\n type=\"button\"\n data-component=\"unstyledButton\"\n className={cn('appearance-none', className)}\n ref={ref}\n {...props}\n />\n));\n\nUnstyledButton.displayName = 'UnstyledButton';\n","'use client'\nimport { useEffect, useState } from 'react';\n\nimport { IconChevronDown } from '@tabler/icons-react';\nimport { cn } from '@utils/cn';\n\nimport { UnstyledButton } from '../unstyledButton';\n\ninterface IAccordionItem {\n controlContent: React.ReactNode;\n panelContent: React.ReactNode;\n endContent?: React.ReactNode;\n style?: 'light' | 'dark' | 'onboarding';\n border?: boolean;\n disabled?: boolean;\n chevronPosition?: 'left' | 'right';\n active?: boolean;\n className?: string;\n}\nexport const AccordionItem = ({\n controlContent,\n panelContent,\n style = 'light',\n border = false,\n chevronPosition = 'left',\n disabled = false,\n active = false,\n endContent,\n className,\n}: IAccordionItem) => {\n const [isActive, setIsActive] = useState(false);\n\n useEffect(() => {\n setIsActive(active);\n }, [active]);\n\n return (\n <>\n <div\n data-testid=\"accordion-item\"\n className={cn(\n 'rounded-md hover:bg-gray-50',\n {\n 'bg-light-blue hover:bg-light-blue/50': style === 'dark',\n 'rounded-none border-b border-gray-200': border,\n 'bg-ultra-light-blue border border-gray-200 hover:bg-transparent': style === 'onboarding',\n 'bg-white': style === 'onboarding' && isActive,\n 'hover:bg-ultra-light-blue cursor-not-allowed opacity-50': disabled,\n },\n className,\n )}\n >\n <UnstyledButton\n className={cn('relative flex w-full flex-row items-center justify-between gap-2 px-4 py-3', {\n 'flex-row-reverse': chevronPosition === 'right',\n })}\n onClick={() => setIsActive(!isActive)}\n disabled={disabled}\n >\n <span onClick={() => setIsActive(!isActive)} className={`duration-300${isActive ? 'rotate-180' : ''}`}>\n {<IconChevronDown size={18} />}\n </span>\n <div\n onClick={() => setIsActive(!isActive)}\n className={`flex w-full flex-row justify-between ${style === 'dark' && 'font-medium'} leading-8`}\n >\n {controlContent}\n </div>\n {endContent}\n </UnstyledButton>\n\n <div\n className={`transition-max-height overflow-hidden duration-500 ease-in-out ${\n isActive ? 'max-h-1000' : 'max-h-0'\n } leading-6 font-normal`}\n >\n <div className=\"px-4 py-3\">{panelContent}</div>\n </div>\n </div>\n </>\n );\n};\n","'use client'\n\nimport { cn } from '@utils/cn';\n\ninterface AccordionProps {\n children?: React.ReactNode;\n className?: string;\n}\n\nexport const AccordionWrapper = ({ children, className }: AccordionProps) => (\n <div \n data-testid=\"accordion-wrapper\"\n data-component=\"accordionWrapper\"\n className={cn(className, 'flex flex-col gap-2')}\n >\n {children}\n </div>\n);\n","import { useCallback, MutableRefObject, Ref, RefCallback } from 'react';\n\n\nexport function useMergeRefs<T>(...refs: (Ref<T> | undefined)[]): RefCallback<T> {\n return useCallback(\n (value: T) => {\n refs.forEach((ref) => {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n (ref as MutableRefObject<T | null>).current = value;\n }\n });\n },\n [refs],\n );\n}\n","'use client';\nimport { cloneElement, isValidElement, useRef, useState } from 'react';\n\nimport {\n arrow,\n autoUpdate,\n flip,\n FloatingArrow,\n offset,\n shift,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n} from '@floating-ui/react';\n\nimport { useMergeRefs } from '../../hooks/useMergeRefs';\n\ninterface ITooltipProps {\n content: React.ReactNode;\n children: React.ReactNode;\n passedOpen?: boolean;\n size?: 'sm' | 'md' | 'lg';\n variant?: 'default' | 'white';\n}\n\nconst sizeClasses = {\n xs: 'max-w-xs',\n sm: 'max-w-sm',\n md: 'max-w-md',\n lg: 'max-w-lg',\n};\n\nexport const Tooltip = ({ content, children, passedOpen = false, size = 'md', variant = 'default' }: ITooltipProps) => {\n const [isOpen, setIsOpen] = useState(passedOpen);\n const arrowRef = useRef(null);\n\n const { refs, floatingStyles, context } = useFloating({\n open: isOpen,\n onOpenChange: setIsOpen,\n placement: 'top',\n middleware: [variant === 'default' ? offset(20) : offset(25), flip(), shift(), arrow({ element: arrowRef })],\n whileElementsMounted: autoUpdate,\n });\n\n const hover = useHover(context, { move: false });\n const focus = useFocus(context);\n const dismiss = useDismiss(context);\n const role = useRole(context, { role: 'tooltip' });\n\n const { getReferenceProps, getFloatingProps } = useInteractions([hover, focus, dismiss, role]);\n\n // Merge the tooltip's ref with any existing ref from the child component\n const childRef = (children as React.ReactElement & { ref?: React.Ref<HTMLElement> }).ref;\n const mergedRef = useMergeRefs(refs.setReference, childRef);\n\n return (\n <>\n {isValidElement(children) &&\n cloneElement(\n children,\n getReferenceProps({\n ...(children.props as object),\n ...getReferenceProps(),\n ref: mergedRef,\n }),\n )}\n\n {isOpen && (\n <div\n ref={refs.setFloating}\n style={floatingStyles}\n {...getFloatingProps()}\n className=\"z-70 drop-shadow-xl\"\n data-testid=\"tooltip\"\n data-component=\"tooltip\"\n >\n {variant === 'default' ? (\n <div data-testid=\"tooltip-container\" className=\"w-full rounded bg-gray-800 pt-[3px] text-white\">\n <div data-testid=\"tooltip-content\" className={`${sizeClasses[size]} px-2 py-1 text-sm font-normal`}>\n {content}\n </div>\n <FloatingArrow\n ref={arrowRef}\n context={context}\n width={10}\n height={6}\n tipRadius={1}\n data-testid=\"tooltip-arrow\"\n className=\"fill-gray-800 drop-shadow-xl\"\n />\n </div>\n ) : (\n <div data-testid=\"tooltip-container\" className=\"bg-linear-gradient-x pt-[3px]\">\n <div\n data-testid=\"tooltip-content\"\n className={`${sizeClasses[size]} overflow-hidden bg-white p-5 px-2 py-1 text-start text-sm font-normal`}\n >\n <p>{content}</p>\n </div>\n {size === 'md' ? (\n <FloatingArrow\n ref={arrowRef}\n context={context}\n width={25}\n height={17}\n tipRadius={1}\n fill=\"white\"\n className=\"drop-shadow-xl\"\n data-testid=\"tooltip-arrow\"\n />\n ) : (\n <FloatingArrow\n ref={arrowRef}\n context={context}\n width={10}\n height={6}\n tipRadius={1}\n fill=\"white\"\n className=\"drop-shadow-xl\"\n data-testid=\"tooltip-arrow\"\n />\n )}\n </div>\n )}\n </div>\n )}\n </>\n );\n};\n\nTooltip.displayName = 'Tooltip';\n","export enum ACTION_ICON_STYLE_VARIANT {\n DEFAULT = 'default',\n TRANSPARENT = 'transparent',\n SMALL = 'small',\n ROUND = 'round',\n}\n\nexport enum THEME_ICON_STYLE_VARIANT {\n SECONDARY_WITH_BACKGROUND = 'secondary-with-background',\n}\n\nexport enum COLOR {\n PRIMARY = 'primary',\n BLACK = 'black',\n NAVY_BLUE = 'navy-blue',\n LIGHT_BLUE = 'light-blue',\n LIGHT_BLUE_DISABLED = 'light-blue-disabled',\n GREEN = 'green',\n GREEN_LIGHT = 'green-light',\n SECONDARY = 'secondary',\n SECONDARY_LIGHT = 'secondary-light',\n ORANGE = 'orange',\n ORANGE_LIGHT = 'orange-light',\n ACCENT_BLUE = 'accent-blue',\n ACCENT_BLUE_LIGHT = 'accent-blue-light',\n YELLOW = 'yellow',\n CHECK = 'check',\n WARNING = 'warning',\n ERROR = 'error',\n SUCCESS = 'success',\n WARNING_LIGHT = 'warning-light',\n ULTRA_LIGHT_BLUE = 'ultra-light-blue',\n ULTRA_LIGHT_GRAY = 'ultra-light-gray',\n TURQUOISE = 'turquoise',\n RED = 'red',\n DARK_GRAY = 'dark-gray',\n GRAY = 'gray',\n WHITE = 'white',\n PURPLE = 'purple',\n PURPLE_LIGHT = 'purple-light',\n NAVY_BLUE_SHADES = 'navy-blue-shades',\n}\n\nexport enum REGION {\n NETHERLANDS = 'nl',\n BELGIUM = 'nl-BE',\n UNITED_KINGDOM = 'gb',\n}\n\nexport enum TOOLTIP_COLOR {\n DEFAULT = 'default',\n WHITE = 'white',\n}\n","import React, { cloneElement, type HTMLAttributes, type SVGAttributes } from 'react';\n\nimport { type IconProps } from '@tabler/icons-react';\nimport clsx from 'clsx';\n\nconst globalDefaultFormatAttributes: SVGAttributes<SVGElement> & HTMLAttributes<SVGElement> = {};\n\n/**\n * Format icon with default attributes. Icon attributes will\n * always supersede default attributes which in term will supersede\n * global default attributes.\n */\nexport default function formatIcon(\n icon: React.ReactNode,\n defaultFormatAttributes: (SVGAttributes<SVGElement> & HTMLAttributes<SVGElement>) | IconProps,\n) {\n if (!React.isValidElement(icon)) return icon;\n\n return cloneElement(icon, {\n ...globalDefaultFormatAttributes,\n ...defaultFormatAttributes,\n ...(icon.props as object),\n ...{\n className: clsx(\n globalDefaultFormatAttributes.className,\n defaultFormatAttributes.className,\n (icon.props as { className: string }).className,\n ),\n },\n });\n}\n","'use client';\nimport type { MouseEvent } from 'react';\n\nimport { Tooltip } from '@components/tooltip';\nimport { cn } from '@utils/cn';\nimport { ACTION_ICON_STYLE_VARIANT } from '@utils/enums';\nimport formatIcon from '@utils/formatIcon';\nimport clsx from 'clsx';\n\nexport interface ActionIconProps {\n ref?: React.Ref<HTMLButtonElement>;\n 'data-testid'?: string;\n title: string;\n disabled?: boolean;\n type?: 'button' | 'submit' | 'reset' | undefined;\n styleVariant?: 'default' | 'transparent' | 'small' | 'round';\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void;\n icon?: React.ReactNode;\n iconSize?: number;\n strokeWidth?: number;\n className?: string;\n children?: React.ReactNode;\n\n /**\n * @deprecated Can be removed and replaced by iconSize\n */\n width?: string;\n /**\n * @deprecated Can be removed and replaced by iconSize\n */\n height?: string;\n}\n\nconst ActionIcon = ({\n ref,\n title,\n disabled = false,\n styleVariant = 'default',\n icon,\n type = 'button',\n 'data-testid': testId,\n iconSize = 20,\n strokeWidth = 1,\n onClick,\n className,\n ...props\n}: ActionIconProps) => {\n const variantClassNames = clsx({\n 'active:translate-y-[1px] content-center flex items-center justify-center rounded-[4px] border border-gray-200 hover:border-black text-black child:p-10 w-[36px] h-[36px] disabled:text-gray-500':\n styleVariant === ACTION_ICON_STYLE_VARIANT.DEFAULT,\n 'active:translate-y-[1px] border-none content-center flex items-center justify-center rounded-[4px] border text-black child:p-10 w-[36px] h-[36px] disabled:text-gray-500':\n styleVariant === ACTION_ICON_STYLE_VARIANT.TRANSPARENT,\n 'active:translate-y-[1px] content-center flex items-center justify-center rounded-[4px] child:p-10 w-[37px] h-[37px] text-black rounded-full bg-primary hover:bg-turquoise-700 disabled:turquoise-50 disabled:text-gray-800':\n styleVariant === ACTION_ICON_STYLE_VARIANT.ROUND,\n 'w-7 h-7 active:translate-y-[1px] content-center flex items-center justify-center rounded-[4px] border border-gray-200 hover:border-black text-black hover:bg-gray-50 disabled:text-gray-500':\n styleVariant === ACTION_ICON_STYLE_VARIANT.SMALL,\n });\n\n return (\n <>\n <Tooltip size=\"sm\" content={title}>\n <button\n title={title}\n type={type}\n disabled={disabled}\n data-testid={testId}\n data-component=\"ActionIcon\"\n className={cn(\n variantClassNames,\n { 'hover:bg-transparant cursor-not-allowed hover:border-gray-200': disabled },\n className,\n )}\n onClick={onClick}\n ref={ref}\n data-tooltip-id={title}\n data-tooltip-content={title}\n {...props}\n >\n {icon ? formatIcon(icon, { stroke: strokeWidth, size: iconSize }) : props.children}\n </button>\n </Tooltip>\n </>\n );\n};\n\nActionIcon.displayName = 'ActionIcon';\n\nexport { ActionIcon };\n","'use client';\n\nimport { type HTMLAttributes } from 'react';\n\nimport { IconAlertCircle, IconAlertTriangle, IconCircleCheck, IconX } from '@tabler/icons-react';\nimport { cn } from '@utils/cn';\n\ntype AlertType = 'success' | 'warning' | 'error';\ninterface AlertProps extends HTMLAttributes<HTMLDivElement> {\n show: boolean;\n title: string;\n description?: string | React.ReactNode;\n type?: AlertType;\n button?: React.ReactNode;\n plain?: boolean;\n closable?: boolean;\n icon?: React.ReactNode;\n onClose?: () => void;\n}\n\nexport const Alert = ({\n show,\n title,\n description,\n type = 'warning',\n button,\n plain = false,\n closable = false,\n className,\n icon,\n onClose,\n ...props\n}: AlertProps) => {\n if (!show || !title) return null;\n\n const typeConfig: Record<AlertType, { bg: string; iconColor: string; Icon: React.ElementType }> = {\n success: { bg: 'bg-green-light', iconColor: 'text-green', Icon: IconCircleCheck },\n warning: { bg: 'bg-warning-light', iconColor: 'text-warning', Icon: IconAlertTriangle },\n error: { bg: 'bg-red-50', iconColor: 'text-red-500', Icon: IconAlertCircle },\n };\n\n const config = typeConfig[type];\n const { bg, iconColor, Icon } = config;\n const descriptionId = description ? 'alert-desc' : undefined;\n\n return (\n <div\n role=\"alert\"\n aria-live=\"assertive\"\n aria-atomic=\"true\"\n aria-describedby={descriptionId}\n className={cn(\n 'flex justify-between items-start rounded-md px-5 py-3',\n bg,\n plain && 'border-none py-4 text-sm font-medium',\n className,\n )}\n data-component=\"Alert\"\n data-testid=\"alert\"\n {...props}\n >\n <div className=\"flex flex-col gap-2 flex-1\">\n <div className=\"flex items-center gap-2\">\n {!plain &&\n (icon ? (\n <span data-testid=\"alert-custom-icon\" aria-hidden=\"true\">\n {icon}\n </span>\n ) : (\n <Icon size={20} className={cn(iconColor, 'shrink-0')} data-testid=\"alert-icon\" aria-hidden=\"true\" />\n ))}\n <span className=\"text-base font-semibold\">{title}</span>\n </div>\n {description &&\n (typeof description === 'string' ? (\n <p id={descriptionId} className=\"text-sm text-color-gray-900\">\n {description}\n </p>\n ) : (\n <div id={descriptionId} className=\"text-sm text-color-gray-900\">\n {description}\n </div>\n ))}\n {button && <div>{button}</div>}\n </div>\n\n {closable && (\n <button\n type=\"button\"\n className=\"ml-4 text-gray-500 hover:text-gray-700\"\n onClick={onClose}\n aria-label=\"Dismiss alert\"\n data-testid=\"alert-close\"\n >\n <IconX size={18} aria-hidden=\"true\" />\n </button>\n )}\n </div>\n );\n};\n\nAlert.displayName = 'Alert';\n","'use client'\nimport { type SVGProps } from 'react';\n\nexport const AppleAppButtonIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n viewBox=\"0 0 198 66\"\n fill=\"none\"\n data-testid=\"AppleAppButtonIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <g clipPath=\"url(#clip0_890_9231)\">\n <mask\n id=\"mask0_890_9231\"\n data-testid=\"apple-icon-mask\"\n style={{\n maskType: 'luminance',\n }}\n maskUnits=\"userSpaceOnUse\"\n x={0}\n y={0}\n width={198}\n height={66}\n >\n <path d=\"M197.486 0H0V65.8286H197.486V0Z\" fill=\"white\" />\n </mask>\n <g mask=\"url(#mask0_890_9231)\">\n <path\n data-testid=\"apple-icon-path-1\"\n d=\"M181.76 0.000213943H15.7354C15.1303 0.000213943 14.5323 0.000213943 13.9288 0.00350538C13.4235 0.00679681 12.9223 0.0163585 12.4122 0.024406C11.304 0.03741 10.1984 0.13463 9.10507 0.31522C8.01324 0.499742 6.95563 0.847618 5.96798 1.34708C4.98154 1.85077 4.08019 2.50527 3.29665 3.28682C2.509 4.06618 1.85244 4.967 1.3522 5.95468C0.850583 6.94038 0.502759 7.99664 0.320743 9.08699C0.136996 10.176 0.0381201 11.2775 0.0250025 12.3817C0.00968747 12.8863 0.00807013 13.3926 0 13.8972V51.9366C0.00807013 52.4476 0.00968747 52.9427 0.0250025 53.4538C0.0381241 54.558 0.137 55.6595 0.320743 56.7484C0.502256 57.8394 0.850101 58.8962 1.3522 59.8823C1.85221 60.8668 2.50888 61.764 3.29665 62.539C4.07723 63.324 4.97915 63.979 5.96798 64.4788C6.95561 64.9796 8.01312 65.3296 9.10507 65.5169C10.1986 65.696 11.3041 65.7933 12.4122 65.808C12.9223 65.8191 13.4235 65.8255 13.9288 65.8255C14.5323 65.8288 15.1303 65.8288 15.7354 65.8288H181.76C182.352 65.8288 182.955 65.8288 183.548 65.8255C184.051 65.8255 184.567 65.8191 185.07 65.808C186.176 65.7941 187.28 65.6969 188.37 65.5169C189.466 65.3282 190.527 64.9784 191.52 64.4788C192.507 63.9787 193.408 63.3237 194.189 62.539C194.975 61.761 195.632 60.8644 196.139 59.8823C196.637 58.8955 196.981 57.8387 197.161 56.7484C197.344 55.6594 197.446 54.5581 197.467 53.4538C197.473 52.9427 197.473 52.4476 197.473 51.9366C197.486 51.3388 197.486 50.7442 197.486 50.1366V15.694C197.486 15.0913 197.486 14.4935 197.473 13.8972C197.473 13.3926 197.473 12.8863 197.467 12.3816C197.446 11.2773 197.344 10.1761 197.161 9.08692C196.981 7.9972 196.637 6.94102 196.139 5.95461C195.12 3.97494 193.504 2.36351 191.52 1.34694C190.527 0.848691 189.466 0.500906 188.37 0.315072C187.28 0.133686 186.176 0.0364325 185.07 0.0241756C184.567 0.0161445 184.051 0.00650058 183.548 0.00329142C182.955 0 182.352 0.000213943 181.76 0.000213943Z\"\n fill=\"#A6A6A6\"\n />\n <path\n data-testid=\"apple-icon-path-2\"\n d=\"M13.9369 64.3888C13.4341 64.3888 12.9434 64.3824 12.4446 64.3711C11.4111 64.3577 10.38 64.268 9.35986 64.1028C8.4086 63.9394 7.48707 63.6355 6.62569 63.201C5.7722 62.7703 4.99375 62.2054 4.32016 61.528C3.63684 60.8586 3.06793 60.0823 2.63598 59.2298C2.19929 58.3717 1.89707 57.4519 1.73986 56.5024C1.57008 55.4824 1.47822 54.4508 1.46507 53.4167C1.45462 53.0697 1.44092 51.914 1.44092 51.914V13.8972C1.44092 13.8972 1.4555 12.7593 1.46515 12.425C1.47774 11.3926 1.56906 10.3627 1.73834 9.3441C1.89585 8.3921 2.1983 7.46967 2.63523 6.60876C3.06558 5.7568 3.63132 4.97988 4.31055 4.30813C4.98901 3.63 5.76994 3.0622 6.62488 2.62544C7.48428 2.19243 8.40406 1.89067 9.3534 1.73027C10.3769 1.56334 11.4116 1.47309 12.4486 1.46028L13.9377 1.44019H183.54L185.047 1.46109C186.074 1.47326 187.1 1.56271 188.114 1.72867C189.074 1.89107 190.002 2.19494 190.872 2.63027C192.584 3.51047 193.978 4.90303 194.857 6.61278C195.287 7.46774 195.585 8.38265 195.74 9.32644C195.912 10.3534 196.008 11.3914 196.027 12.4322C196.032 12.8983 196.032 13.3989 196.032 13.8972C196.045 14.5144 196.045 15.1017 196.045 15.6939V50.1365C196.045 50.7345 196.045 51.3179 196.032 51.9061C196.032 52.4412 196.032 52.9315 196.025 53.4361C196.006 54.4583 195.911 55.4778 195.744 56.4864C195.589 57.4427 195.289 58.3696 194.853 59.2347C194.418 60.078 193.852 60.8477 193.177 61.5151C192.502 62.1962 191.722 62.7644 190.867 63.1979C190.001 63.6356 189.072 63.9407 188.114 64.1028C187.095 64.2688 186.063 64.3587 185.029 64.3711C184.546 64.3824 184.04 64.3888 183.548 64.3888L181.76 64.392L13.9369 64.3888Z\"\n fill=\"#1B1C1E\"\n />\n <path\n d=\"M40.877 33.4092C40.8948 32.0355 41.2607 30.6888 41.9407 29.494C42.6206 28.2994 43.5925 27.2955 44.7661 26.576C44.0206 25.5143 43.0371 24.6405 41.8938 24.0242C40.7503 23.4077 39.4785 23.0657 38.1794 23.0251C35.4081 22.7351 32.7214 24.6788 31.3092 24.6788C29.8696 24.6788 27.6954 23.0539 25.3539 23.1019C23.8395 23.1507 22.3635 23.5899 21.0699 24.3767C19.7762 25.1634 18.7089 26.2709 17.9722 27.5913C14.7805 33.1018 17.1611 41.2005 20.2186 45.6548C21.7483 47.8359 23.5361 50.2722 25.8753 50.1858C28.1645 50.0912 29.0193 48.7304 31.7825 48.7304C34.52 48.7304 35.3221 50.1859 37.7088 50.131C40.1652 50.0912 41.7129 47.9401 43.1888 45.7383C44.288 44.1842 45.1336 42.4665 45.6948 40.6489C44.2677 40.047 43.0499 39.0396 42.1931 37.7522C41.3364 36.4647 40.8788 34.9544 40.877 33.4092Z\"\n fill=\"white\"\n />\n <path\n d=\"M36.3687 20.0957C37.7079 18.4924 38.3677 16.4317 38.208 14.3511C36.1619 14.5654 34.2718 15.5407 32.9144 17.0823C32.2507 17.8355 31.7425 18.7118 31.4186 19.661C31.0948 20.6101 30.9616 21.6137 31.0269 22.6142C32.0504 22.6248 33.0629 22.4036 33.9881 21.9673C34.9134 21.5311 35.7273 20.8911 36.3687 20.0957Z\"\n fill=\"white\"\n />\n <path\n d=\"M69.8128 44.6641H62.0011L60.1251 50.1879H56.8164L64.2155 29.7515H67.6532L75.0523 50.1879H71.6871L69.8128 44.6641ZM62.8101 42.1153H69.0022L65.9497 33.1506H65.8643L62.8101 42.1153Z\"\n fill=\"white\"\n />\n <path\n d=\"M91.0322 42.7388C91.0322 47.369 88.547 50.3437 84.7967 50.3437C83.8468 50.3934 82.9018 50.1752 82.0705 49.7141C81.239 49.253 80.5546 48.5679 80.0955 47.7369H80.0246V55.117H76.9575V35.2881H79.9263V37.7662H79.9828C80.4629 36.9394 81.1589 36.2578 81.9967 35.7938C82.8344 35.33 83.7826 35.1014 84.7404 35.1321C88.5325 35.1321 91.0322 38.1214 91.0322 42.7388ZM87.8799 42.7388C87.8799 39.7222 86.3166 37.7389 83.9312 37.7389C81.5879 37.7389 80.0117 39.764 80.0117 42.7388C80.0117 45.741 81.5879 47.7515 83.9312 47.7515C86.3166 47.7515 87.8799 45.7828 87.8799 42.7388Z\"\n fill=\"white\"\n />\n <path\n d=\"M107.477 42.7388C107.477 47.369 104.992 50.3437 101.242 50.3437C100.292 50.3934 99.3471 50.1751 98.5156 49.7141C97.6843 49.253 96.9998 48.5679 96.5408 47.7369H96.4698V55.117H93.4028V35.2881H96.3714V37.7662H96.4279C96.9081 36.9394 97.6041 36.2577 98.4419 35.7938C99.2795 35.33 100.228 35.1014 101.186 35.1321C104.978 35.1321 107.477 38.1214 107.477 42.7388ZM104.325 42.7388C104.325 39.7222 102.762 37.7389 100.377 37.7389C98.0332 37.7389 96.457 39.764 96.457 42.7388C96.457 45.741 98.0332 47.7515 100.377 47.7515C102.762 47.7515 104.325 45.7828 104.325 42.7388Z\"\n fill=\"white\"\n />\n <path\n d=\"M118.346 44.4938C118.573 46.5205 120.548 47.851 123.245 47.851C125.831 47.851 127.69 46.5203 127.69 44.693C127.69 43.1067 126.569 42.157 123.913 41.5061L121.257 40.868C117.494 39.9616 115.746 38.2066 115.746 35.3587C115.746 31.8326 118.828 29.4106 123.204 29.4106C127.534 29.4106 130.503 31.8326 130.603 35.3587H127.507C127.321 33.3192 125.631 32.0882 123.16 32.0882C120.689 32.0882 118.999 33.3338 118.999 35.1465C118.999 36.5914 120.079 37.4416 122.72 38.0923L124.978 38.6453C129.183 39.6368 130.93 41.3212 130.93 44.3104C130.93 48.1338 127.876 50.5285 123.018 50.5285C118.473 50.5285 115.405 48.19 115.207 44.4936L118.346 44.4938Z\"\n fill=\"white\"\n />\n <path\n d=\"M137.549 31.762V35.288H140.39V37.71H137.549V45.924C137.549 47.2001 138.118 47.7948 139.367 47.7948C139.705 47.7889 140.041 47.7653 140.375 47.724V50.1316C139.814 50.2362 139.244 50.2835 138.672 50.273C135.647 50.273 134.467 49.1399 134.467 46.2503V37.71H132.295V35.288H134.467V31.762H137.549Z\"\n fill=\"white\"\n />\n <path\n d=\"M142.036 42.7389C142.036 38.0508 144.805 35.105 149.122 35.105C153.455 35.105 156.21 38.0508 156.21 42.7389C156.21 47.4397 153.468 50.3728 149.122 50.3728C144.778 50.3728 142.036 47.4397 142.036 42.7389ZM153.086 42.7389C153.086 39.5229 151.607 37.625 149.122 37.625C146.637 37.625 145.162 39.5374 145.162 42.7389C145.162 45.9675 146.637 47.8512 149.122 47.8512C151.607 47.8512 153.086 45.9675 153.086 42.7389Z\"\n fill=\"white\"\n />\n <path\n d=\"M158.739 35.2882H161.664V37.8242H161.735C161.933 37.0322 162.399 36.3322 163.053 35.8419C163.707 35.3518 164.511 35.1011 165.33 35.1322C165.682 35.131 166.035 35.1694 166.38 35.2465V38.1071C165.933 37.9712 165.468 37.9087 165.002 37.9223C164.556 37.9043 164.112 37.9826 163.701 38.152C163.288 38.3212 162.918 38.5775 162.613 38.9032C162.31 39.229 162.081 39.6162 161.941 40.0386C161.801 40.461 161.756 40.9085 161.807 41.3503V50.188H158.739V35.2882Z\"\n fill=\"white\"\n />\n <path\n d=\"M180.521 45.8117C180.109 48.5166 177.467 50.3728 174.087 50.3728C169.741 50.3728 167.043 47.4687 167.043 42.8097C167.043 38.136 169.756 35.105 173.958 35.105C178.093 35.105 180.691 37.9367 180.691 42.4545V43.5022H170.138V43.6871C170.09 44.2354 170.159 44.7878 170.341 45.3076C170.522 45.8275 170.813 46.3027 171.193 46.7019C171.573 47.101 172.035 47.4149 172.545 47.6228C173.057 47.8307 173.607 47.9277 174.158 47.9074C174.883 47.9752 175.61 47.8078 176.232 47.4301C176.854 47.0526 177.337 46.485 177.608 45.8117H180.521ZM170.153 41.3647H177.624C177.651 40.8717 177.576 40.3784 177.403 39.9155C177.23 39.4528 176.964 39.0306 176.62 38.6755C176.275 38.3204 175.861 38.0401 175.403 37.8521C174.945 37.6641 174.453 37.5726 173.958 37.5832C173.459 37.5803 172.963 37.6759 172.501 37.8647C172.039 38.0536 171.619 38.3318 171.266 38.6833C170.912 39.0349 170.632 39.453 170.44 39.9132C170.249 40.3733 170.152 40.8666 170.153 41.3647Z\"\n fill=\"white\"\n />\n <path\n d=\"M62.4261 14.3688C63.069 14.3228 63.7143 14.4197 64.3152 14.6524C64.916 14.8853 65.4578 15.248 65.901 15.7148C66.3442 16.1815 66.6781 16.7407 66.8784 17.3516C67.0788 17.9626 67.1406 18.6103 67.0596 19.2481C67.0596 22.3852 65.3593 24.1885 62.4261 24.1885H58.8691V14.3688H62.4261ZM60.3986 22.7998H62.2552C62.7146 22.8272 63.1745 22.7521 63.6011 22.5799C64.0278 22.4078 64.4107 22.1429 64.7217 21.8045C65.0327 21.4663 65.2642 21.0631 65.3995 20.6243C65.5346 20.1856 65.5698 19.7222 65.5027 19.2681C65.5649 18.8158 65.5261 18.3554 65.3889 17.9198C65.2518 17.4843 65.0196 17.0843 64.7092 16.7488C64.3989 16.4132 64.0179 16.1501 63.5937 15.9786C63.1694 15.807 62.7123 15.7312 62.2552 15.7565H60.3986V22.7998Z\"\n fill=\"white\"\n />\n <path\n d=\"M68.7871 20.4798C68.7404 19.9928 68.7962 19.5015 68.951 19.0372C69.106 18.573 69.3564 18.1462 69.6864 17.7843C70.0164 17.4222 70.4186 17.133 70.8672 16.935C71.3159 16.7371 71.801 16.6348 72.2916 16.6348C72.7823 16.6348 73.2675 16.7371 73.7161 16.935C74.1647 17.133 74.5669 17.4222 74.8969 17.7843C75.2268 18.1462 75.4772 18.573 75.6322 19.0372C75.7871 19.5015 75.8429 19.9928 75.7961 20.4798C75.8438 20.9674 75.7886 21.4593 75.6341 21.9244C75.4797 22.3893 75.2293 22.8169 74.8993 23.1796C74.5692 23.5424 74.1667 23.8322 73.7177 24.0306C73.2686 24.2289 72.7828 24.3314 72.2916 24.3314C71.8004 24.3314 71.3147 24.2289 70.8655 24.0306C70.4165 23.8322 70.014 23.5424 69.6839 23.1796C69.354 22.8169 69.1035 22.3893 68.9491 21.9244C68.7947 21.4593 68.7394 20.9674 68.7871 20.4798ZM74.2877 20.4798C74.2877 18.8735 73.564 17.9341 72.294 17.9341C71.0193 17.9341 70.302 18.8735 70.302 20.4798C70.302 22.0991 71.0193 23.0312 72.294 23.0312C73.5641 23.0311 74.2877 22.0926 74.2877 20.4798Z\"\n fill=\"white\"\n />\n <path\n d=\"M85.1132 24.1883H83.5917L82.0558 18.7305H81.9398L80.4104 24.1883H78.9035L76.855 16.7778H78.3426L79.6738 22.4325H79.7834L81.3113 16.7778H82.7182L84.246 22.4325H84.3622L85.6868 16.7778H87.1535L85.1132 24.1883Z\"\n fill=\"white\"\n />\n <path\n d=\"M88.8765 16.7777H90.2882V17.955H90.3978C90.5838 17.5322 90.8973 17.1778 91.2948 16.9411C91.6924 16.7044 92.154 16.5974 92.6155 16.6347C92.977 16.6077 93.3402 16.662 93.6778 16.7938C94.0155 16.9256 94.319 17.1316 94.5661 17.3963C94.8131 17.6609 94.9973 17.9776 95.1048 18.3229C95.2125 18.6683 95.2407 19.0333 95.1876 19.391V24.1883H93.721V19.7583C93.721 18.5673 93.2021 17.9751 92.1174 17.9751C91.8719 17.9638 91.6269 18.0053 91.3991 18.0972C91.1713 18.1891 90.966 18.3291 90.7974 18.5074C90.6289 18.6858 90.5011 18.8984 90.4226 19.1307C90.3442 19.3629 90.317 19.6093 90.3431 19.853V24.1883H88.8765V16.7777Z\"\n fill=\"white\"\n />\n <path d=\"M97.5244 13.885H98.991V24.1883H97.5244V13.885Z\" fill=\"white\" />\n <path\n d=\"M101.03 20.48C100.983 19.9928 101.039 19.5015 101.194 19.0372C101.349 18.5731 101.599 18.1462 101.929 17.7842C102.259 17.4222 102.661 17.1329 103.11 16.935C103.559 16.7371 104.044 16.6348 104.535 16.6348C105.025 16.6348 105.51 16.7371 105.959 16.935C106.408 17.1329 106.81 17.4222 107.14 17.7842C107.47 18.1462 107.721 18.5731 107.876 19.0372C108.03 19.5015 108.086 19.9928 108.04 20.48C108.087 20.9675 108.032 21.4595 107.877 21.9245C107.723 22.3894 107.473 22.817 107.142 23.1798C106.812 23.5424 106.41 23.8323 105.961 24.0306C105.512 24.2291 105.026 24.3315 104.535 24.3315C104.043 24.3315 103.558 24.2291 103.109 24.0306C102.659 23.8323 102.257 23.5424 101.927 23.1798C101.597 22.817 101.346 22.3894 101.192 21.9245C101.037 21.4595 100.982 20.9675 101.03 20.48ZM106.53 20.48C106.53 18.8736 105.807 17.9342 104.537 17.9342C103.262 17.9342 102.545 18.8736 102.545 20.48C102.545 22.0992 103.262 23.0312 104.537 23.0312C105.807 23.0312 106.53 22.0926 106.53 20.48Z\"\n fill=\"white\"\n />\n <path\n d=\"M109.583 22.0926C109.583 20.7587 110.579 19.9897 112.347 19.8804L114.36 19.7646V19.125C114.36 18.3423 113.842 17.9003 112.839 17.9003C112.02 17.9003 111.453 18.2001 111.29 18.724H109.87C110.02 17.4512 111.221 16.6348 112.907 16.6348C114.77 16.6348 115.821 17.5597 115.821 19.125V24.1883H114.409V23.1469H114.293C114.057 23.5204 113.726 23.825 113.334 24.0294C112.942 24.2339 112.503 24.3308 112.061 24.3104C111.749 24.3427 111.433 24.3096 111.135 24.213C110.837 24.1163 110.562 23.9585 110.329 23.7496C110.095 23.5406 109.908 23.2852 109.78 22.9998C109.652 22.7144 109.585 22.4053 109.583 22.0926ZM114.36 21.4593V20.8398L112.546 20.9556C111.522 21.0239 111.058 21.371 111.058 22.0242C111.058 22.6913 111.638 23.0794 112.436 23.0794C112.67 23.103 112.906 23.0794 113.131 23.0101C113.355 22.9409 113.563 22.8273 113.743 22.6762C113.922 22.5251 114.069 22.3394 114.176 22.1304C114.282 21.9214 114.345 21.6931 114.36 21.4593Z\"\n fill=\"white\"\n />\n <path\n d=\"M117.749 20.4799C117.749 18.1382 118.956 16.6549 120.833 16.6549C121.298 16.6335 121.759 16.7444 122.162 16.9747C122.566 17.205 122.895 17.5449 123.112 17.955H123.222V13.885H124.688V24.1883H123.283V23.0175H123.167C122.933 23.4248 122.592 23.7607 122.181 23.9885C121.769 24.2164 121.303 24.3278 120.833 24.3105C118.943 24.3105 117.749 22.8271 117.749 20.4799ZM119.263 20.4799C119.263 22.0517 120.006 22.9975 121.249 22.9975C122.485 22.9975 123.249 22.038 123.249 20.4862C123.249 18.9419 122.477 17.9687 121.249 17.9687C120.014 17.9687 119.263 18.9209 119.263 20.4799Z\"\n fill=\"white\"\n />\n <path\n d=\"M130.756 20.4798C130.709 19.9928 130.765 19.5015 130.92 19.0372C131.075 18.573 131.325 18.1462 131.655 17.7843C131.985 17.4222 132.387 17.133 132.836 16.935C133.285 16.7371 133.77 16.6348 134.26 16.6348C134.751 16.6348 135.236 16.7371 135.685 16.935C136.133 17.133 136.536 17.4222 136.866 17.7843C137.196 18.1462 137.446 18.573 137.601 19.0372C137.756 19.5015 137.812 19.9928 137.765 20.4798C137.812 20.9674 137.757 21.4593 137.604 21.9244C137.449 22.3893 137.198 22.8169 136.868 23.1796C136.538 23.5424 136.136 23.8322 135.686 24.0306C135.237 24.2289 134.751 24.3314 134.26 24.3314C133.769 24.3314 133.284 24.2289 132.834 24.0306C132.385 23.8322 131.983 23.5424 131.653 23.1796C131.323 22.8169 131.072 22.3893 130.918 21.9244C130.763 21.4593 130.708 20.9674 130.756 20.4798ZM136.256 20.4798C136.256 18.8735 135.533 17.9341 134.263 17.9341C132.988 17.9341 132.271 18.8735 132.271 20.4798C132.271 22.0991 132.988 23.0312 134.263 23.0312C135.533 23.0311 136.256 22.0926 136.256 20.4798Z\"\n fill=\"white\"\n />\n <path\n d=\"M139.733 16.7777H141.145V17.955H141.254C141.441 17.5322 141.754 17.1778 142.151 16.9411C142.549 16.7044 143.011 16.5974 143.472 16.6347C143.834 16.6077 144.196 16.662 144.535 16.7938C144.872 16.9256 145.175 17.1316 145.422 17.3963C145.669 17.6609 145.854 17.9776 145.961 18.3229C146.069 18.6683 146.097 19.0333 146.045 19.391V24.1883H144.577V19.7583C144.577 18.5673 144.059 17.9751 142.974 17.9751C142.729 17.9638 142.483 18.0053 142.255 18.0972C142.028 18.1891 141.822 18.3291 141.653 18.5074C141.486 18.6858 141.357 18.8984 141.279 19.1307C141.201 19.3629 141.173 19.6093 141.199 19.853V24.1883H139.733V16.7777Z\"\n fill=\"white\"\n />\n <path\n d=\"M154.331 14.9329V16.8117H155.941V18.0435H154.331V21.854C154.331 22.6303 154.652 22.9703 155.383 22.9703C155.569 22.9697 155.756 22.9583 155.941 22.9365V24.1548C155.678 24.2017 155.412 24.2266 155.144 24.2294C153.512 24.2294 152.864 23.6573 152.864 22.2286V18.0435H151.684V16.8116H152.864V14.9329H154.331Z\"\n fill=\"white\"\n />\n <path\n d=\"M157.945 13.885H159.399V17.9687H159.515C159.71 17.5419 160.032 17.1855 160.437 16.948C160.843 16.7104 161.312 16.6033 161.781 16.6412C162.14 16.6217 162.499 16.6816 162.834 16.8166C163.167 16.9517 163.468 17.1585 163.712 17.4223C163.956 17.6862 164.14 18.0005 164.248 18.3431C164.356 18.6857 164.388 19.0479 164.34 19.4039V24.1884H162.871V19.7647C162.871 18.5811 162.318 17.9816 161.283 17.9816C161.031 17.9609 160.777 17.9955 160.54 18.0828C160.302 18.17 160.087 18.308 159.909 18.487C159.73 18.6659 159.593 18.8815 159.508 19.1188C159.422 19.356 159.389 19.6091 159.411 19.8603V24.1883H157.945V13.885Z\"\n fill=\"white\"\n />\n <path\n d=\"M172.891 22.1874C172.692 22.8646 172.26 23.4505 171.671 23.8425C171.083 24.2344 170.374 24.4074 169.671 24.3312C169.181 24.3441 168.695 24.2507 168.246 24.0572C167.796 23.8639 167.394 23.5752 167.066 23.2112C166.74 22.8474 166.497 22.4169 166.353 21.9498C166.21 21.4826 166.171 20.9902 166.238 20.5063C166.173 20.021 166.213 19.5274 166.356 19.0589C166.498 18.5904 166.741 18.158 167.065 17.7909C167.39 17.4238 167.79 17.1306 168.239 16.931C168.687 16.7316 169.174 16.6305 169.665 16.6346C171.732 16.6346 172.98 18.0434 172.98 20.3704V20.8809H167.733V20.9627C167.709 21.2347 167.744 21.5084 167.833 21.7664C167.922 22.0244 168.065 22.2609 168.251 22.4607C168.438 22.6606 168.664 22.8195 168.915 22.9272C169.166 23.0347 169.437 23.0887 169.712 23.0857C170.063 23.1277 170.418 23.0647 170.732 22.9048C171.047 22.7448 171.307 22.495 171.479 22.1873L172.891 22.1874ZM167.733 19.7992H171.486C171.504 19.5504 171.47 19.3007 171.386 19.0658C171.303 18.8308 171.17 18.6162 170.997 18.4353C170.825 18.2546 170.617 18.1117 170.386 18.0159C170.155 17.9202 169.906 17.8737 169.657 17.8795C169.403 17.8762 169.151 17.9238 168.916 18.0191C168.682 18.1144 168.468 18.2558 168.288 18.4346C168.108 18.6136 167.967 18.8265 167.873 19.0608C167.777 19.2952 167.729 19.5462 167.733 19.7992Z\"\n fill=\"white\"\n />\n </g>\n </g>\n <defs>\n <clipPath id=\"clip0_890_9231\" data-testid=\"apple-icon-clippath\">\n <rect width={197.486} height={65.8286} fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n);","import { type SVGProps } from 'react';\n\nexport const IconLoading = ({ className, ...props }: SVGProps<SVGSVGElement>) => (\n <svg \n data-component=\"button\" \n data-testid=\"loading-svg-button\" \n viewBox=\"0 0 256 256\" \n width=\"1em\" \n height=\"1em\"\n className={className}\n stroke=\"currentColor\"\n {...props}\n >\n <line x1=\"128\" y1=\"32\" x2=\"128\" y2=\"64\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"24\"></line>\n <line\n x1=\"195.9\"\n y1=\"60.1\"\n x2=\"173.3\"\n y2=\"82.7\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"24\"\n ></line>\n <line x1=\"224\" y1=\"128\" x2=\"192\" y2=\"128\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"24\"></line>\n <line\n x1=\"195.9\"\n y1=\"195.9\"\n x2=\"173.3\"\n y2=\"173.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"24\"\n ></line>\n <line x1=\"128\" y1=\"224\" x2=\"128\" y2=\"192\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"24\"></line>\n <line\n x1=\"60.1\"\n y1=\"195.9\"\n x2=\"82.7\"\n y2=\"173.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"24\"\n ></line>\n <line x1=\"32\" y1=\"128\" x2=\"64\" y2=\"128\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"24\"></line>\n <line x1=\"60.1\" y1=\"60.1\" x2=\"82.7\" y2=\"82.7\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"24\"></line>\n </svg>\n);\n","'use client';\n\nimport React from 'react';\nimport { type ChangeEvent, type FocusEvent, type InputHTMLAttributes, type KeyboardEvent } from 'react';\n\nimport { IconEyeCheck, IconEyeOff } from '@tabler/icons-react';\nimport clsx from 'clsx';\n\nimport { IconLoading } from '../../icons/IconLoading';\n\nexport type TextInputProps = InputHTMLAttributes<HTMLInputElement> & {\n rightSection?: React.ReactNode;\n leftSection?: React.ReactNode;\n label?: React.ReactNode | string;\n className?: string;\n min?: string | undefined | number;\n max?: string | undefined | number;\n error?: string;\n showRightSection?: boolean;\n step?: string;\n loadingState?: boolean;\n autoFocus?: boolean;\n wrapperClassName?: string;\n maxLength?: undefined | number;\n password?: boolean;\n autoComplete?: string;\n enablePasswordManagerAutofill?: boolean;\n onBlur?: (e: FocusEvent<HTMLInputElement>) => void;\n onChange?: (e: ChangeEvent<HTMLInputElement>) => void;\n onKeyDown?: (e: KeyboardEvent<HTMLInputElement>) => void;\n};\n\nexport const TextInput = React.forwardRef<HTMLInputElement, TextInputProps>(\n (\n {\n rightSection,\n leftSection,\n className,\n error,\n autoFocus,\n label,\n maxLength,\n enablePasswordManagerAutofill = false,\n onBlur,\n disabled,\n loadingState,\n onKeyDown,\n min = '0',\n max,\n autoComplete,\n showRightSection = true,\n step,\n wrapperClassName,\n password = false,\n ...props\n },\n ref,\n ) => {\n const [showPassword, setShowPassword] = React.useState(false);\n\n return (\n <div data-component=\"TextInput\" data-testid=\"TextInput\" className={clsx('relative', wrapperClassName)}>\n {typeof label === 'string' ? (\n <label htmlFor={props.id} className=\"mb-2 flex items-center gap-1 text-xs font-medium text-black\">\n {label}\n </label>\n ) : (\n label\n )}\n\n <div className=\"relative\">\n {leftSection && (\n <div\n className={clsx(\n 'absolute top-0 left-0 flex h-10 w-12 content-center items-center justify-center align-middle text-sm font-medium text-black',\n )}\n >\n {leftSection}\n </div>\n )}\n <input\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n autoComplete={autoComplete}\n min={min}\n max={max}\n autoFocus={autoFocus}\n disabled={disabled}\n step={step}\n maxLength={maxLength}\n className={clsx(\n `${loadingState ? 'cursor-not-allowed' : ''}`,\n `${disabled ? 'text-gray-500' : 'text-gray-900'} selection:bg-turquoise-200 focus:border-turquoise-500 focus:ring-turquoise-500 active:border-turquoise-500 active:ring-turquoise-500 h-10 w-full rounded-[4px] border border-gray-200 bg-ultra-light-gray px-3 text-sm font-normal outline-hidden ${rightSection && 'pr-12'} ${leftSection && 'pl-12'} ${\n error &&\n 'border-red-500 text-red-500 selection:bg-red-200 focus:border-red-500 focus:ring-red-500 focus:placeholder:text-red-500 active:border-red-500 active:ring-red-500'\n }`,\n className,\n )}\n aria-busy={loadingState || undefined}\n data-lpignore={enablePasswordManagerAutofill ? undefined : 'true'} // lastpass\n data-1p-ignore={enablePasswordManagerAutofill ? undefined : 'true'} // 1Password\n ref={ref}\n {...props}\n type={password ? (showPassword ? 'text' : 'password') : 'text'}\n />\n {loadingState ? (\n <div className=\"absolute inset-y-0 right-0 flex h-10 w-12 content-center items-center justify-center align-middle text-sm font-medium text-black\">\n <IconLoading className=\"h-4 w-4 animate-spin text-gray-500\" aria-label=\"Loading\" />\n </div>\n ) : (\n rightSection &&\n showRightSection && (\n <div className=\"absolute inset-y-0 right-0 flex h-10 w-12 content-center items-center justify-center align-middle text-sm font-medium text-black\">\n {rightSection}\n </div>\n )\n )}\n {password && (\n <div className=\"absolute inset-y-0 right-4 flex content-center items-center justify-center align-middle text-sm font-medium text-black\">\n {showPassword ? (\n <IconEyeCheck\n data-testid=\"password-visibility-toggle\"\n className=\"cursor-pointer text-gray-500\"\n size={15}\n onClick={() => setShowPassword(false)}\n />\n ) : (\n <IconEyeOff\n data-testid=\"password-visibility-toggle\"\n className=\"cursor-pointer text-gray-500\"\n size={15}\n onClick={() => setShowPassword(true)}\n />\n )}\n </div>\n )}\n </div>\n {error && <div className=\"mt-2 text-xs font-normal text-red-500\">{error}</div>}\n </div>\n );\n },\n);\n","'use client'\nimport { type ChangeEvent, type KeyboardEvent, type Ref } from 'react';\n\nimport { TextInput, type TextInputProps } from '../textInput';\n\ninterface ISearchLocationFormProps extends TextInputProps {\n label: string;\n onChange: (e: ChangeEvent<HTMLInputElement>) => void;\n onFocus?: () => void;\n inputValue?: string;\n showSuggestions: boolean;\n handleOnKeyDown?: (e: KeyboardEvent<HTMLInputElement>) => void;\n children: React.ReactNode;\n loading?: boolean;\n rightSection?: React.ReactNode;\n inputRef?: Ref<HTMLInputElement>;\n}\n\nexport const AutoCompleteInput = ({\n label,\n onChange,\n onFocus,\n inputValue,\n showSuggestions,\n handleOnKeyDown,\n children,\n error,\n rightSection,\n inputRef,\n}: ISearchLocationFormProps) => (\n <div className=\"relative mb-8\">\n <TextInput\n ref={inputRef}\n label={label}\n id=\"search\"\n type=\"text\"\n name=\"searchField\"\n onChange={onChange}\n onFocus={onFocus}\n onKeyDown={handleOnKeyDown}\n value={inputValue}\n error={error}\n rightSection={rightSection}\n aria-autocomplete=\"list\"\n aria-controls=\"suggestions-googlemaps-location-list\"\n />\n {showSuggestions && inputValue && children}\n </div>\n);\n","'use client'\nimport { cn } from '@utils/cn';\n\ninterface IAvatarProps {\n 'data-testid'?: string;\n src: string;\n alt?: string;\n size?: number;\n radius?: keyof typeof radiusFormatter;\n}\n\nconst radiusFormatter = {\n 0: 'rounded-none',\n 2: 'rounded-sm',\n 4: 'rounded',\n 6: 'rounded-lg',\n 8: 'rounded-xl',\n 10: 'rounded-2xl',\n 12: 'rounded-3xl',\n 100: 'rounded-full',\n};\n\nexport const Avatar = ({ src, alt = '', size = 50, radius = 100, 'data-testid': dataTestId = 'avatar' }: IAvatarProps) => (\n <div data-component=\"Avatar\" data-testid={dataTestId}>\n {src && (\n \n <img\n src={src}\n className={cn('aspect-square appearance-none object-cover', radiusFormatter[radius])}\n alt={alt}\n width={size}\n height={size}\n data-testid=\"avatar-img\"\n />\n )}\n </div>\n);\n\nAvatar.displayName = 'Avatar';\n","'use client';\nimport { cn } from '@utils/cn';\n\ninterface IAvatarIndicator extends React.HTMLAttributes<HTMLDivElement> {\n indicatorCount?: number;\n}\n\nexport const AvatarIndicator = ({ indicatorCount, className, ...props }: IAvatarIndicator) => (\n <div\n className={cn(\n 'grid h-5 min-w-5 w-fit flex-col place-content-center items-center justify-center rounded-full bg-white px-0.5',\n className,\n )}\n data-component=\"AvatarIndicator\"\n data-testid=\"AvatarIndicator\"\n {...props}\n >\n <div className=\"font-[var(--font-family-sans)] text-[10px] leading-[10px] text-black\">{`+${indicatorCount}`}</div>\n </div>\n);\n","'use client';\nimport { cn } from '@utils/cn';\nimport { COLOR } from '@utils/enums';\ninterface IBadgeProps {\n styleVariant?:\n | 'green-light'\n | 'red'\n | 'accent-blue'\n | 'warning'\n | 'gray'\n | 'black'\n | 'dark-gray'\n | 'purple'\n | 'secondary'\n | 'secondary-light'\n | 'gray'\n | 'white';\n color?:\n | 'dark'\n | 'gray'\n | 'red'\n | 'secondary'\n | 'grape'\n | 'violet'\n | 'indigo'\n | 'blue'\n | 'cyan'\n | 'green'\n | 'lime'\n | 'yellow'\n | 'orange'\n | 'teal';\n favorite?: boolean;\n children?: React.ReactNode;\n className?: string;\n}\n\nexport const Badge = ({ styleVariant = COLOR.ACCENT_BLUE, className, favorite, children, ...props }: IBadgeProps) => {\n if (!children) return null;\n return (\n <span\n data-testid=\"badge\"\n data-component=\"Badge\"\n className={cn(\n 'inline-flex max-w-full place-content-center items-center px-2.5 align-middle text-xs leading-[20px] font-semibold tracking-wide text-wrap whitespace-normal normal-case rounded-sm',\n {\n 'bg-accent-blue-light text-accent-blue': styleVariant === COLOR.ACCENT_BLUE,\n 'bg-green-light text-green': styleVariant === COLOR.GREEN_LIGHT,\n 'bg-red-50 text-red-500': styleVariant === COLOR.RED,\n 'bg-purple-light text-purple': styleVariant === COLOR.PURPLE,\n 'bg-warning-light text-warning': styleVariant === COLOR.WARNING,\n 'bg-gray-50 text-black': styleVariant === COLOR.DARK_GRAY,\n 'bg-black text-white': styleVariant === COLOR.BLACK,\n 'bg-gray-50 text-gray-800': styleVariant === COLOR.GRAY,\n 'bg-secondary-light text-secondary': styleVariant === COLOR.SECONDARY_LIGHT,\n 'bg-secondary text-white': styleVariant === COLOR.SECONDARY,\n 'bg-white text-black': styleVariant === COLOR.WHITE,\n },\n className,\n )}\n {...props}\n >\n <span\n data-testid=\"badge-content\"\n className={cn('block h-5 overflow-hidden text-ellipsis whitespace-nowrap', {\n 'flex items-center': favorite,\n })}\n >\n {children}\n </span>\n </span>\n );\n};\nBadge.displayName = 'Badge';\n","'use client'\nimport { type HTMLAttributes } from 'react';\n\nimport { cn } from '@utils/cn';\nimport { COLOR } from '@utils/enums';\n\ninterface IBigBadgeProps extends HTMLAttributes<HTMLDivElement> {\n className?: string;\n styleVariant?: 'green' | 'red' | 'white' | 'accent-blue' | 'orange';\n 'data-testid'?: string;\n children: React.ReactNode;\n}\n\nexport const BigBadge = ({ styleVariant = COLOR.GREEN, className, children, ...props }: IBigBadgeProps) => (\n <div\n data-component=\"BigBadge\"\n data-testid=\"big-badge\"\n className={cn(\n 'grid h-9 max-w-full min-w-[140px] place-content-center rounded-full border border-solid px-6 py-1 text-sm font-medium whitespace-nowrap lowercase',\n {\n 'border-green text-green bg-white': styleVariant === COLOR.GREEN,\n 'border-accent-blue text-accent-blue bg-white': styleVariant === COLOR.ACCENT_BLUE,\n 'border-orange text-orange bg-white': styleVariant === COLOR.ORANGE,\n 'group-hover:bg-green-light': styleVariant === COLOR.GREEN,\n 'border-red-500 bg-white text-red-500': styleVariant === COLOR.RED,\n 'group-hover:bg-red-50': styleVariant === COLOR.RED,\n 'border-gray-200 bg-white text-black': styleVariant === COLOR.WHITE,\n '': styleVariant === COLOR.WHITE,\n },\n className\n )}\n {...props}\n >\n {children}\n </div>\n);\n","'use client'\nimport { type FC } from 'react';\n\nimport { IconArrowNarrowLeft } from '@tabler/icons-react';\n\n\ninterface IBreadCrumb {\n children: React.ReactNode;\n LinkText: FC<{ classNames: string; children: React.ReactNode }>;\n}\n\nexport const BreadCrumb = ({ children, LinkText }: IBreadCrumb) => (\n <LinkText data-component=\"BreadCrumb\" classNames=\"flex items-center\">\n <>\n <IconArrowNarrowLeft size={20} />\n <span className=\"flex items-center gap-5\">{children}</span>\n </>\n </LinkText>\n);\n\nBreadCrumb.displayName = 'BreadCrumb';\n","import clsx from 'clsx';\n\nconst defaultButtonStyling =\n 'justify-center group relative flex items-center gap-2 cursor-pointer border rounded py-2 px-5 text-sx md:text-sm md:font-medium font-medium hover:outline-hidden focus:outline-hidden disabled:cursor-not-allowed transition-colors duration-100 ease-in-out';\n\nexport const buttonVariants = {\n primary: clsx(\n defaultButtonStyling,\n 'border-transparent bg-primary text-black hover:bg-turquoise-700 hover:fill-white disabled:bg-turquoise-100 disabled:text-gray-800 disabled:hover:bg-turquoise-100',\n ),\n secondary: clsx(\n defaultButtonStyling,\n 'border-solid border-gray-200 bg-white text-black hover:border-gray-800 hover:bg-gray-50 hover:fill-white disabled:text-gray-800 disabled:hover:border-gray-200 disabled:hover:bg-white',\n ),\n danger: clsx(\n defaultButtonStyling,\n 'border-transparent bg-red-500 text-white hover:bg-red-700 disabled:bg-red-100 disabled:hover:bg-red-100',\n ),\n link: clsx(\n defaultButtonStyling,\n 'border-transparent bg-transparent text-accent-blue hover:bg-gray-50 disabled:bg-transparent disabled:text-gray-800 disabled:hover:bg-transparent',\n ),\n outline: clsx(\n defaultButtonStyling,\n 'border-solid border-gray-200 bg-transparent text-white hover:border-gray-800 hover:bg-[rgba(255,255,255,0.1)] disabled:text-gray-800 disabled:hover:border-gray-200 disabled:hover:bg-white',\n ),\n search: clsx(defaultButtonStyling, 'absolute top-0 right-0 h-full w-[50px] border-0 bg-transparent bg-no-repeat'),\n icon__primary: clsx(defaultButtonStyling, 'flex! items-center justify-center'),\n icon__danger: clsx(defaultButtonStyling, 'flex! items-center justify-center'),\n action: clsx(\n defaultButtonStyling,\n // < lg — ActionButton\n 'w-full bg-transparent border border-gray-200 whitespace-nowrap',\n // lg+ — ActionIcon\n 'lg:w-[36px] lg:h-[36px]',\n 'lg:p-0 lg:gap-0',\n 'lg:hover:bg-transparent lg:hover:border-black',\n 'lg:[&_svg]:-ml-2 lg:[&_svg]:-mr-2',\n ),\n} as const;\n","'use client';\nimport { type ButtonHTMLAttributes } from 'react';\n\nimport { cn } from '@utils/cn';\nimport formatIcon from '@utils/formatIcon';\nimport clsx from 'clsx';\n\nimport { IconLoading } from '../../icons/IconLoading';\n\nimport { buttonVariants } from './buttonVariants';\n\nexport interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n variant?: keyof typeof buttonVariants;\n ariaLabel?: string;\n isLoading?: boolean;\n block?: boolean;\n dataTestId?: string;\n icon?: React.ReactNode;\n iconRight?: boolean;\n children?: React.ReactNode;\n}\n\nexport function Button({\n type = 'button',\n variant = 'primary',\n ariaLabel,\n block = false,\n isLoading = false,\n icon: iconFromProps = null,\n iconRight = false,\n onClick,\n className,\n children,\n dataTestId,\n ...props\n}: ButtonProps) {\n const loadingIcon = <IconLoading className=\"animate-spin-slow mr-2 stroke-current\" />;\n const icon = isLoading ? loadingIcon : iconFromProps;\n\n const formattedIcon = icon\n ? formatIcon(icon, {\n className: clsx(\n {\n '-mr-2': iconRight,\n '-ml-2': !iconRight,\n },\n icon === loadingIcon ? 'text-current' : 'size-[1.125rem]',\n ),\n })\n : null;\n\n const handleOnClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(event);\n };\n\n return (\n <button\n type={type}\n aria-label={ariaLabel}\n data-testid={dataTestId}\n className={cn(buttonVariants[variant], className, block && 'w-full text-sm')}\n onClick={handleOnClick}\n {...props}\n >\n {!iconRight && formattedIcon}\n {children}\n {iconRight && formattedIcon}\n </button>\n );\n}\n\nButton.displayName = 'Button';\n","'use client'\nimport { forwardRef, type JSX } from 'react';\n\nimport { cn } from '@utils/cn';\n\n\ninterface ICheckbox extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'> {\n className?: string;\n mediumBoldText?: boolean;\n error?: string;\n label?: React.ReactNode;\n indeterminate?: boolean;\n size?: 'sm' | 'md';\n labelClassName?: string;\n}\n\n\nconst CheckboxComponent = (\n { size = 'md', className, error, mediumBoldText, label, labelClassName, indeterminate = false, disabled = false, ...props }: ICheckbox,\n ref: React.Ref<HTMLInputElement>\n) => (<div data-testid=\"checkbox-wrapper\" className={cn('relative grid gap-2', className)}>\n <label className={cn('flex cursor-pointer items-center gap-3', labelClassName)}>\n <div data-testid={`checkbox-container-${size}`} className={cn('relative grid shrink-0 place-content-center', size === 'sm' ? 'size-4' : 'size-5')}>\n <input\n className=\"checked:border-light-blue checked:bg-light-blue [&:not([disabled])]:checked:border-light-blue [&:not([disabled])]:checked:bg-light-blue peer absolute inset-0 shrink-0 appearance-none rounded-xs border border-gray-800 bg-white focus:outline-hidden disabled:border-gray-300 disabled:bg-gray-100 disabled:[&[checked]]:border-gray-100\"\n type=\"checkbox\"\n data-testid=\"checkbox\"\n disabled={disabled}\n {...props}\n ref={ref}\n />\n {/* Checkmark SVG for checked state */}\n <svg\n data-testid=\"checkbox-checkmark\"\n className={cn(\n 'pointer-events-none absolute top-1/2 left-1/2 hidden -translate-x-1/2 -translate-y-1/2 stroke-white outline-hidden peer-checked:block',\n { 'stroke-gray-300': disabled },\n size === 'sm' ? 'size-3' : 'size-4',\n )}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n\n {/* Indeterminate SVG for indeterminate state */}\n <svg\n data-testid=\"checkbox-indeterminate\"\n className={cn(\n 'pointer-events-none absolute left-1/2 hidden -translate-x-1/2 -translate-y-1/2 stroke-black outline-hidden',\n { 'stroke-gray-300': disabled },\n size === 'sm' ? 'top-[60%] size-3' : 'top-1/2 size-4',\n { block: indeterminate },\n )}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <line x1=\"4\" y1=\"12\" x2=\"20\" y2=\"12\"></line>\n </svg>\n </div>\n {label && <span data-testid=\"checkbox-label\" className={cn('grow text-sm font-normal', labelClassName, { 'font-medium': mediumBoldText })}>{label}</span>}\n </label>\n {error && <small className=\"text-xs font-normal text-red-500\">{error}</small>}\n </div>\n );\n\nexport const Checkbox = forwardRef(CheckboxComponent) as (\n props: ICheckbox & { ref?: React.Ref<HTMLInputElement> }\n) => JSX.Element;\n","'use client'\nimport { cloneElement, forwardRef, isValidElement, useImperativeHandle, useState } from 'react';\n\nimport {\n type AlignedPlacement,\n autoUpdate,\n flip,\n offset,\n shift,\n type Side,\n useClick,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n} from '@floating-ui/react';\nimport { IconX } from '@tabler/icons-react';\nimport { cn } from '@utils/cn';\nimport clsx from 'clsx';\n\nimport { ActionIcon } from '../actionIcon';\n\ntype ITooltipProps = {\n content: React.ReactNode;\n children: React.ReactNode;\n hoverEnabled?: boolean;\n passedOpen?: boolean;\n placement?: AlignedPlacement | Side;\n isMobile?: boolean;\n amountOfOffset?: number;\n className?: string;\n style?: 'minimal' | 'card';\n}\n\nexport type PopoverRefType = {\n closePopover: () => void;\n openPopover: () => void;\n togglePopover: () => void;\n}\n\nexport const Popover = forwardRef<PopoverRefType, ITooltipProps>(\n (\n {\n content,\n children,\n hoverEnabled = false,\n passedOpen = false,\n placement = 'right',\n style = 'card',\n isMobile = false,\n className,\n }: ITooltipProps,\n ref,\n ) => {\n const [isOpen, setIsOpen] = useState(passedOpen);\n\n const mobileStyles = {\n width: `${style === 'card' && '100%'}`,\n };\n\n const { refs, floatingStyles, context } = useFloating({\n open: isOpen,\n onOpenChange: setIsOpen,\n placement: !isMobile ? placement : 'bottom-start',\n middleware: [\n !isMobile && flip(),\n !isMobile && shift(),\n offset(() => ({\n mainAxis: 15,\n crossAxis: !isMobile ? 0 : 78,\n })),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n const click = useClick(context, { event: 'click', keyboardHandlers: true });\n const focus = useFocus(context);\n const hover = useHover(context, {\n enabled: hoverEnabled,\n });\n const dismiss = useDismiss(context);\n const role = useRole(context, { role: 'tooltip' });\n\n const interactions = [click, focus, dismiss, role, hover];\n\n const { getReferenceProps, getFloatingProps } = useInteractions(interactions);\n\n // Use useImperativeHandle to expose closePopover to the parent\n useImperativeHandle(ref, () => ({\n closePopover: () => setIsOpen(false),\n openPopover: () => setIsOpen(true),\n togglePopover: () => setIsOpen((prev) => !prev),\n }));\n\n return (\n <div className={cn('', { '[&>div]:border-navyBlue': isOpen }, className)}>\n {isValidElement(children) &&\n cloneElement(\n children,\n getReferenceProps({\n ref: refs.setReference,\n ...(children.props as object),\n ...getReferenceProps(),\n }),\n )}\n\n {isOpen && (\n <div\n ref={refs.setFloating}\n style={{ ...floatingStyles, ...(isMobile && { ...mobileStyles }) }}\n {...getFloatingProps()}\n className={clsx('z-60', {\n 'w-fit rounded border border-gray-200! bg-white p-5': style === 'minimal',\n 'card w-[489px] drop-shadow-xl': style === 'card',\n })}\n data-testid=\"popover-container\"\n data-component=\"Popover\"\n >\n {style === 'minimal' && content}\n {style === 'card' && (\n <div className=\"bg-linear-gradient-x pt-[3px]\">\n <div className=\"relative overflow-hidden bg-white p-5\">\n {!hoverEnabled && (\n <ActionIcon\n onClick={() => setIsOpen(false)}\n title={''}\n icon={<IconX />}\n styleVariant=\"small\"\n className=\"absolute top-5 right-5\"\n />\n )}\n {content}\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n );\n },\n);\n\n","'use client';\nimport { type ReactNode, useEffect, useRef, useState } from 'react';\nimport { DayPicker, useDayPicker } from 'react-day-picker';\n\nimport { IconCalendar, IconX } from '@tabler/icons-react';\nimport { cn } from '@utils/cn';\nimport clsx from 'clsx';\nimport { addMonths, format, setMonth } from 'date-fns';\nimport { enGB, fr, nl, nlBE } from 'date-fns/locale';\n\nimport { Button } from '../button';\nimport { Popover, type PopoverRefType } from '../popover';\n\ninterface IDatePickerInputProps {\n value?: Date;\n label?: ReactNode | string;\n className?: string;\n classNames?: string;\n disabledFrom?: Date;\n disabledUntil?: Date;\n placeholder?: string;\n icon?: React.ReactNode;\n locale?: string;\n error?: string;\n onChange?: (date: Date | undefined) => void;\n lang?: string;\n todayText?: string;\n disabled?: boolean;\n minimalDropdownYears?: number;\n}\n\ninterface IDay {\n date: Date;\n}\n\nexport const DatePickerInput = ({\n lang,\n todayText,\n value,\n disabledFrom,\n disabledUntil,\n className,\n error,\n onChange,\n placeholder,\n label,\n disabled,\n minimalDropdownYears = 4,\n}: IDatePickerInputProps) => {\n const [selected, setSelected] = useState<Date | undefined>(value);\n const today = new Date();\n const [newMonth, setNewMonth] = useState(selected || today);\n const [dropdownOpened, setDropdownOpened] = useState({\n month: false,\n year: false,\n });\n const locales = { fr, enGB, nl, nlBE };\n const dropdownRef = useRef<HTMLDivElement | null>(null);\n const popoverRef = useRef<PopoverRefType | null>(null);\n const renderLocale = () => {\n switch (lang) {\n case 'fr-FR':\n return locales.fr;\n case 'nl-BE':\n return locales.nlBE;\n case 'nl-NL':\n return locales.nl;\n case 'en-GB':\n return locales.enGB;\n default:\n return locales.enGB;\n }\n };\n\n /* istanbul ignore next - relies on dropdown DOM not rendered in tests */\n const handleClickOutside = (event: MouseEvent) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node))\n setDropdownOpened({ month: false, year: false });\n };\n\n /* istanbul ignore next - environment differences make listener attach hard to test */\n useEffect(() => {\n if (dropdownOpened.month || dropdownOpened.year) document.addEventListener('mousedown', handleClickOutside);\n else document.removeEventListener('mousedown', handleClickOutside);\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [dropdownOpened]);\n\n const handleDayClick = (date: Date | undefined) => {\n /* istanbul ignore next - react-day-picker rarely calls onSelect(undefined) in our configuration */\n if (!date) return;\n handleClosePopover();\n setNewMonth(date);\n setSelected(date);\n onChange?.(date);\n };\n\n const isDateSelected = (day: IDay) => {\n /* istanbul ignore next - defensive null guard */\n if (!selected || !day) return false;\n // Create new Date objects to avoid mutating the original ones\n const d1 = new Date(day?.date);\n const d2 = new Date(selected);\n\n // Set the time components (hours, minutes, seconds, milliseconds) to zero\n d1.setHours(0, 0, 0, 0);\n d2.setHours(0, 0, 0, 0);\n\n // Compare the normalized dates\n return d1.getTime() === d2.getTime();\n };\n\n const handleClosePopover = () => {\n popoverRef.current?.closePopover();\n };\n\n const isDateToday = (day: IDay) => {\n /* istanbul ignore next - defensive null guard */\n if (!day) return false;\n const d1 = new Date(day?.date);\n const d2 = new Date(today);\n d1.setHours(0, 0, 0, 0);\n d2.setHours(0, 0, 0, 0);\n return d1.getTime() === d2.getTime();\n };\n\n return (\n <Popover\n style=\"minimal\"\n className=\"w-full\"\n ref={popoverRef}\n content={\n <div>\n <DayPicker\n mode=\"single\"\n selected={selected}\n onSelect={handleDayClick}\n locale={renderLocale()}\n fixedWeeks\n endMonth={addMonths(today, 13)}\n captionLayout=\"dropdown\"\n onMonthChange={(newMonth) => setNewMonth(newMonth)}\n showOutsideDays\n // If a disabledFrom is provided, disable all dates before it, if a toDate is provided, disable all dates after it\n disabled={disabledFrom ? { before: disabledFrom } : disabledUntil ? { after: disabledUntil } : undefined}\n className={className}\n classNames={{\n month_grid: 'mt-3 max-w-[400px] border-t border-gray-100',\n month_caption: 'text-sm font-bold',\n dropdowns: 'flex items-center w-[190px] gap-1 left-0 justify-center h-8',\n caption_label: 'text-sm font-medium flex items-center justify-center w-[190px]',\n chevron: 'w-4 h-4 z-50',\n nav: 'absolute w-[190px] justify-between flex h-8 items-center',\n nav_button: 'h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100 cursor-pointer',\n nav_button_previous: 'absolute left-1',\n nav_button_next: 'absolute right-1',\n day: 'h-8 w-8 p-0 aria-selected:opacity-100 font-normal text-sm',\n weekdays: 'pt-12',\n weekday: 'text-gray-300 text-sm font-normal pt-4 pb-2',\n day_today: 'bg-accent text-accent-foreground',\n day_outside:\n 'day-outside text-gray-800 aria-selected:bg-accent/50 aria-selected:text-muted-foreground aria-selected:opacity-30',\n day_disabled: 'text-gray-800',\n day_range_middle: 'aria-selected:bg-accent aria-selected:text-accent-foreground',\n day_hidden: 'invisible',\n }}\n components={{\n DayButton: (props) => {\n const { day, ...buttonProps } = props;\n const { goToMonth } = useDayPicker();\n return (\n <button\n type=\"button\"\n {...buttonProps}\n className={clsx(\n 'm-1 size-8 text-black transition-all duration-100 ease-in-out',\n 'md:hover:bg-gradient-calendar hover:rounded md:hover:text-white',\n isDateSelected(day) && 'bg-gradient-calendar rounded text-sm font-normal text-white',\n isDateToday(day) && 'border-b-primary border border-transparent',\n 'translate-y-0 active:translate-y-0.5',\n )}\n onClick={() => {\n goToMonth(day.date);\n handleDayClick(day.date);\n }}\n />\n );\n },\n Dropdown: (props) => {\n const { goToMonth, months } = useDayPicker();\n const { className: dropdownClassName } = props as {\n className?: string;\n };\n\n const today = new Date();\n\n /* istanbul ignore next - react-day-picker may not pass this className in our test env */\n if (dropdownClassName === 'rdp-months_dropdown') {\n const selectedYear = newMonth.getFullYear();\n\n const selectItems = Array.from({ length: 12 }, (_, i) => {\n const monthDate = setMonth(new Date(selectedYear, i), i);\n\n return {\n value: i.toString(),\n label: format(monthDate, 'MMMM', {\n locale: renderLocale(),\n }),\n };\n });\n\n return (\n <>\n <div className=\"relative\">\n <span\n className=\"cursor-pointer\"\n onClick={() =>\n setDropdownOpened({\n ...dropdownOpened,\n month: !dropdownOpened.month,\n year: false,\n })\n }\n >\n {format(newMonth, 'MMMM', { locale: renderLocale() })}\n </span>\n {dropdownOpened.month && (\n <div\n ref={dropdownRef}\n className={'shadow-dropdown absolute z-70 rounded-md border border-gray-50 bg-white'}\n >\n {selectItems.map((item) => (\n <div\n key={item.value}\n onClick={() => {\n const newDate = new Date(selectedYear, parseInt(item.value));\n goToMonth(newDate);\n setDropdownOpened({\n month: false,\n year: false,\n });\n }}\n className=\"z-70 cursor-pointer border-b border-gray-50 bg-white px-4 py-1 font-normal text-black transition duration-200 ease-out hover:bg-gray-50\"\n >\n {item.label}\n </div>\n ))}\n </div>\n )}\n </div>\n <Button\n variant=\"secondary\"\n type=\"button\"\n className=\"absolute top-4 right-4 z-10 h-8 px-3 text-xs font-normal\"\n onClick={() => {\n goToMonth(today);\n handleDayClick(today);\n }}\n >\n {todayText}\n </Button>\n </>\n );\n /* istanbul ignore next - react-day-picker may not pass this className in our test env */\n } else if (dropdownClassName === 'rdp-years_dropdown') {\n const earliestYear = new Date().getFullYear() - minimalDropdownYears;\n const latestYear = new Date().getFullYear() + 1;\n /* istanbul ignore else - defensive guard will always be truthy */\n if (earliestYear && latestYear) {\n const years = Array.from(\n { length: latestYear - earliestYear + 1 },\n (_, i) => earliestYear + i,\n ).reverse();\n return (\n <div className=\"relative\">\n <span\n className=\"cursor-pointer\"\n onClick={() =>\n setDropdownOpened({\n ...dropdownOpened,\n year: !dropdownOpened.year,\n month: false,\n })\n }\n >\n {format(newMonth, 'yyyy', { locale: renderLocale() })}\n </span>\n {dropdownOpened.year && (\n <div\n ref={dropdownRef}\n className=\"shadow-dropdown absolute z-70 rounded-md border border-gray-50 bg-white max-h-64 overflow-y-auto\"\n >\n {years.map((year) => (\n <div\n key={year}\n onClick={() => {\n const newDate = months?.[0].date || new Date();\n newDate.setFullYear(year);\n goToMonth(newDate);\n setDropdownOpened({\n month: false,\n year: false,\n });\n }}\n className={\n 'z-70 cursor-pointer border-b border-gray-50 px-4 py-1 font-normal text-black transition duration-200 ease-out hover:bg-gray-50'\n }\n >\n {year}\n </div>\n ))}\n </div>\n )}\n </div>\n );\n }\n }\n /* istanbul ignore next - fallback path only when react-day-picker passes unknown className */\n return <></>;\n },\n }}\n />\n </div>\n }\n placement=\"bottom-start\"\n >\n <div data-component=\"datePickerInput\" className={cn('relative', className)}>\n {/* istanbul ignore next - trivial render guard */}\n {label && <label className=\"mb-2 flex items-center gap-1 text-xs font-medium\">{label}</label>}\n <Button\n variant=\"outline\"\n type=\"button\"\n disabled={disabled}\n className={cn(\n 'flex h-10 w-full items-center justify-start bg-gray-50 px-3 text-black',\n /* istanbul ignore next - cosmetic class toggle */ {\n 'border-red-500 text-red-500': error,\n },\n )}\n onClick={() => setNewMonth(today)}\n >\n <IconCalendar />\n <span className=\"text-sm font-normal text-nowrap text-black\">\n {selected ? selected.toLocaleDateString() : placeholder}\n </span>\n {/* istanbul ignore next - close icon rendering is covered functionally elsewhere */}\n {selected !== undefined && (\n <div>\n <span\n className=\"cursor-pointer text-sm font-normal text-gray-800\"\n role=\"button\"\n aria-label=\"Clear date\"\n tabIndex={0}\n onClick={() => {\n setSelected(undefined);\n onChange?.(undefined);\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n setSelected(undefined);\n onChange?.(undefined);\n }\n }}\n >\n <IconX size={15} />\n </span>\n </div>\n )}\n </Button>\n {/* istanbul ignore next - trivial render guard */}\n {error && <small className=\"text-xs font-normal text-red-500\">{error}</small>}\n </div>\n </Popover>\n );\n};\n","'use client'\nimport clsx from 'clsx';\n\ninterface DividerProps {\n 'data-testid'?: string;\n className?: string;\n}\n\nexport const Divider = ({ className, ...props }: DividerProps) => (\n <div data-component=\"divider\" className={clsx('block h-px w-full bg-gray-200', className)} {...props} />\n);\n","'use client';\nimport { type ButtonHTMLAttributes, forwardRef, type JSX, type Ref } from 'react';\n\nimport { IconHeart, IconHeartFilled } from '@tabler/icons-react';\n\nimport { ActionIcon } from '../actionIcon';\n\ninterface IFavouriteButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'type' | 'size'> {\n onClick: () => void;\n favourite: boolean;\n iconOutline?: React.ReactNode;\n iconFilled?: React.ReactNode;\n iconSize?: number;\n className?: string;\n favouriteTitle?: string;\n 'data-testid'?: string;\n iconColor?: string;\n iconColorSelected?: string;\n styleVariant?: 'transparent' | 'small' | 'default' | 'round' | undefined;\n children?: React.ReactNode;\n}\n\nexport const FavouriteButton = forwardRef<HTMLButtonElement, IFavouriteButtonProps>((props, ref) => {\n const {\n onClick,\n favourite,\n iconFilled,\n iconOutline,\n favouriteTitle,\n iconColorSelected = 'text-secondary',\n iconColor = 'text-gray-800',\n iconSize,\n className = '',\n styleVariant = 'transparent',\n children,\n ...rest\n } = props;\n\n return (\n <ActionIcon\n onClick={onClick}\n data-component=\"favouriteButton\"\n title={favouriteTitle || 'Favorite'}\n styleVariant={styleVariant}\n className={`${favourite ? iconColorSelected : iconColor} ${className}`.trim()}\n iconSize={iconSize}\n ref={ref}\n icon={favourite ? (iconFilled ?? <IconHeartFilled />) : (iconOutline ?? <IconHeart />)}\n {...rest}\n >\n {children}\n </ActionIcon>\n );\n}) as (props: IFavouriteButtonProps & { ref?: Ref<HTMLButtonElement> }) => JSX.Element;\n","'use client'\nimport { IconFilter } from '@tabler/icons-react';\n\nimport { Button } from '../button';\nimport { UnstyledButton } from '../unstyledButton';\n\ninterface IFilterButtonProps {\n onClick: () => void;\n hasFilters: boolean;\n reset: () => void;\n filtersText: string;\n resetText: string;\n}\n\nexport const FilterButton = ({ onClick, hasFilters, reset, filtersText, resetText }: IFilterButtonProps) => (\n <div className=\"flex gap-3\" data-testid=\"filterButton\">\n <Button\n onClick={onClick}\n variant=\"secondary\"\n className=\"font-normal md:font-normal\"\n icon={<IconFilter stroke={1} />}\n >\n {filtersText}\n </Button>\n <UnstyledButton className=\"text-sm font-normal disabled:text-gray-500\" onClick={reset} disabled={!hasFilters}>\n {resetText}\n </UnstyledButton>\n </div>\n );\n","'use client'\nimport { cn } from '@utils/cn';\n\ninterface IFilterItemProps {\n title: string;\n isActive?: boolean;\n onClick?: () => void;\n}\n\nexport const FilterItem = ({ title, isActive = false, onClick }: IFilterItemProps) => (\n <label\n className={cn(\n 'has-checked:border-primary has-checked:bg-turquoise-100 flex cursor-pointer items-center gap-3 rounded-full border border-gray-200 px-7 py-1.5 text-sm leading-6 font-normal transition-all duration-300 ease-in-out hover:bg-gray-50',\n )}\n >\n <input type=\"checkbox\" className=\"hidden\" onChange={onClick} checked={isActive} />\n {\n title\n }\n </label>\n );\n","'use client'\nimport { useEffect, useRef, useState } from 'react';\n\nimport { cn } from '@utils/cn';\n\nimport { FilterButton } from './FilterButton';\nimport { FilterItem } from './FilterItem';\n\ninterface IFilterProps {\n filters: string[];\n selectedFilters: string[];\n selectedFiltersText: string;\n setFilters: (filter: string[]) => void;\n callBack?: () => void;\n filtersText: string;\n resetText: string;\n}\n\nexport const Filters = ({ filters, setFilters, selectedFilters, selectedFiltersText, filtersText, resetText }: IFilterProps) => {\n\n\n const content = useRef<HTMLDivElement>(null);\n\n const [showFilters, setShowFilters] = useState(false);\n\n const onFilter = (filter: string) => {\n if (selectedFilters.includes(filter)) setFilters(selectedFilters.filter((f) => f !== filter));\n else setFilters([...selectedFilters, filter]);\n };\n\n useEffect(() => {\n setShowFilters(selectedFilters.length > 0);\n }, [selectedFilters]);\n\n const onReset = () => {\n setFilters([]);\n };\n\n return (\n <div className=\"grid justify-end gap-3\" data-testid=\"filters-component\">\n <div className=\"flex items-center justify-end gap-3\">\n <span className=\"text-sm font-medium\" data-testid=\"filters-title\">\n {selectedFiltersText}\n </span>\n <FilterButton\n onClick={() => setShowFilters(!showFilters)}\n hasFilters={selectedFilters.length > 0}\n reset={() => onReset()}\n filtersText={filtersText}\n resetText={resetText}\n />\n </div>\n <div\n ref={content}\n data-testid=\"filters-items-container\"\n data-visible={showFilters}\n className={cn(\n 'flex flex-wrap justify-end gap-2 overflow-hidden opacity-0 ease-in-out [transition:max-height_0.4s,opacity_0.3s]',\n showFilters && 'opacity-100',\n )}\n style={{\n maxHeight: showFilters ? `${content?.current?.scrollHeight}px` : '0px',\n }}\n >\n {filters.map((filter) => (\n <FilterItem\n key={filter}\n title={filter}\n isActive={selectedFilters.includes(filter)}\n onClick={() => onFilter(filter)}\n />\n ))}\n </div>\n </div>\n );\n};\n","'use client'\nimport { type SVGProps } from 'react';\nexport const GoogleAppButtonIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n viewBox=\"0 0 224 66\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n data-testid=\"googleAppButtonIcon\"\n data-component=\"googleAppButtonIcon\"\n {...props}\n >\n <g data-testid=\"google-app-icon-g\" clipPath=\"url(#clip0_890_9261)\">\n <path\n data-testid=\"google-app-icon-path\"\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M215.718 65.8286H8.73944C4.17466 65.8286 0.457031 62.1186 0.457031 57.6V8.22857C0.457031 3.69363 4.17466 0 8.73944 0H215.718C220.278 0 224 3.69363 224 8.22857V57.6C224 62.1186 220.278 65.8286 215.718 65.8286Z\"\n fill=\"#1B1C1E\"\n />\n <path\n data-testid=\"google-app-icon-path\"\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M215.718 1.31739C219.545 1.31739 222.679 4.42415 222.679 8.22857V57.6C222.679 61.4045 219.566 64.5112 215.718 64.5112H8.73944C4.91079 64.5112 1.77712 61.4045 1.77712 57.6V8.22857C1.77712 4.42415 4.89022 1.31739 8.73944 1.31739H215.718ZM215.718 0H8.73944C4.17466 0 0.457031 3.71004 0.457031 8.22857V57.6C0.457031 62.1349 4.17466 65.8286 8.73944 65.8286H215.718C220.278 65.8286 224 62.1349 224 57.6V8.22857C224 3.71004 220.278 0 215.718 0Z\"\n fill=\"#A6A6A6\"\n />\n <path\n d=\"M118.22 21.776C116.727 21.776 115.469 21.2549 114.474 20.2288C113.487 19.2316 112.936 17.8567 112.96 16.4531C112.96 14.9551 113.47 13.687 114.474 12.6815C115.465 11.6555 116.723 11.1343 118.216 11.1343C119.692 11.1343 120.951 11.6555 121.963 12.6815C122.966 13.7198 123.476 14.988 123.476 16.4531C123.459 17.9552 122.95 19.2234 121.963 20.2246C120.971 21.259 119.713 21.776 118.22 21.776ZM73.8021 21.776C72.3422 21.776 71.0756 21.2631 70.0392 20.2493C69.0111 19.2397 68.4888 17.9634 68.4888 16.4572C68.4888 14.9511 69.0111 13.6747 70.0392 12.6651C71.055 11.6514 72.3216 11.1384 73.8021 11.1384C74.5258 11.1384 75.2291 11.282 75.9035 11.5734C76.5657 11.8566 77.1044 12.2424 77.5033 12.7143L77.6019 12.8334L76.4875 13.925L76.3723 13.7896C75.7431 13.0427 74.9001 12.6774 73.7856 12.6774C72.7904 12.6774 71.9227 13.0303 71.2071 13.728C70.4875 14.4298 70.1215 15.3491 70.1215 16.4613C70.1215 17.5735 70.4875 18.4928 71.2071 19.1946C71.9227 19.8923 72.7904 20.2452 73.7856 20.2452C74.8466 20.2452 75.739 19.8923 76.434 19.1946C76.8453 18.7842 77.1002 18.2096 77.1908 17.4832H73.617V15.9483H78.7246L78.7451 16.0879C78.7822 16.3464 78.8192 16.6131 78.8192 16.8594C78.8192 18.2753 78.3916 19.4203 77.5443 20.2658C76.5821 21.2671 75.3237 21.776 73.8021 21.776ZM132.86 21.5585H131.285L126.462 13.8553L126.503 15.2424V21.5544H124.928V11.3559H126.725L126.774 11.4339L131.31 18.6897L131.269 17.3068V11.3559H132.86V21.5585ZM106.385 21.5585H104.789V12.8908H102.021V11.3559H109.148V12.8908H106.381V21.5585H106.385ZM100.722 21.5585H99.1305V11.3559H100.722V21.5585ZM91.7774 21.5585H90.1859V12.8908H87.4183V11.3559H94.5451V12.8908H91.7774V21.5585ZM86.4107 21.542H80.3079V11.3559H86.4107V12.8908H81.9035V15.6897H85.9706V17.2082H81.9035V20.0071H86.4107V21.542ZM115.642 19.1741C116.353 19.8841 117.217 20.2411 118.22 20.2411C119.252 20.2411 120.095 19.8923 120.799 19.1741C121.498 18.4763 121.851 17.5612 121.851 16.4572C121.851 15.3532 121.498 14.4339 120.803 13.7404C120.091 13.0303 119.224 12.6733 118.224 12.6733C117.192 12.6733 116.349 13.0221 115.65 13.7404C114.951 14.438 114.597 15.3532 114.597 16.4572C114.597 17.5612 114.947 18.4805 115.642 19.1741Z\"\n fill=\"white\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M112.812 35.8035C108.926 35.8035 105.776 38.7462 105.776 42.8051C105.776 46.8269 108.947 49.8065 112.812 49.8065C116.699 49.8065 119.849 46.8434 119.849 42.8051C119.849 38.7462 116.699 35.8035 112.812 35.8035ZM112.812 47.0322C110.686 47.0322 108.856 45.2757 108.856 42.7886C108.856 40.2646 110.69 38.545 112.812 38.545C114.939 38.545 116.769 40.2646 116.769 42.7886C116.773 45.292 114.939 47.0322 112.812 47.0322ZM97.4608 35.8035C93.5746 35.8035 90.4244 38.7462 90.4244 42.8051C90.4244 46.8269 93.5952 49.8065 97.4608 49.8065C101.347 49.8065 104.497 46.8434 104.497 42.8051C104.497 38.7462 101.343 35.8035 97.4608 35.8035ZM97.4608 47.0322C95.3347 47.0322 93.5046 45.2757 93.5046 42.7886C93.5046 40.2646 95.3388 38.545 97.4608 38.545C99.5869 38.545 101.417 40.2646 101.417 42.7886C101.417 45.292 99.5869 47.0322 97.4608 47.0322ZM79.1934 37.9417V40.9048H86.3203C86.1022 42.567 85.5512 43.7941 84.7082 44.6354C83.6635 45.6778 82.0516 46.8106 79.2098 46.8106C74.8302 46.8106 71.4045 43.2811 71.4045 38.9103C71.4045 34.5395 74.8302 31.0101 79.2098 31.0101C81.5744 31.0101 83.2976 31.9417 84.5765 33.1318L86.6821 31.0305C84.9055 29.3315 82.5409 28.0305 79.2263 28.0305C73.2181 28.0305 68.1763 32.9143 68.1763 38.8939C68.1763 44.8899 73.2139 49.7572 79.2263 49.7572C82.4709 49.7572 84.9055 48.6984 86.8302 46.7039C88.7917 44.7462 89.4127 41.9843 89.4127 39.7557C89.4127 39.0622 89.3594 38.4383 89.2483 37.9089H79.1893C79.1934 37.9048 79.1934 37.9417 79.1934 37.9417ZM153.912 40.2482C153.325 38.6764 151.547 35.7872 147.903 35.7872C144.292 35.7872 141.29 38.623 141.29 42.7886C141.29 46.7202 144.259 49.79 148.253 49.79C151.461 49.79 153.329 47.8324 154.097 46.6833L151.716 45.091C150.926 46.2606 149.829 47.0281 148.269 47.0281C146.695 47.0281 145.592 46.314 144.86 44.9062L154.241 41.028C154.241 41.0321 153.912 40.2482 153.912 40.2482ZM144.346 42.5875C144.272 39.883 146.452 38.5081 148.01 38.5081C149.24 38.5081 150.265 39.1114 150.613 39.9896L144.346 42.5875ZM136.726 49.3715H139.806V28.8021H136.726V49.3715ZM131.668 37.359H131.557C130.862 36.5341 129.542 35.7872 127.856 35.7872C124.356 35.7872 121.132 38.8611 121.132 42.8092C121.132 46.7408 124.34 49.7778 127.856 49.7778C129.521 49.7778 130.862 49.0267 131.557 48.1854H131.668V49.1908C131.668 51.8627 130.237 53.3031 127.93 53.3031C126.042 53.3031 124.87 51.9488 124.393 50.8161L121.716 51.9323C122.485 53.7792 124.537 56.0651 127.926 56.0651C131.536 56.0651 134.596 53.9434 134.596 48.7682V36.2057H131.684V37.359C131.688 37.359 131.668 37.359 131.668 37.359ZM128.131 47.0322C126.005 47.0322 124.228 45.2592 124.228 42.8092C124.228 40.3385 126.005 38.5491 128.131 38.5491C130.237 38.5491 131.869 40.359 131.869 42.8092C131.89 45.2592 130.241 47.0322 128.131 47.0322ZM168.335 28.8021H160.969V49.3715H164.049V41.582H168.339C171.747 41.582 175.099 39.1155 175.099 35.2002C175.099 31.2851 171.759 28.8021 168.335 28.8021ZM168.425 38.7091H164.045V31.6503H168.425C170.732 31.6503 172.035 33.5504 172.035 35.1798C172.035 36.7926 170.716 38.7091 168.425 38.7091ZM187.444 35.7666C185.208 35.7666 182.901 36.7557 181.946 38.9103L184.677 40.043C185.265 38.9103 186.343 38.5246 187.481 38.5246C189.078 38.5246 190.689 39.4766 190.726 41.1757V41.3932C190.175 41.0813 188.967 40.6053 187.518 40.6053C184.57 40.6053 181.58 42.214 181.58 45.2304C181.58 47.9925 183.998 49.7655 186.691 49.7655C188.761 49.7655 189.899 48.8339 190.611 47.7544H190.722V49.3468H193.691V41.4671C193.691 37.7981 190.961 35.7666 187.444 35.7666ZM187.058 47.0322C186.051 47.0322 184.64 46.5397 184.64 45.2757C184.64 43.6833 186.401 43.08 187.901 43.08C189.259 43.08 189.899 43.3713 190.706 43.7736C190.483 45.6203 188.921 47.0158 187.058 47.0322ZM204.524 36.2057L200.987 45.1278H200.876L197.212 36.2057H193.897L199.395 48.6779L196.261 55.6095H199.469L207.928 36.2057H204.524ZM176.798 49.3715H179.878V28.8021H176.798V49.3715Z\"\n fill=\"white\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M17.6631 12.3982C17.1862 12.9112 16.9106 13.695 16.9106 14.7211V51.1114C16.9106 52.1374 17.1862 52.9213 17.6796 53.4138L17.8071 53.5246L38.2376 33.1358V32.6802L17.7907 12.2874L17.6631 12.3982Z\"\n fill=\"url(#paint0_linear_890_9261)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M45.036 39.9525L38.2217 33.1521V32.6761L45.036 25.8757L45.184 25.966L53.2443 30.5379C55.5515 31.8347 55.5515 33.977 53.2443 35.2903L45.184 39.8622L45.036 39.9525Z\"\n fill=\"url(#paint1_linear_890_9261)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M45.1839 39.8624L38.2216 32.9143L17.6636 53.4303C18.4161 54.2347 19.6786 54.3251 21.0893 53.5411L45.1839 39.8624Z\"\n fill=\"url(#paint2_linear_890_9261)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M45.1839 25.9663L21.0893 12.3081C19.6786 11.5037 18.412 11.6145 17.6636 12.4189L38.2216 32.9144L45.1839 25.9663Z\"\n fill=\"url(#paint3_linear_890_9261)\"\n />\n <path\n opacity={0.2}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M45.0356 39.7146L21.1054 53.2826C19.7689 54.05 18.5763 53.9967 17.8072 53.299L17.6797 53.4261L17.8072 53.537C18.5763 54.2306 19.7689 54.2881 21.1054 53.5206L45.2001 39.8623L45.0356 39.7146Z\"\n fill=\"#1B1C1E\"\n />\n <path\n opacity={0.12}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M53.2441 35.0525L45.0151 39.7147L45.1633 39.8624L53.2235 35.2906C54.3791 34.6339 54.9466 33.772 54.9466 32.9143C54.8768 33.7023 54.2887 34.4492 53.2441 35.0525Z\"\n fill=\"#1B1C1E\"\n />\n <path\n opacity={0.25}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M21.0888 12.5459L53.2438 30.776C54.2884 31.3629 54.8765 32.1303 54.967 32.9142C54.967 32.0565 54.3993 31.1946 53.2438 30.538L21.0888 12.3079C18.7817 10.9905 16.9106 12.0904 16.9106 14.7211V14.9591C16.9106 12.3243 18.7817 11.245 21.0888 12.5459Z\"\n fill=\"white\"\n />\n </g>\n <defs data-testid=\"google-app-icon-defs\">\n <linearGradient\n id=\"paint0_linear_890_9261\"\n x1={36.405}\n y1={14.3285}\n x2={3.68775}\n y2={23.0638}\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#00A0FF\" />\n <stop offset={0.00657} stopColor=\"#00A1FF\" />\n <stop offset={0.2601} stopColor=\"#00BEFF\" />\n <stop offset={0.5122} stopColor=\"#00D2FF\" />\n <stop offset={0.7604} stopColor=\"#00DFFF\" />\n <stop offset={1} stopColor=\"#00E3FF\" />\n </linearGradient>\n <linearGradient\n id=\"paint1_linear_890_9261\"\n x1={56.253}\n y1={32.9142}\n x2={16.3504}\n y2={32.9142}\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#FFE000\" />\n <stop offset={0.4087} stopColor=\"#FFBD00\" />\n <stop offset={0.7754} stopColor=\"#FFA500\" />\n <stop offset={1} stopColor=\"#FF9C00\" />\n </linearGradient>\n <linearGradient\n id=\"paint2_linear_890_9261\"\n x1={41.3981}\n y1={36.6951}\n x2={15.2049}\n y2={80.8704}\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#FF3A44\" />\n <stop offset={1} stopColor=\"#C31162\" />\n </linearGradient>\n <linearGradient\n id=\"paint3_linear_890_9261\"\n x1={12.4868}\n y1={0.294332}\n x2={24.1726}\n y2={20.0238}\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#32A071\" />\n <stop offset={0.0685} stopColor=\"#2DA771\" />\n <stop offset={0.4762} stopColor=\"#15CF74\" />\n <stop offset={0.8009} stopColor=\"#06E775\" />\n <stop offset={1} stopColor=\"#00F076\" />\n </linearGradient>\n <clipPath id=\"clip0_890_9261\">\n <rect width={223.543} height={65.8286} fill=\"white\" transform=\"translate(0.457031)\" />\n </clipPath>\n </defs>\n </svg>\n);","'use client'\nimport { forwardRef } from 'react';\n\nimport { cn } from '@utils/cn';\n\nimport { UnstyledButton } from '../unstyledButton';\n\ninterface IHamburgerMenuButtonProps {\n setMenuState: () => void;\n menuState: boolean;\n}\n\nexport const HamburgerMenuButton = forwardRef<HTMLButtonElement, IHamburgerMenuButtonProps>(\n ({ menuState, setMenuState }: IHamburgerMenuButtonProps, ref) => {\n const defaultClasses = cn('absolute h-[2px] bg-white duration-150');\n\n return (\n <UnstyledButton\n onClick={setMenuState}\n className=\"relative h-4 w-6\"\n name=\"hamburgerMenuButton\"\n data-component=\"hamburgerMenuButton\"\n aria-label=\"Mobile Menu button\"\n ref={ref}\n >\n <span\n data-testid=\"hamburger-line-top\"\n className={cn(defaultClasses, 'top-0 left-0 w-6', {\n 'translation top-1/2 translate-y-[-50%] rotate-45 transform duration-150 ease-in': menuState,\n })}\n />\n <span\n data-testid=\"hamburger-line-middle\"\n className={cn(defaultClasses, 'top-1/2 right-0 w-4 translate-y-[-50%]', {\n 'translation opacity-0 ease-in': menuState,\n })}\n />\n <span\n data-testid=\"hamburger-line-bottom\"\n className={cn(defaultClasses, 'bottom-0 left-0 w-6', {\n 'translation top-1/2 translate-y-[-50%] -rotate-45 transform duration-150 ease-in': menuState,\n })}\n />\n </UnstyledButton>\n );\n },\n);\n\nHamburgerMenuButton.displayName = 'HamburgerMenuButton';\n","'use client'\ninterface HRProps {\n className?: string;\n}\n\nexport const HR = ({ className }: HRProps) => (\n <hr data-component=\"hr\" className={`h-px w-full border-none bg-gray-200 ${className}`} />\n);\n\nHR.displayName = 'HR';\n","'use client'\nimport * as React from 'react';\n\nimport { cn } from '@utils/cn';\n\ninterface IIsland extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n noShadow?: boolean;\n noPadding?: boolean;\n}\n\nexport const Island = ({ children, className, noShadow = false, noPadding = false, ...props }: IIsland) => (\n <div\n data-testid=\"island\"\n data-component=\"island\"\n className={cn(\n 'relative bg-white px-5 py-5 md:px-10 md:py-9',\n {\n 'shadow-[0_-0.5rem_2rem_rgba(38,41,92,0.04)]': !noShadow,\n 'drop-shadow-none': noShadow,\n 'md:px-0 md:py-0': noPadding,\n },\n className,\n )}\n {...props}\n >\n {children}\n </div>\n);\n\nIsland.displayName = 'Island';\n","'use client';\nimport { Fragment, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { buttonVariants } from '@components/button/buttonVariants';\nimport { Tooltip } from '@components/tooltip';\nimport { UnstyledButton } from '@components/unstyledButton';\nimport { IconDotsVertical } from '@tabler/icons-react';\nimport { cn } from '@utils/cn';\n\nexport interface KebabMenuProps {\n title?: string;\n tooltip?: string;\n disabled?: boolean;\n content: {\n key: number;\n onClick: () => void;\n title: string;\n disabled?: boolean;\n tooltip?: string;\n }[];\n styleVariant?: 'default' | 'small';\n}\n\nexport const KebabMenu = ({ title, tooltip, content, disabled = false, styleVariant = 'default' }: KebabMenuProps) => {\n const [isOpen, setIsOpen] = useState(false);\n const menuRef = useRef<HTMLDivElement>(null);\n const defaultStyling =\n 'text-black flex items-center justify-self-end gap-1 bg-transparent font-medium py-1 h-9 min-w-9 cursor-pointer px-0';\n\n const handleToggle = () => {\n if (!disabled) setIsOpen((prev) => !prev);\n };\n\n const handleItemClick = (onClick: () => void) => {\n if (!disabled) {\n onClick();\n setIsOpen(false);\n }\n };\n\n const handleClickOutside = (event: MouseEvent) => {\n if (menuRef.current && !menuRef.current.contains(event.target as Node)) setIsOpen(false);\n };\n\n useEffect(() => {\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, []);\n\n const button = useMemo(\n () => (\n <UnstyledButton\n aria-label=\"Options Menu\"\n className={cn(buttonVariants['secondary'], defaultStyling, {\n 'md:pr-3.5 md:pl-5': title,\n 'h-7 min-w-7': styleVariant === 'small',\n })}\n disabled={disabled}\n onClick={handleToggle}\n >\n {title && <span className=\"hidden md:block\">{title}</span>}\n <IconDotsVertical size={20} stroke={1} fill=\"black\" />\n </UnstyledButton>\n ),\n [title, styleVariant, disabled, handleToggle],\n );\n\n return (\n <>\n <div\n data-component=\"kebabMenu\"\n data-testid=\"kebab-menu\"\n ref={menuRef}\n data-tooltip-id={title}\n data-tooltip-content={title}\n >\n {tooltip ? (\n <Tooltip passedOpen={false} size=\"sm\" content={tooltip}>\n {button}\n </Tooltip>\n ) : (\n button\n )}\n {isOpen && (\n <div className=\"relative\">\n <div className=\"absolute right-0 z-10 mt-2 w-auto min-w-[200px] rounded-md border-[0.0625rem] border-gray-200 bg-white p-1 shadow-md\">\n {content.map((c, index) => {\n const button = (\n <UnstyledButton\n onClick={() => handleItemClick(c.onClick)}\n className={\n 'w-full rounded-md px-4 py-2 text-left text-sm font-normal whitespace-nowrap hover:bg-gray-50'\n }\n aria-label=\"Options Menu Item\"\n disabled={c.disabled}\n >\n {c.title}\n </UnstyledButton>\n );\n\n return c.tooltip ? (\n <Tooltip key={index} passedOpen={false} size=\"sm\" content={c.tooltip}>\n {button}\n </Tooltip>\n ) : (\n <Fragment key={index}>{button}</Fragment>\n );\n })}\n </div>\n </div>\n )}\n </div>\n </>\n );\n};\n\nKebabMenu.displayName = 'KebabMenu';\n","'use client'\n\nimport { cn } from '@utils/cn';\n\ninterface LabelProps {\n children: React.ReactNode | string | React.ReactNode[];\n htmlFor?: string;\n className?: string;\n}\n\nexport const Label = ({ children, className, ...props }: LabelProps) => (\n <label\n data-component=\"label\"\n data-testid=\"label\"\n className={cn('flex items-center gap-1 text-xs font-medium text-black', className)}\n {...props}\n >\n {children}\n </label>\n);\n","'use client'\nexport const Loader = () => (\n <div data-testid=\"loader-container\" className=\"inline-flex h-full w-auto items-center justify-center\">\n <div data-testid=\"loader\" className=\"loader\"></div>\n </div>\n);\n\nLoader.displayName = 'Loader';\n","'use client'\nimport { type SVGProps } from 'react';\nexport const LogoBlack = (props: SVGProps<SVGSVGElement>) => (\n <svg viewBox=\"0 0 110 68\" fill=\"none\" data-component=\"logo\" data-testid=\"logo\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g clipPath=\"url(#clip0_2069_36940)\">\n <path\n data-testid=\"logo-path\"\n d=\"M109.937 0C109.936 0.125784 109.934 0.251569 109.934 0.377356C109.934 2.23291 109.934 4.08846 109.934 5.94402C109.934 6.33238 109.962 6.30387 109.579 6.30497C109.305 6.30575 109.031 6.30512 108.757 6.30512C72.6623 6.30512 36.5679 6.30514 0.473486 6.30452C0.315656 6.30452 0.157829 6.29536 0 6.29047C2.53566e-06 4.19365 2.53566e-06 2.09682 2.53566e-06 0C36.6456 0 73.2911 0 109.937 0Z\"\n fill=\"#10D1BB\"\n />\n <path\n d=\"M0 61.7095C0.14758 61.7114 0.295163 61.715 0.442743 61.715C36.7629 61.7152 73.083 61.7152 109.403 61.7156C109.551 61.7156 109.698 61.7203 109.845 61.7241C109.884 61.7251 109.924 61.7667 109.926 61.806C109.929 61.9106 109.934 62.0152 109.934 62.1199C109.934 63.9646 109.934 65.8094 109.934 67.6541C109.934 67.7694 109.936 67.8847 109.937 67.9999H0C0 65.9031 0 63.8063 0 61.7095Z\"\n fill=\"#10D1BB\"\n />\n <path\n d=\"M110 32.522C109.927 32.5249 109.853 32.5303 109.779 32.5303C108.324 32.5308 106.869 32.5307 105.413 32.5306C105.35 32.5306 105.287 32.5304 105.223 32.529C105.157 32.5275 105.122 32.4978 105.121 32.4394C105.119 32.3556 105.118 32.2718 105.118 32.188C105.117 31.8001 105.118 31.4123 105.117 31.0245C105.117 30.9721 105.115 30.9198 105.113 30.8675C105.112 30.8415 105.063 30.8171 105.041 30.8327C104.949 30.9007 104.856 30.9686 104.764 31.0379C104.224 31.4449 103.646 31.7859 103.022 32.0492C102.39 32.3165 101.734 32.5011 101.052 32.5953C100.56 32.6632 100.066 32.7077 99.5705 32.6874C99.1707 32.671 98.7711 32.6489 98.3725 32.5998C97.4581 32.4871 96.573 32.2648 95.7179 31.9281C93.6794 31.1254 92.0923 29.7867 90.9473 27.9302C90.3094 26.8961 89.8495 25.7877 89.578 24.6048C89.4773 24.1661 89.4082 23.7214 89.3539 23.2737C89.3045 22.867 89.2868 22.4589 89.2649 22.0512C89.231 21.422 89.2759 20.7951 89.3513 20.1695C89.5478 18.538 90.1241 17.0466 91.0342 15.6819C92.0516 14.1562 93.3963 12.9896 95.0259 12.1434C95.8695 11.7054 96.7528 11.372 97.6806 11.1603C98.1322 11.0573 98.5892 10.9845 99.0508 10.9342C99.7875 10.8538 100.525 10.8585 101.262 10.8942C101.567 10.909 101.87 10.9511 102.173 10.9941C102.622 11.0579 103.065 11.147 103.502 11.2658C105.215 11.7319 106.706 12.5796 107.955 13.8394C108.416 14.3047 108.805 14.825 109.124 15.3962C109.149 15.4415 109.17 15.4898 109.187 15.5388C109.192 15.5546 109.185 15.5843 109.173 15.5951C109.094 15.6637 109.013 15.7311 108.93 15.7946C108.319 16.2599 107.708 16.724 107.096 17.1887C106.393 17.7233 105.69 18.2582 104.986 18.7927C104.936 18.8307 104.884 18.8661 104.832 18.902C104.809 18.9182 104.769 18.9066 104.753 18.8793C104.711 18.8068 104.67 18.7337 104.628 18.6612C104.48 18.4067 104.311 18.1665 104.116 17.9449C103.395 17.1243 102.499 16.5837 101.447 16.2918C101.039 16.1784 100.62 16.1224 100.198 16.1226C98.7114 16.1235 97.5022 16.7064 96.5777 17.863C96.0995 18.4614 95.7819 19.143 95.5733 19.8748C95.3441 20.6791 95.2764 21.5021 95.3325 22.3337C95.3779 23.0048 95.504 23.661 95.7537 24.2908C96.0357 25.0019 96.4293 25.6395 96.99 26.1674C97.6084 26.7496 98.3353 27.1286 99.169 27.3097C99.7098 27.4272 100.256 27.457 100.804 27.4098C101.855 27.3194 102.812 26.9652 103.674 26.3591C104.071 26.0798 104.439 25.7668 104.769 25.4119C104.779 25.4019 104.773 25.3761 104.77 25.3584C104.769 25.3526 104.755 25.3452 104.747 25.3449C104.652 25.3415 104.557 25.3371 104.463 25.3371C103.482 25.3365 102.501 25.3368 101.52 25.3367C101.436 25.3367 101.352 25.3375 101.267 25.3361C101.154 25.3342 101.126 25.304 101.124 25.1813C101.123 25.0975 101.124 25.0136 101.124 24.9298C101.124 24.1227 101.124 23.3156 101.124 22.5085C101.124 22.0998 101.124 21.691 101.124 21.2822C101.124 21.23 101.127 21.1774 101.135 21.1259C101.138 21.1094 101.159 21.0915 101.176 21.0826C101.193 21.0737 101.216 21.0728 101.237 21.0723C101.3 21.0708 101.363 21.0709 101.426 21.0709C104.232 21.0708 107.037 21.0708 109.842 21.0709C109.895 21.0709 109.947 21.0725 110 21.0733V32.522Z\"\n fill=\"black\"\n />\n <path\n d=\"M58.423 45.7755C58.423 49.2346 58.4236 52.6936 58.4223 56.1527C58.4222 56.5883 58.4795 56.5365 58.0371 56.537C56.6977 56.5385 55.3583 56.5376 54.0189 56.5375C53.9346 56.5375 53.8502 56.536 53.7659 56.5363C53.7209 56.5364 53.6839 56.5194 53.6546 56.4872C53.6193 56.4485 53.5848 56.409 53.5518 56.3684C51.7619 54.1684 49.972 51.9684 48.1824 49.7681C47.2015 48.562 46.2211 47.3555 45.2402 46.1493C45.2204 46.1249 45.1983 46.1023 45.1769 46.0791C45.1483 46.0482 45.1912 46.0812 45.149 46.0814C45.1404 46.0814 45.1264 46.0881 45.1242 46.0947C45.1178 46.1144 45.1132 46.1355 45.113 46.1561C45.1116 46.2609 45.1114 46.3657 45.1114 46.4706C45.1114 49.6885 45.1114 52.9065 45.1112 56.1245C45.1112 56.2292 45.1095 56.3339 45.1067 56.4386C45.1052 56.4907 45.0583 56.5336 45.0027 56.5352C44.9289 56.5372 44.8551 56.5375 44.7813 56.5375C43.0095 56.5376 41.2377 56.5375 39.4659 56.5375C39.4026 56.5375 39.3394 56.5376 39.2761 56.5367C39.1818 56.5353 39.1297 56.5097 39.1317 56.38C39.133 56.2961 39.1315 56.2123 39.1315 56.1284C39.1315 49.2313 39.1312 42.3341 39.1322 35.437C39.1323 34.958 39.0683 35.0146 39.5454 35.014C40.832 35.0123 42.1187 35.0134 43.4054 35.0134C43.4792 35.0134 43.5533 35.0175 43.6268 35.0126C43.7422 35.0049 43.8209 35.0486 43.894 35.1412C44.5904 36.0232 45.2918 36.9011 45.991 37.7808C47.86 40.1324 49.7286 42.4842 51.5974 44.836C51.8326 45.132 52.0675 45.4282 52.304 45.7232C52.3363 45.7636 52.3767 45.7976 52.4149 45.833C52.4175 45.8354 52.4369 45.8268 52.4412 45.8192C52.4504 45.803 52.4601 45.7842 52.4605 45.7662C52.4625 45.6719 52.462 45.5776 52.462 45.4832C52.462 42.129 52.462 38.7748 52.462 35.4205C52.462 35.3262 52.4616 35.2319 52.4627 35.1375C52.4638 35.0429 52.4935 35.0165 52.5996 35.0143C52.6523 35.0132 52.7051 35.0134 52.7578 35.0134C54.5507 35.0134 56.3436 35.0134 58.1364 35.0134C58.1892 35.0134 58.2419 35.0132 58.2946 35.0146C58.3975 35.0173 58.4211 35.0414 58.4224 35.1468C58.4236 35.2411 58.423 35.3355 58.423 35.4298C58.423 38.8784 58.423 42.327 58.423 45.7755Z\"\n fill=\"black\"\n />\n <path\n d=\"M86.605 21.7644C86.605 25.2233 86.6059 28.6822 86.604 32.1411C86.6037 32.59 86.6704 32.5287 86.2283 32.5294C84.8784 32.5316 83.5285 32.5303 82.1786 32.5301C82.0943 32.5301 82.01 32.5283 81.9256 32.5274C81.8803 32.5269 81.8462 32.5057 81.8183 32.4716C81.6121 32.2196 81.405 31.9686 81.1996 31.7161C78.6611 28.5951 76.1229 25.4739 73.584 22.3532C73.5051 22.2562 73.42 22.1643 73.3365 22.071C73.3339 22.0681 73.3124 22.0745 73.3087 22.0814C73.2994 22.0983 73.2904 22.1179 73.29 22.1365C73.288 22.2308 73.2887 22.3252 73.2887 22.4195C73.2887 25.6583 73.2887 28.8971 73.2885 32.1359C73.2885 32.2407 73.2865 32.3454 73.2842 32.4502C73.2834 32.4894 73.2446 32.5242 73.2006 32.5256C73.1269 32.528 73.0532 32.5299 72.9794 32.53C72.6525 32.5305 72.3256 32.5302 71.9986 32.5302C70.5539 32.5302 69.1091 32.5303 67.6643 32.5299C67.5695 32.5299 67.4746 32.5278 67.3801 32.5218C67.3643 32.5208 67.3452 32.4971 67.3365 32.4795C67.3277 32.4618 67.3277 32.4386 67.3274 32.4178C67.3263 32.3235 67.3262 32.2292 67.3262 32.1348C67.3262 25.2275 67.3261 18.3201 67.3264 11.4127C67.3264 11.3081 67.3289 11.2034 67.3317 11.0987C67.3329 11.0558 67.3695 11.0185 67.4099 11.0169C67.4625 11.0149 67.5152 11.0134 67.5679 11.0134C68.9705 11.0132 70.3731 11.0133 71.7758 11.0134C71.8179 11.0134 71.8601 11.0151 71.9023 11.015C71.9482 11.0148 71.9832 11.0375 72.0108 11.07C72.0652 11.134 72.1174 11.1998 72.1696 11.2655C74.8164 14.5952 77.463 17.925 80.1098 21.2546C80.2601 21.4437 80.4126 21.631 80.563 21.82C80.5794 21.8406 80.5942 21.847 80.6159 21.8295C80.6228 21.8239 80.6309 21.8147 80.6311 21.8069C80.6344 21.7023 80.6384 21.5977 80.6384 21.4932C80.6388 18.9776 80.6387 16.462 80.6387 13.9464C80.6387 13.0869 80.6385 12.2274 80.639 11.3679C80.6391 11.2738 80.6398 11.1793 80.6487 11.0857C80.6508 11.0627 80.6829 11.0295 80.7066 11.024C80.7571 11.0124 80.811 11.0136 80.8636 11.0136C82.7091 11.0132 84.5547 11.0133 86.4002 11.0135C86.4424 11.0135 86.4852 11.0115 86.5264 11.0181C86.5562 11.0229 86.5855 11.0403 86.5926 11.0746C86.5988 11.1051 86.6036 11.1365 86.6041 11.1675C86.6057 11.2619 86.605 11.3562 86.605 11.4505C86.605 14.8885 86.605 18.3264 86.605 21.7644Z\"\n fill=\"black\"\n />\n <path\n d=\"M41.9507 21.8205C41.9262 22.311 41.9056 22.7602 41.8521 23.2085C41.5771 25.5158 40.3731 28.0879 38.2308 29.9621C36.9961 31.0423 35.5907 31.8235 34.0114 32.2898C33.5465 32.4271 33.0729 32.5215 32.5936 32.5959C31.7766 32.7227 30.955 32.7444 30.1333 32.6965C28.6095 32.6076 27.1678 32.2159 25.8225 31.4882C23.2223 30.0817 21.4701 27.9686 20.506 25.197C20.3129 24.6419 20.1732 24.0726 20.0774 23.494C19.9485 22.7162 19.9029 21.9314 19.9506 21.1445C20.0284 19.8579 20.3239 18.6212 20.8524 17.4425C21.985 14.9166 23.8264 13.0814 26.3334 11.897C27.1361 11.5177 27.9766 11.2508 28.8487 11.0873C29.2519 11.0117 29.6593 10.9575 30.0706 10.9322C30.3969 10.9121 30.7224 10.8887 31.0497 10.8897C31.5566 10.8911 32.0599 10.9341 32.5625 10.996C33.2759 11.0839 33.972 11.2432 34.6467 11.4879C36.2464 12.068 37.6436 12.9622 38.8206 14.1868C40.1807 15.602 41.0935 17.2655 41.5909 19.1578C41.727 19.6758 41.8225 20.2007 41.8805 20.7314C41.9214 21.1059 41.9301 21.4839 41.9507 21.8205ZM30.9468 27.4555C31.3254 27.4496 31.7251 27.4288 32.1178 27.3407C32.9847 27.1464 33.7225 26.7216 34.3408 26.092C34.765 25.6598 35.0796 25.1531 35.3175 24.5998C35.6822 23.7517 35.8479 22.8603 35.8797 21.9426C35.891 21.618 35.8726 21.2943 35.8389 20.9701C35.791 20.5098 35.7016 20.0595 35.5673 19.618C35.348 18.8974 35.0037 18.2423 34.4927 17.6823C33.679 16.7904 32.6682 16.2788 31.4594 16.1777C30.9976 16.1391 30.5337 16.1426 30.0716 16.2161C29.7478 16.2676 29.4315 16.3393 29.1267 16.4585C28.2898 16.7857 27.6142 17.3185 27.0921 18.0445C26.522 18.8374 26.2265 19.7346 26.0768 20.6876C26.0131 21.0929 26.0027 21.5006 26.0014 21.9096C25.9993 22.5531 26.0954 23.1828 26.269 23.8007C26.4752 24.5347 26.8015 25.2113 27.2912 25.8015C27.8757 26.5061 28.6042 27.0022 29.4883 27.2659C29.957 27.4058 30.4385 27.4465 30.9468 27.4555Z\"\n fill=\"black\"\n />\n <path\n d=\"M25.5241 56.718C24.895 56.7012 24.3362 56.6802 23.7828 56.5985C22.6171 56.4265 21.5115 56.0709 20.4699 55.5188C18.0579 54.2402 16.3527 52.3317 15.3186 49.8231C15.0424 49.1531 14.8383 48.4608 14.7034 47.7502C14.6273 47.3493 14.5641 46.9452 14.5489 46.5356C14.5404 46.3052 14.515 46.0753 14.5134 45.845C14.51 45.3522 14.5445 44.8615 14.6072 44.3721C14.8212 42.7015 15.4145 41.1716 16.3461 39.7716C17.4473 38.1167 18.9145 36.8725 20.6994 35.9925C21.5048 35.5954 22.3475 35.3032 23.2272 35.1214C23.5567 35.0533 23.8902 35.0047 24.2255 34.9656C24.9826 34.8772 25.7409 34.8823 26.4994 34.9214C26.804 34.9371 27.107 34.9808 27.4093 35.027C27.7845 35.0845 28.1539 35.165 28.5202 35.2619C29.4527 35.5086 30.3231 35.8993 31.1464 36.3946C33.2557 37.6638 34.7532 39.4518 35.6915 41.7104C35.9654 42.3696 36.17 43.0509 36.31 43.7499C36.382 44.1088 36.4332 44.4716 36.4683 44.8373C36.5044 45.2138 36.5177 45.5898 36.5176 45.9672C36.5175 46.4397 36.4728 46.9081 36.406 47.3756C36.168 49.0435 35.5456 50.562 34.5936 51.9481C33.5004 53.5399 32.0681 54.7466 30.3347 55.605C29.5491 55.994 28.7291 56.2877 27.8708 56.4684C27.3245 56.5834 26.7722 56.6663 26.2122 56.6861C25.9594 56.6951 25.7067 56.7094 25.5241 56.718ZM30.4524 45.7182C30.4674 44.9881 30.3492 44.2568 30.124 43.5426C29.8973 42.8237 29.5411 42.175 29.0217 41.6224C28.4028 40.9639 27.6594 40.5086 26.7746 40.2913C26.5183 40.2284 26.2573 40.1985 25.9951 40.171C25.4015 40.1087 24.8151 40.1558 24.237 40.2888C23.4478 40.4705 22.7742 40.8661 22.1966 41.4264C21.7381 41.8713 21.3954 42.3954 21.1379 42.9758C20.7847 43.7716 20.6239 44.6117 20.5792 45.4747C20.5399 46.2331 20.6289 46.9805 20.8253 47.7143C21 48.367 21.2712 48.977 21.6653 49.5293C22.2042 50.2845 22.9071 50.8327 23.7779 51.1645C24.1237 51.2963 24.4834 51.3666 24.8512 51.4118C25.4537 51.4858 26.0493 51.4617 26.6429 51.3411C27.618 51.1431 28.4208 50.6525 29.0742 49.9162C29.4898 49.4479 29.7899 48.9085 30.0051 48.3232C30.3119 47.489 30.4642 46.6275 30.4524 45.7182Z\"\n fill=\"black\"\n />\n <path\n d=\"M44.2491 17.2909C44.2491 15.3308 44.249 13.3708 44.2493 11.4107C44.2493 11.306 44.2523 11.2013 44.2551 11.0966C44.2561 11.0577 44.2961 11.021 44.3374 11.0185C44.3689 11.0166 44.4004 11.0141 44.4319 11.0138C44.5057 11.0131 44.5796 11.0135 44.6534 11.0135C46.3724 11.0135 48.0914 11.0135 49.8104 11.0135C49.9053 11.0135 50.0003 11.0121 50.0951 11.0149C50.18 11.0174 50.2177 11.0267 50.2226 11.1514C50.2238 11.1828 50.2236 11.2143 50.2237 11.2458C50.2238 11.3191 50.2238 11.3925 50.2238 11.4659C50.2238 14.9458 50.2228 18.4257 50.2252 21.9056C50.2254 22.2513 50.2292 22.5983 50.2592 22.9423C50.3248 23.6954 50.4572 24.4357 50.7494 25.1403C50.8987 25.5001 51.0809 25.8405 51.317 26.1518C51.528 26.43 51.7756 26.6701 52.0586 26.876C52.5218 27.2132 53.0414 27.3912 53.6111 27.435C53.8639 27.4544 54.1158 27.4551 54.3694 27.4397C55.0794 27.3964 55.6967 27.1366 56.2319 26.6756C56.5209 26.4266 56.7648 26.1397 56.9652 25.8158C57.2545 25.3482 57.4553 24.8433 57.5872 24.3126C57.6883 23.9061 57.755 23.4932 57.7993 23.0755C57.8404 22.6885 57.849 22.3019 57.849 21.9142C57.8492 18.4028 57.849 14.8914 57.8495 11.3801C57.8496 11.2755 57.854 11.1708 57.8609 11.0665C57.862 11.0509 57.8867 11.0267 57.9032 11.0241C57.955 11.0161 58.008 11.014 58.0606 11.0139C58.4192 11.0132 58.7777 11.0135 59.1363 11.0135C60.5811 11.0135 62.0259 11.0134 63.4707 11.0138C63.5653 11.0139 63.6599 11.0168 63.7542 11.0231C63.7702 11.0242 63.7891 11.0466 63.7985 11.0636C63.8081 11.081 63.8108 11.1039 63.8112 11.1245C63.8128 11.2188 63.8129 11.3132 63.8129 11.4075C63.813 14.856 63.813 18.3044 63.8129 21.7529C63.8129 21.8996 63.8113 22.0464 63.8109 22.1931C63.8091 22.8539 63.7689 23.5116 63.6814 24.1676C63.5661 25.0313 63.3803 25.878 63.0997 26.7033C62.8251 27.5106 62.4513 28.2693 61.9637 28.9721C61.2894 29.9441 60.4442 30.7349 59.4293 31.3479C58.4465 31.9414 57.3894 32.3347 56.2557 32.53C55.5579 32.6503 54.8565 32.714 54.1485 32.7151C53.5998 32.7159 53.0523 32.7017 52.5063 32.6413C50.9164 32.4654 49.4543 31.9532 48.1461 31.0254C47.007 30.2175 46.1407 29.1803 45.5053 27.9469C45.1389 27.2357 44.878 26.4862 44.6841 25.7121C44.5542 25.1934 44.4557 24.6686 44.3857 24.1395C44.3458 23.8388 44.3181 23.536 44.2946 23.2328C44.2465 22.6151 44.2493 21.9971 44.2492 21.3787C44.2489 20.0161 44.2491 18.6535 44.2491 17.2909Z\"\n fill=\"black\"\n />\n <path\n d=\"M62.2285 45.7821C62.2285 42.3122 62.2283 38.8422 62.2287 35.3722C62.2288 34.9817 62.1882 35.0133 62.58 35.0133C67.4108 35.0132 72.2416 35.0132 77.0725 35.0135C77.1567 35.0135 77.2409 35.0167 77.3251 35.0198C77.3661 35.0213 77.4024 35.059 77.4034 35.1006C77.4052 35.174 77.4063 35.2473 77.4063 35.3207C77.4065 36.5472 77.4065 37.7738 77.4065 39.0003C77.4065 39.3253 77.407 39.6503 77.4059 39.9752C77.4057 40.0273 77.4014 40.0798 77.3923 40.131C77.3894 40.1476 77.3659 40.1721 77.3505 40.1731C77.2457 40.1803 77.1405 40.1852 77.0355 40.1853C74.2193 40.1858 71.4031 40.1857 68.5868 40.1859C68.4814 40.1859 68.376 40.1885 68.2705 40.1903C68.2512 40.1906 68.2133 40.2338 68.2127 40.2551C68.2115 40.297 68.2083 40.3389 68.2083 40.3807C68.208 41.2403 68.208 42.1 68.2084 42.9596C68.2084 43.0119 68.212 43.0643 68.2146 43.1166C68.2155 43.1357 68.2576 43.1774 68.2771 43.178C68.3824 43.1811 68.4877 43.186 68.593 43.186C70.7236 43.1865 72.8542 43.1864 74.9849 43.1864C75.2591 43.1864 75.5333 43.1859 75.8076 43.1868C75.8707 43.187 75.9344 43.1881 75.9966 43.197C76.0238 43.201 76.0594 43.2135 76.0617 43.2539C76.0647 43.306 76.07 43.3581 76.07 43.4102C76.0704 44.8674 76.0704 46.3246 76.0699 47.7817C76.0699 47.8339 76.0672 47.8867 76.059 47.9381C76.0563 47.9547 76.0342 47.9726 76.0166 47.9815C75.9988 47.9905 75.9757 47.9917 75.9548 47.992C75.8599 47.9932 75.765 47.9932 75.67 47.9932C73.3179 47.9933 70.9658 47.9932 68.6137 47.9934C68.5082 47.9934 68.4027 47.9946 68.2973 47.9955C68.2517 47.996 68.2136 48.0286 68.2127 48.0673C68.2113 48.1301 68.2083 48.1929 68.2083 48.2557C68.208 49.1992 68.2078 50.1427 68.2085 51.0862C68.2085 51.1592 68.2121 51.2324 68.2196 51.3049C68.2213 51.3212 68.2438 51.3399 68.2613 51.3486C68.2791 51.3575 68.3024 51.3576 68.3233 51.3578C68.4288 51.359 68.5342 51.3593 68.6397 51.3593C71.5192 51.3594 74.3988 51.3593 77.2783 51.3596C77.3837 51.3596 77.4891 51.3621 77.5946 51.3644C77.6241 51.365 77.675 51.4184 77.6758 51.4489C77.6775 51.5117 77.6787 51.5746 77.6787 51.6375C77.6788 53.1786 77.6789 54.7196 77.6786 56.2606C77.6786 56.3234 77.6761 56.3861 77.6732 56.4488C77.6717 56.4841 77.626 56.5325 77.5934 56.5333C77.4985 56.5355 77.4036 56.5373 77.3087 56.5374C75.4945 56.5376 73.6803 56.5375 71.8661 56.5375C68.7862 56.5375 65.7063 56.5375 62.6264 56.5375C62.5314 56.5375 62.4365 56.5378 62.3416 56.5357C62.2732 56.5342 62.2314 56.4878 62.23 56.4121C62.2281 56.3178 62.2285 56.2234 62.2285 56.1291C62.2285 52.6801 62.2285 49.2311 62.2285 45.7821Z\"\n fill=\"black\"\n />\n <path\n d=\"M88.4502 56.7968C87.9177 56.8204 87.4123 56.7749 86.9094 56.7242C85.5967 56.5919 84.3084 56.3298 83.0443 55.9521C82.0958 55.6687 81.1671 55.333 80.2709 54.912C79.9187 54.7465 79.573 54.5682 79.2364 54.3729C79.2091 54.357 79.1812 54.3423 79.1544 54.3257C79.1222 54.3057 79.1022 54.2474 79.1166 54.2155C79.1424 54.1583 79.1681 54.101 79.1959 54.0448C79.9715 52.4768 80.7473 50.9089 81.5235 49.3413C81.5559 49.276 81.5931 49.2129 81.6289 49.1493C81.6402 49.1292 81.6924 49.1175 81.7132 49.1296C81.804 49.1824 81.8946 49.2356 81.9851 49.2889C83.0568 49.9198 84.1744 50.4531 85.3544 50.8537C85.7827 50.9991 86.2137 51.1356 86.6561 51.2333C87.0059 51.3106 87.3583 51.3678 87.7153 51.4056C88.0941 51.4457 88.4724 51.4583 88.8523 51.4505C89.1275 51.4448 89.3979 51.4033 89.6625 51.3287C89.8161 51.2854 89.9551 51.2119 90.0732 51.1027C90.2355 50.9527 90.321 50.7713 90.3273 50.5478C90.3352 50.2683 90.2344 50.0367 90.0409 49.8408C89.9295 49.7279 89.7988 49.6396 89.6641 49.5565C89.4122 49.4012 89.1413 49.2877 88.8637 49.1876C88.339 48.9984 87.8038 48.8431 87.2681 48.689C86.2671 48.401 85.2754 48.0859 84.3116 47.6891C83.854 47.5007 83.4064 47.2923 82.9732 47.0538C82.52 46.8042 82.0938 46.516 81.7051 46.1745C80.9141 45.4795 80.4 44.6241 80.1797 43.5942C80.0516 42.9956 80.0085 42.3914 80.037 41.7822C80.0511 41.479 80.0714 41.1764 80.1139 40.8743C80.2414 39.9701 80.5385 39.1286 81.0124 38.3472C81.5104 37.526 82.1657 36.8543 82.96 36.3139C83.732 35.7885 84.5749 35.4154 85.4756 35.1714C85.9433 35.0448 86.4187 34.9575 86.901 34.8989C87.4161 34.8363 87.9317 34.8336 88.4484 34.8386C89.2528 34.8464 90.0424 34.9664 90.8265 35.1394C92.3238 35.4697 93.7525 35.9921 95.1378 36.6386C95.4521 36.7853 95.7642 36.9367 96.0773 37.086C96.1058 37.0996 96.1348 37.1123 96.1627 37.1269C96.1949 37.1437 96.2164 37.2045 96.2013 37.2357C96.174 37.2922 96.1466 37.3488 96.1174 37.4043C95.3428 38.8794 94.568 40.3543 93.7929 41.829C93.7638 41.8844 93.732 41.9385 93.7007 41.9926C93.6871 42.016 93.639 42.0331 93.6178 42.0224C93.5711 41.9988 93.5237 41.976 93.4785 41.9497C92.3649 41.3029 91.1888 40.7985 89.9586 40.4156C89.586 40.2996 89.2079 40.2049 88.8218 40.1531C88.5194 40.1125 88.2147 40.0774 87.9078 40.0845C87.6119 40.0914 87.3178 40.1152 87.0323 40.1964C86.9116 40.2308 86.7922 40.2756 86.6793 40.3302C86.3882 40.4709 86.2408 40.7153 86.2116 41.0285C86.1783 41.3867 86.2973 41.6873 86.5811 41.9185C86.7451 42.0522 86.9244 42.1619 87.1149 42.2524C87.4573 42.4149 87.8126 42.545 88.1757 42.6541C88.659 42.7994 89.1434 42.9414 89.6259 43.0893C90.3899 43.3236 91.1531 43.5605 91.8988 43.8488C92.3893 44.0385 92.8747 44.2404 93.3439 44.4783C93.8807 44.7505 94.3871 45.0695 94.8512 45.4526C95.7589 46.2021 96.3408 47.1493 96.5881 48.2966C96.7527 49.06 96.8007 49.8313 96.7302 50.6093C96.7084 50.8492 96.6877 51.0886 96.6533 51.3278C96.3927 53.1444 95.2989 54.5651 94.0962 55.3507C93.3406 55.8442 92.5219 56.1922 91.6492 56.4167C91.0877 56.5612 90.5169 56.6643 89.9407 56.7248C89.4378 56.7775 88.9329 56.8261 88.4502 56.7968Z\"\n fill=\"black\"\n />\n <path\n d=\"M7.41389 28.9104C7.41389 27.8309 7.41389 26.7514 7.41388 25.6719C7.41388 25.5986 7.41283 25.5252 7.41397 25.4518C7.41513 25.377 7.39829 25.3091 7.36172 25.2419C7.28172 25.0947 7.20971 24.9433 7.13325 24.7942C4.83885 20.3209 2.5443 15.8477 0.249818 11.3744C0.206811 11.2905 0.163152 11.207 0.121808 11.1223C0.0889406 11.055 0.107963 11.016 0.171661 11.0144C0.203278 11.0135 0.234923 11.0136 0.266558 11.0136C2.28062 11.0135 4.29468 11.013 6.30874 11.0144C6.50042 11.0145 6.5091 10.9805 6.60571 11.2135C7.18299 12.6057 7.76556 13.9956 8.34514 15.3868C8.98106 16.9132 9.61566 18.4401 10.2508 19.9668C10.2749 20.0248 10.2986 20.083 10.3229 20.141C10.3351 20.1702 10.3514 20.1947 10.3851 20.2052C10.4342 20.2206 10.4336 20.1773 10.4434 20.1546C10.675 19.6161 10.9055 19.0772 11.1355 18.5381C12.1663 16.1216 13.1968 13.7051 14.2274 11.2886C14.2562 11.2212 14.2834 11.1531 14.3134 11.0863C14.3316 11.0459 14.3637 11.0196 14.4099 11.0176C14.473 11.0149 14.5363 11.0137 14.5995 11.0137C16.5819 11.0135 18.5643 11.0135 20.5468 11.0138C20.6099 11.0138 20.673 11.0176 20.7361 11.0204C20.7604 11.0214 20.7888 11.0668 20.7788 11.09C20.7497 11.157 20.7225 11.2252 20.6889 11.29C20.2215 12.1921 19.7533 13.0938 19.2849 13.9953C17.3533 17.7134 15.4215 21.4314 13.4898 25.1494C13.4753 25.1773 13.4629 25.2063 13.4468 25.2332C13.3753 25.3532 13.3522 25.4812 13.3525 25.6217C13.3559 27.0156 13.3546 28.4095 13.3546 29.8034C13.3546 30.6313 13.3547 31.4593 13.3543 32.2872C13.3543 32.35 13.3531 32.4131 13.3462 32.4754C13.3444 32.4918 13.321 32.5159 13.3046 32.5186C13.253 32.5272 13.1999 32.5301 13.1474 32.5302C12.7046 32.531 12.2617 32.5307 11.8188 32.5307C10.448 32.5307 9.07715 32.5307 7.70632 32.5307C7.39792 32.5307 7.41354 32.5509 7.41369 32.2432C7.41422 31.1322 7.4139 30.0213 7.41389 28.9104Z\"\n fill=\"black\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_2069_36940\" data-testid=\"logo-clip-path\">\n <rect width={110} height={68} fill=\"white\" data-testid=\"logo-clip-rect\" />\n </clipPath>\n </defs>\n </svg>\n);","'use client';\n\nimport { type JSX, type KeyboardEvent, useCallback, useEffect, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\n// import { useTranslations } from 'next-intl';\nimport { IconX } from '@tabler/icons-react';\nimport { cn } from '@utils/cn';\n\nimport { ActionIcon } from '../actionIcon';\ninterface IModal {\n children: React.ReactNode;\n title?: string;\n withCloseButton?: boolean;\n opened: boolean;\n onClose: () => void;\n additionalClassNames?: string;\n gradient?: boolean;\n dataTestId?: string;\n size?: string | number;\n uncloseAble?: boolean;\n closeModalWithConfirmation?: boolean;\n confirmText?: string;\n}\n\nexport const Modal = ({\n title,\n children,\n withCloseButton = true,\n opened,\n additionalClassNames,\n closeModalWithConfirmation = false,\n gradient = true,\n uncloseAble = false,\n confirmText = 'Are you sure you want to close this modal?',\n dataTestId,\n onClose,\n size,\n}: IModal) => {\n // const t = useTranslations();\n const ref = useRef<HTMLDivElement | null>(null);\n const refContainer = useRef<HTMLDivElement | null>(null);\n const [isOpen, setIsOpen] = useState(false);\n\n useEffect(() => {\n setIsOpen(opened);\n }, [opened]);\n\n const handleClose = useCallback(() => {\n if (uncloseAble) return;\n if (closeModalWithConfirmation) {\n if (window.confirm(confirmText)) {\n setIsOpen(false);\n onClose();\n }\n } else {\n setIsOpen(false);\n onClose();\n }\n }, [closeModalWithConfirmation, onClose, uncloseAble]);\n\n const handleClickOutside = useCallback(\n (event: MouseEvent) => {\n if (refContainer.current && refContainer.current.contains(event.target as HTMLElement))\n if (ref.current && !ref.current.contains(event.target as HTMLElement)) handleClose();\n },\n [handleClose],\n );\n\n const handleEscapeKey = useCallback(\n (event: KeyboardEvent) => {\n if (event.code === 'Escape') handleClose();\n },\n [handleClose],\n );\n\n useEffect(() => {\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside);\n window.addEventListener('keydown', handleEscapeKey as unknown as EventListener);\n }\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n window.removeEventListener('keydown', handleEscapeKey as unknown as EventListener);\n };\n }, [handleClickOutside, handleClose, handleEscapeKey, isOpen, onClose, opened, ref]);\n\n if (!isOpen) return null;\n\n return createPortal(\n <div\n className={cn(\n 'fixed top-0 left-0 z-999 grid h-full w-full items-center overflow-y-scroll overscroll-contain px-4 py-10 md:py-20',\n )}\n data-testid={dataTestId}\n data-component=\"modal\"\n ref={refContainer}\n >\n <div className=\"bg-navy-blue/40 fixed top-0 left-0 z-[-1] size-full\" data-testid=\"modalBg\" />\n <div className={'relative flex w-full justify-center'}>\n <section\n className={cn(\n 'relative h-full w-full max-w-[1000px] bg-white px-5 py-8 shadow-xl md:px-10 md:py-10',\n additionalClassNames,\n size,\n )}\n ref={ref}\n role=\"dialog\"\n tabIndex={-1}\n aria-modal={isOpen}\n aria-label={title}\n >\n <div className=\"relative z-10 w-full\">\n {withCloseButton && (\n <ActionIcon\n onClick={handleClose}\n aria-label={'close modal'}\n className=\"absolute top-0 right-0\"\n data-testid=\"close-modal\"\n icon={<IconX />}\n title={'Close modal'}\n // title={t('globals.closeModal')}\n />\n )}\n </div>\n {title && (\n <div className=\"relative w-full pt-14\">\n <h2 className=\"mt-0 mb-8 text-left text-3xl font-bold\">{title}</h2>\n </div>\n )}\n <div>{children}</div>\n {gradient && (\n <hr\n data-testid=\"modal-gradient\"\n className=\"absolute bottom-0 left-0 mt-8 mb-0 h-2! w-full border-none\"\n style={{\n backgroundImage:\n 'linear-gradient(90deg, var(--color-light-blue) 0%, var(--color-primary) 50.52%, var(--color-secondary) 100%)',\n }}\n />\n )}\n </section>\n </div>\n </div>,\n document.body,\n // Below is needed for test.tsx and for stories.tsx\n ) as unknown as JSX.Element;\n};\n\nModal.displayName = 'Modal';\n","'use client'\nimport { IconChevronLeft, IconChevronRight } from '@tabler/icons-react';\n\ninterface NavButtonsProps {\n onNext?: () => void;\n onPrev?: () => void;\n}\n\nexport const NavButtons = ({ onNext, onPrev }: NavButtonsProps) => (\n <div className=\"flex items-center overflow-hidden rounded border border-gray-200\">\n <div\n data-testid=\"chevron-left\"\n className={`flex ${onPrev ? 'cursor-pointer hover:bg-gray-50' : 'cursor-not-allowed'} h-full items-center px-2`}\n onClick={onPrev}\n >\n <IconChevronLeft size={20} className={onPrev ? 'text-gray-500' : 'text-gray-200'} />\n </div>\n <div className=\"h-6 w-[0.8px] bg-gray-200\" />\n <div\n data-testid=\"chevron-right\"\n className={`flex ${onNext ? 'cursor-pointer hover:bg-gray-50' : 'cursor-not-allowed'} h-full items-center px-2 hover:bg-gray-50`}\n onClick={onNext}\n >\n <IconChevronRight size={20} className={onNext ? 'text-gray-500' : 'text-gray-200'} />\n </div>\n </div>\n);\n","'use client'\nimport { type ChangeEvent } from 'react';\n\ninterface NumberFieldProps {\n name: string;\n value: number | undefined;\n id: string;\n className?: string;\n label?: string;\n error?: string;\n max?: number;\n min?: number;\n isDisabled?: boolean;\n onChange?: (value: number) => void;\n}\n\nexport const NumberField = ({\n name,\n value = 0,\n max,\n min = 0,\n isDisabled,\n id,\n className = '',\n label,\n error,\n onChange,\n}: NumberFieldProps) => {\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n const newValue = parseInt(e.target.value, 10);\n onChange?.(newValue);\n };\n\n const handleIncrement = () => {\n onChange?.(value + 1);\n };\n\n const handleDecrement = () => {\n if (value > 0) onChange?.(value - 1);\n };\n\n return (\n <div data-testid=\"number-field-container\" className={`inline-flex flex-col ${className}`}>\n {label && (\n <label htmlFor={id} className=\"mb-1 text-sm font-medium text-gray-700\">\n {label}\n </label>\n )}\n <div\n className={`has-focus:border-primary group relative flex w-[108px] items-center rounded-md border border-gray-300 ${error ? 'border-red-300' : 'border-gray-300'}`}\n >\n <button\n type=\"button\"\n onClick={handleDecrement}\n disabled={isDisabled}\n className=\"absolute left-0 flex h-full w-8 items-center justify-center rounded-l-md border-r-0 bg-gray-50 text-gray-500 hover:bg-gray-100\"\n >\n -\n </button>\n <input\n type=\"number\"\n id={id}\n name={name}\n min={min}\n max={max}\n disabled={isDisabled}\n value={value}\n onChange={handleChange}\n className={`peer m-auto mx-8 block w-[42px] [appearance:textfield] items-center border-x border-gray-300 py-2 text-center focus:border-x-gray-300 focus:ring-0 focus:ring-red-500 focus:outline-hidden [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none ${\n error ? 'border-red-300' : 'border-gray-300'\n }`}\n />\n <button\n type=\"button\"\n onClick={handleIncrement}\n disabled={isDisabled}\n className=\"absolute right-0 flex h-full w-8 items-center justify-center rounded-r-md bg-gray-50 text-gray-500 hover:bg-gray-100\"\n >\n +\n </button>\n </div>\n {error && <p className=\"mt-1 text-sm font-normal text-red-600\">{error}</p>}\n </div>\n );\n};\n","'use client'\n\nimport { Island } from '../island';\n\ninterface PageUnavailableProps {\n \n notAvailableButton: React.ReactNode;\n notAvailableDescription: string;\n notAvailableHeaderText: string;\n}\n\nexport const PageUnavailable = ({ notAvailableButton, notAvailableDescription, notAvailableHeaderText }: PageUnavailableProps) => (\n <Island>\n <div className=\"mx-auto grid max-w-[900px] justify-items-center gap-8 text-center\">\n <h1 className=\"text-3xl font-bold\">{notAvailableHeaderText}</h1>\n <p>{notAvailableDescription}</p>\n <div>\n {notAvailableButton}\n </div>\n </div>\n </Island>\n );\n","'use client'\nimport React from 'react';\n\nimport { TextInput, type TextInputProps } from '../textInput';\n\nexport const PasswordInput = React.forwardRef<HTMLInputElement, TextInputProps>((props, ref) => (\n <TextInput password={true} enablePasswordManagerAutofill={true} type=\"password\" {...props} ref={ref} />\n));\n\nPasswordInput.displayName = 'PasswordInput';\n","'use client'\n\nimport { useEffect, useState } from 'react';\n\nimport { cn } from '@utils/cn';\n\ninterface ProgressProps {\n value: number;\n maxValue?: number;\n className?: string;\n}\n\nexport const ProgressBar = ({ value, maxValue = 100, className }: ProgressProps) => {\n const [width, setWidth] = useState(0);\n\n useEffect(() => {\n // Handle edge cases: negative values, zero maxValue, value > maxValue\n if (value <= 0)\n setWidth(0);\n else if (maxValue <= 0)\n setWidth(0);\n else if (value >= maxValue)\n setWidth(100);\n else\n setWidth((value / maxValue) * 100);\n }, [value, maxValue]);\n\n return (\n <div className={cn('h-2 rounded-lg bg-gray-100', className)} role=\"progressbar\" aria-valuenow={value} aria-valuemin={0} aria-valuemax={maxValue}>\n <div\n data-testid=\"progress-bar-fill\"\n className=\"h-2 rounded-lg bg-[#27295c] transition-all duration-1000 ease-in-out\"\n style={{ width: `${width}%` }}\n ></div>\n </div>\n );\n};\n","'use client'\nimport React from 'react';\n\nimport clsx from 'clsx';\n\nexport interface IRadioButton extends React.InputHTMLAttributes<HTMLInputElement> {\n id?: string;\n name?: string;\n value: string;\n label: string;\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n checked?: boolean;\n dataTestId?: string;\n containerClassName?: string;\n labelClassName?: string;\n inputClassName?: string;\n}\n\nexport const RadioButton = ({\n id,\n name,\n value,\n label,\n onChange,\n checked,\n dataTestId,\n className,\n containerClassName,\n labelClassName,\n ...props\n}: IRadioButton) => (\n <div data-testid=\"radio-button-container\" className={`${containerClassName || 'radio-button-container'} relative flex items-start`}>\n <div className=\"relative\">\n <input\n type=\"radio\"\n id={id}\n name={name}\n value={value}\n onChange={props.disabled ? undefined : onChange}\n checked={checked}\n data-testid={dataTestId}\n className={`${clsx(\n className,\n 'ease checked:border-navyBlue checked:bg-navy-blue relative m-0 flex size-5 cursor-pointer appearance-none items-center justify-center rounded-full border border-gray-400 bg-white transition-colors duration-100 focus:ring-0 focus:outline-hidden focus-visible:ring-0',\n {\n 'cursor-not-allowed opacity-50': props.disabled,\n },\n )}`}\n {...props}\n />\n {checked && (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 5 5\"\n className=\"absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 scale-100 text-white\"\n aria-hidden=\"true\"\n >\n <path fill=\"currentColor\" d=\"M0 2.5a2.5 2.5 0 115 0 2.5 2.5 0 01-5 0z\"></path>\n </svg>\n )}\n </div>\n <label\n htmlFor={id}\n className={` ${clsx(labelClassName, 'mb-0 cursor-pointer pl-3 text-sm font-normal', {\n 'text-gray-400': props.disabled,\n })}`}\n >\n {label}\n </label>\n </div>\n);\n\nRadioButton.displayName = 'RadioButton';\n","\nimport * as React from 'react';\nimport { type SVGProps } from 'react';\nexport const IconStarEmpty = (props: SVGProps<SVGSVGElement>) => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10.9656 1.4719L13.2213 6.04264C13.3782 6.36054 13.6815 6.58082 14.0324 6.63171L19.0762 7.36472C19.9602 7.49321 20.3127 8.57874 19.6736 9.20161L16.0236 12.7594C15.77 13.0068 15.654 13.3635 15.7141 13.7127L16.5756 18.7365C16.7266 19.6163 15.8029 20.2872 15.0128 19.8721L10.5013 17.5004C10.1875 17.3356 9.81248 17.3356 9.49875 17.5004L4.98726 19.8721C4.1971 20.2876 3.27344 19.6163 3.42447 18.7365L4.28596 13.7127C4.34604 13.3635 4.23006 13.0068 3.97641 12.7594L0.326406 9.20161C-0.31273 8.57832 0.0397965 7.49279 0.923406 7.36472L5.96766 6.63171C6.31851 6.58082 6.62181 6.36054 6.77868 6.04264L9.03442 1.4719C9.42908 0.671313 10.5705 0.671313 10.9656 1.4719Z\"\n fill=\"#E0E0E0\"\n />\n </svg>\n);\n","\nimport * as React from 'react';\nimport { type SVGProps } from 'react';\nexport const IconStarFilled = (props: SVGProps<SVGSVGElement>) => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10.9656 1.4719L13.2213 6.04264C13.3782 6.36054 13.6815 6.58082 14.0324 6.63171L19.0762 7.36472C19.9602 7.49321 20.3127 8.57874 19.6736 9.20161L16.0236 12.7594C15.77 13.0068 15.654 13.3635 15.7141 13.7127L16.5756 18.7365C16.7266 19.6163 15.8029 20.2872 15.0128 19.8721L10.5013 17.5004C10.1875 17.3356 9.81248 17.3356 9.49875 17.5004L4.98726 19.8721C4.1971 20.2876 3.27344 19.6163 3.42447 18.7365L4.28596 13.7127C4.34604 13.3635 4.23006 13.0068 3.97641 12.7594L0.326406 9.20161C-0.31273 8.57832 0.0397965 7.49279 0.923406 7.36472L5.96766 6.63171C6.31851 6.58082 6.62181 6.36054 6.77868 6.04264L9.03442 1.4719C9.42908 0.671313 10.5705 0.671313 10.9656 1.4719Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","\nimport * as React from 'react';\nimport { type SVGProps } from 'react';\nexport const IconStarHalfFilled = (props: SVGProps<SVGSVGElement>) => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M9.03439 0.600543L6.77865 5.17206C6.62178 5.49001 6.31849 5.71032 5.96763 5.76123L0.923798 6.49436C0.0397701 6.62287 -0.312748 7.70859 0.326389 8.33156L3.97638 11.89C4.23003 12.1374 4.34601 12.4942 4.28594 12.8434L3.42444 17.8681C3.27341 18.7481 4.19707 19.419 4.98723 19.0038L9.49872 16.6317C9.65559 16.5493 9.82779 16.5081 9.99999 16.5081C10.1722 16.5081 10.3444 16.5493 10.5012 16.6317L15.0127 19.0038C15.8029 19.4194 16.7266 18.7481 16.5755 17.8681L15.714 12.8434C15.654 12.4942 15.7699 12.1374 16.0236 11.89L19.6736 8.33156C20.3127 7.70817 19.9602 6.62246 19.0766 6.49436L14.0323 5.76123C13.6815 5.71032 13.3782 5.49001 13.2213 5.17206L10.9656 0.600543C10.7682 0.20013 10.3841 -5.14809e-05 9.99999 9.93083e-09C9.61596 5.14875e-05 9.23191 0.200233 9.03439 0.600543Z\"\n fill=\"#E0E0E0\"\n />\n <path\n d=\"M6.77865 5.17206L9.03439 0.600543C9.23191 0.200233 9.61596 5.14875e-05 9.99999 9.93083e-09V16.5081C9.82779 16.5081 9.65559 16.5493 9.49872 16.6317L4.98723 19.0038C4.19707 19.419 3.27341 18.7481 3.42444 17.8681L4.28594 12.8434C4.34601 12.4942 4.23003 12.1374 3.97638 11.89L0.326389 8.33156C-0.312748 7.70859 0.0397701 6.62287 0.923798 6.49436L5.96763 5.76123C6.31849 5.71032 6.62178 5.49001 6.77865 5.17206Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","'use client'\nimport { useState } from 'react';\n\nimport { cn } from '@utils/cn';\n\nimport { IconStarEmpty, IconStarFilled, IconStarHalfFilled } from '../../icons';\n\ninterface IRating {\n rating: number;\n size?: 'small' | 'normal' | 'large';\n className?: string;\n setReview?: (val: number) => void;\n setReviewError?: (val: string) => void;\n error?: string;\n ratings: { value: number; label: string }[];\n}\n\nexport const Rating = ({ rating, ratings, size = 'normal', setReview, className, setReviewError, error }: IRating) => {\n const [hoveredStars, setHoveredStars] = useState<number>(0);\n const [hoveredSmallStars, setHoveredSmallStars] = useState<number>(0);\n const [reviewIsSet, setReviewIsSet] = useState<boolean | number>(false);\n const currentRating = hoveredStars || Math.round(rating * 2) / 2;\n const currentSmallRating = hoveredSmallStars;\n\n const sizeClasses = {\n small: 'h-4 w-4',\n normal: 'h-[22px] w-[22px]',\n large: 'h-[32px] w-[32px]',\n };\n\n const handleStarClick = (value: number) => {\n if (!setReview) return;\n setReviewError?.('');\n setReview(value);\n setReviewIsSet(value);\n };\n\n const handleHover = (value: number) => setReview && setHoveredStars(value);\n\n const StarIcon = ({ index }: { index: number }) => {\n if (!setReview) {\n const roundedRating = Math.round(rating * 2) / 2;\n const hasHalf = roundedRating % 1 === 0.5;\n const effectiveRating = roundedRating;\n const fullStars = Math.floor(effectiveRating);\n if (index <= fullStars) return <IconStarFilled className={`text-yellow ${sizeClasses[size]}`} />;\n if (hasHalf && index === Math.ceil(effectiveRating))\n return <IconStarHalfFilled className={`text-yellow ${sizeClasses[size]}`} />;\n return <IconStarEmpty className={`text-yellow ${sizeClasses[size]}`} />;\n }\n\n const displayRating = reviewIsSet ? Number(reviewIsSet) : currentRating;\n const roundedRating = Math.round(displayRating * 2) / 2;\n const hasHalf = roundedRating % 1 === 0.5;\n const effectiveRating = roundedRating;\n const fullStars = Math.floor(effectiveRating);\n\n if (index <= fullStars) return <IconStarFilled className={`text-yellow ${sizeClasses[size]}`} />;\n if (hasHalf && index === Math.ceil(effectiveRating))\n return <IconStarHalfFilled className={`text-yellow ${sizeClasses[size]}`} />;\n return <IconStarEmpty className={`text-yellow ${sizeClasses[size]} `} />;\n };\n\n const StarSmallIcon = ({ index, className }: { index: number; className?: string }) => {\n const displayRating = currentSmallRating;\n const roundedRating = Math.round(displayRating * 2) / 2;\n\n if (index === roundedRating) return <IconStarFilled className={cn(className, 'text-yellow')} />;\n if (index - roundedRating === 0.5) return <IconStarHalfFilled className={cn(className, 'text-yellow')} />;\n return <IconStarEmpty className={cn(className, 'text-yellow')} />;\n };\n\n\n return (\n <span className={cn('flex flex-col', className)}>\n <div data-testid=\"rating-container\" data-component=\"rating\" className=\"flex flex-row gap-[2px]\">\n {[\n ...ratings\n .map(({ value }) => value)\n .sort((a, b) => a - b),\n ].map((value) => (\n <div\n key={value}\n data-testid={`star-item-${value}`}\n className={cn('relative', setReview && 'cursor-pointer')}\n onClick={() => handleStarClick(value)}\n onMouseEnter={() => handleHover(value)}\n onMouseLeave={() => handleHover(Number(reviewIsSet))}\n >\n <StarIcon index={value} />\n </div>\n ))}\n </div>\n {setReview && (\n <div data-testid=\"small-stars-container\" className=\"mt-4 flex flex-col gap-2\">\n {ratings.map(({ value, label }) => (\n <span\n key={value}\n data-testid={`small-star-item-${value}`}\n className=\"flex w-auto cursor-pointer items-center gap-1\"\n onMouseEnter={() => setHoveredSmallStars(value)}\n onMouseLeave={() => setHoveredSmallStars(0)}\n onClick={() => handleStarClick(value)}\n >\n {Array.from({ length: value }).map((_, i) => (\n <StarSmallIcon key={i} index={value} className=\"text-yellow size-5\" />\n ))}\n <span className=\"mt-[5px] flex items-center pl-2 text-[12px] text-gray-800\">{label}</span>\n </span>\n ))}\n </div>\n )}\n {error && <span className=\"mt-1 w-full text-[10px] font-normal text-red-500\">{error}</span>}\n </span>\n );\n};\n","'use client'\n\n// check old component what to do with the regions (i made this way dumber)\n\ninterface IRegionSelector {\n title: string;\n regions: React.ReactNode[];\n 'data-testid'?: string;\n}\n\nexport const RegionSelector = ({ title, regions, ...props }: IRegionSelector) => {\n if (regions?.length === 0) return null;\n\n return (\n <div\n data-component=\"regionSelector\"\n className=\"flex w-full flex-col items-center justify-center gap-11 break-words lg:gap-14\"\n {...props}\n >\n <h1 className=\"w-full text-2xl leading-10 font-bold md:text-3xl\">{title}</h1>\n <ul\n className=\"mx-auto flex w-full max-w-[415px] list-none flex-col items-start justify-start gap-3.5 pl-0 hover:cursor-pointer\"\n data-testid=\"region-select\"\n >\n {regions}\n </ul>\n </div>\n );\n};\n\nRegionSelector.displayName = 'RegionSelector';\n","'use client'\nimport { ProgressBar } from '../progressBar';\nimport { Rating } from '../rating';\n\nconst ReviewsLine = ({ maxValue, amount, countStarsText }: { maxValue: number; amount: number; countStarsText: string }) => (\n <div className=\"flex w-full flex-row place-content-center gap-5 align-middle\">\n <span className=\"min-w-20 tabular-nums\">{countStarsText}</span>\n <span className=\"flex w-full flex-1 items-center\">\n <ProgressBar value={amount} maxValue={maxValue} className=\"w-full\" />\n </span>\n <span className=\"w-10 text-right text-gray-800 tabular-nums\">{amount}</span>\n </div>\n );\n\ninterface AggregatedRating {\n score: number;\n amount: number;\n}\n\ninterface IReviewsProps {\n totalRatings: number;\n averageRating: number;\n ratings: { value: number; label: string }[];\n aggregatedRating: AggregatedRating[];\n countStarsText: string[];\n numberOfReviewsText: string;\n}\n\nfunction formatRating(rating: number): string | number {\n return rating === 0 ? 0 : rating.toFixed(1);\n}\n\nexport const Reviews = ({ totalRatings, ratings, averageRating, aggregatedRating, countStarsText, numberOfReviewsText }: IReviewsProps) => (\n <div className=\"bg-ultra-light-gray flex w-full flex-col p-6 md:flex-row\">\n <div className=\"mb-5 flex flex-1 flex-row items-start justify-start gap-5 md:mb-0 md:flex-col md:justify-center md:gap-0\">\n <div className=\"mb-4 text-[50px] leading-[50px] font-bold\">{formatRating(averageRating ?? 0)}</div>\n <div className=\"flex flex-col\">\n <Rating ratings={ratings} rating={averageRating} size=\"normal\" className=\"mb-4\" />\n <div className=\"text-gray-800\">\n ({numberOfReviewsText})\n </div>\n </div>\n </div>\n <div className=\"flex flex-1 flex-col items-center gap-2\">\n {aggregatedRating.map((rating, i) => {\n const arrayIndex = aggregatedRating.length - i;\n return <ReviewsLine amount={rating.amount} maxValue={totalRatings} key={i} countStarsText={countStarsText[arrayIndex - 1]} />;\n })}\n </div>\n </div>\n );\n","'use client'\nimport { useEffect, useState } from 'react';\nimport { Tooltip } from 'react-tooltip';\n\nimport { IconChevronUp } from '@tabler/icons-react';\n\n\nexport const ScrollToTop = ({scrollToTopTitle}: {scrollToTopTitle: string}) => {\n const [isVisible, setIsVisible] = useState(false);\n const showScrollToTopButtonPosition = 20;\n const scrollDuration = 250;\n\n useEffect(() => {\n const handleScroll = () => {\n if (window.scrollY > showScrollToTopButtonPosition) setIsVisible(true);\n else setIsVisible(false);\n };\n window.addEventListener('scroll', handleScroll);\n return () => {\n window.removeEventListener('scroll', handleScroll);\n };\n }, []);\n\n const scrollToTop = () => {\n const scrollStep = -window.scrollY / (scrollDuration / 15);\n const scrollInterval = setInterval(() => {\n if (window.scrollY !== 0) window.scrollBy(0, scrollStep);\n else clearInterval(scrollInterval);\n }, 15);\n };\n\n return (\n <>\n <button\n title={scrollToTopTitle}\n type=\"button\"\n disabled={false}\n data-testid=\"scrollToTop\"\n data-component=\"ActionIcon\"\n className={`active:translate-y-[1px] content-center rounded-[4px] border-gray-200 hover:border-black child:p-10 disabled:text-gray-500 bg-turquoise-700 hover:bg-turquoise-600 fixed -right-[10px] bottom-[105px] z-40 flex h-[43px] w-[62px] cursor-pointer items-center justify-center rounded-l-3xl border-0 px-2 text-black duration-500 ${\n isVisible ? 'translate-x-0' : 'translate-x-[60px]'\n }`}\n onClick={scrollToTop}\n data-tooltip-id={scrollToTopTitle}\n data-tooltip-content={scrollToTopTitle}\n >\n <IconChevronUp />\n </button>\n <Tooltip id={scrollToTopTitle} className=\"z-[99]\" />\n \n </>\n );\n};\n","'use client';\n\nimport { type ChangeEvent } from 'react';\n\nimport { TextInput, type TextInputProps } from '../textInput';\n\nexport interface SearchInputProps extends TextInputProps {\n placeholder: string;\n value?: string;\n onChange?: (e: ChangeEvent<HTMLInputElement>) => void;\n}\n\nexport const SearchInput = ({ placeholder, value, onChange, className, rightSection, ...props }: SearchInputProps) => (\n <TextInput\n placeholder={placeholder}\n className={className || 'w-full lg:w-auto lg:min-w-[23.75rem]'}\n rightSection={rightSection || <></>}\n value={value}\n onChange={onChange}\n {...props}\n />\n);\n","import { useState, useEffect } from 'react';\n\nexport function useDebouncedValue<T>(value: T, delay = 200): T {\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n useEffect(() => {\n const handler = setTimeout(() => setDebouncedValue(value), delay);\n return () => clearTimeout(handler);\n }, [value, delay]);\n\n return debouncedValue;\n}\n","'use client';\n\nimport * as React from 'react';\nimport {\n type ComponentPropsWithoutRef,\n type PointerEvent,\n type Ref,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingPortal,\n offset,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n} from '@floating-ui/react';\nimport { IconCheck, IconSearch, IconSelector, IconX } from '@tabler/icons-react';\nimport { cn } from '@utils/cn';\n\nimport { useDebouncedValue } from '../../hooks/useDebouncedValue';\nimport { useMergeRefs } from '../../hooks/useMergeRefs';\nimport { Label } from '../label';\n\ninterface Option {\n value: string;\n label: string;\n}\n\ninterface SelectProps extends ComponentPropsWithoutRef<'div'> {\n ref?: Ref<HTMLDivElement>;\n id: string;\n options: Option[];\n placeholder: string;\n label?: string;\n errorText?: string;\n hideError?: boolean;\n isClearable?: boolean;\n disabled?: boolean;\n multiSelect?: boolean;\n searchable?: boolean;\n value?: string | string[];\n defaultValue?: string | string[];\n onValueChange?: (value: string | string[] | undefined) => void;\n searchPlaceholder?: string;\n noResultsText: string;\n}\n\nexport function Select({\n id,\n options,\n placeholder,\n label,\n errorText,\n hideError = false,\n isClearable = false,\n disabled = false,\n multiSelect = false,\n searchable = false,\n value,\n defaultValue,\n onValueChange,\n className,\n searchPlaceholder,\n noResultsText,\n ...props\n}: SelectProps) {\n const innerRef = useRef<HTMLDivElement>(null);\n const buttonRef = useRef<HTMLButtonElement | null>(null);\n const optionRefs = useRef<(HTMLButtonElement | null)[]>([]);\n\n const mergedRef = useMergeRefs(innerRef, props.ref);\n\n const [internalValue, setInternalValue] = useState<string | string[] | undefined>(defaultValue);\n const [open, setOpen] = useState(false);\n const [searchTerm, setSearchTerm] = useState('');\n const [focusedIndex, setFocusedIndex] = useState(-1);\n\n const debouncedSearch = useDebouncedValue(searchTerm);\n\n const isControlled = value !== undefined;\n const currentValue = isControlled ? value : internalValue;\n\n const selectedLabels = useMemo(() => {\n if (Array.isArray(currentValue)) {\n return options\n .filter((o) => currentValue.includes(o.value))\n .map((o) => o.label)\n .join(', ');\n }\n return options.find((o) => o.value === currentValue)?.label;\n }, [currentValue, options]);\n\n const { refs, floatingStyles, context } = useFloating({\n open,\n onOpenChange: setOpen,\n middleware: [offset(4), flip(), shift()],\n whileElementsMounted: autoUpdate,\n placement: 'bottom-start',\n });\n\n const click = useClick(context);\n const dismiss = useDismiss(context);\n const role = useRole(context, { role: 'combobox' });\n const { getReferenceProps, getFloatingProps } = useInteractions([click, dismiss, role]);\n\n const handleSelect = useCallback(\n (val: string) => {\n if (multiSelect) {\n const current = Array.isArray(currentValue) ? currentValue : [];\n const newValues = current.includes(val) ? current.filter((v) => v !== val) : [...current, val];\n\n if (!isControlled) setInternalValue(newValues);\n onValueChange?.(newValues);\n } else {\n if (!isControlled) setInternalValue(val);\n onValueChange?.(val);\n setOpen(false);\n buttonRef.current?.focus();\n }\n },\n [multiSelect, currentValue, isControlled, onValueChange],\n );\n\n const handleClear = useCallback(\n (e: PointerEvent) => {\n e.preventDefault();\n e.stopPropagation();\n if (!isControlled) setInternalValue(undefined);\n onValueChange?.(undefined);\n setSearchTerm('');\n },\n [isControlled, onValueChange],\n );\n\n const showPlaceholder = !currentValue || (Array.isArray(currentValue) && currentValue.length === 0);\n\n const filteredOptions = useMemo(() => {\n if (!debouncedSearch.trim()) return options;\n return options.filter((opt) => opt.label.toLowerCase().includes(debouncedSearch.toLowerCase()));\n }, [options, debouncedSearch]);\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (disabled) return;\n\n if (!open) {\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n setOpen(true);\n setTimeout(() => {\n setFocusedIndex(0);\n optionRefs.current[0]?.focus();\n }, 0);\n }\n return;\n }\n\n switch (event.key) {\n case 'Escape':\n event.preventDefault();\n setOpen(false);\n setFocusedIndex(-1);\n buttonRef.current?.focus();\n break;\n case 'ArrowDown':\n event.preventDefault();\n setFocusedIndex((prev) => {\n const next = prev < filteredOptions.length - 1 ? prev + 1 : 0;\n optionRefs.current[next]?.focus();\n return next;\n });\n break;\n case 'ArrowUp':\n event.preventDefault();\n setFocusedIndex((prev) => {\n const next = prev > 0 ? prev - 1 : filteredOptions.length - 1;\n optionRefs.current[next]?.focus();\n return next;\n });\n break;\n case 'Home':\n event.preventDefault();\n setFocusedIndex(0);\n optionRefs.current[0]?.focus();\n break;\n case 'End':\n event.preventDefault();\n setFocusedIndex(filteredOptions.length - 1);\n optionRefs.current[filteredOptions.length - 1]?.focus();\n break;\n case 'Enter':\n case ' ':\n event.preventDefault();\n if (focusedIndex >= 0 && filteredOptions[focusedIndex]) handleSelect(filteredOptions[focusedIndex].value);\n\n break;\n }\n },\n [open, filteredOptions, focusedIndex, handleSelect, disabled],\n );\n\n useEffect(() => {\n if (!open) return;\n const listener = (e: KeyboardEvent) => handleKeyDown(e);\n document.addEventListener('keydown', listener);\n return () => document.removeEventListener('keydown', listener);\n }, [open, handleKeyDown]);\n\n useEffect(() => {\n if (!open) setSearchTerm('');\n }, [open]);\n\n return (\n <div\n ref={mergedRef}\n {...props}\n data-component=\"Select\"\n className={cn('grid gap-2 w-full', className)}\n role=\"group\"\n aria-labelledby={`${id}-label`}\n >\n {label && (\n <div className=\"leading-4\">\n <Label htmlFor={id}>{label}</Label>\n <span id={`${id}-label`} className=\"sr-only\">\n {label}\n </span>\n </div>\n )}\n\n <button\n id={id}\n type=\"button\"\n ref={(node) => {\n refs.setReference(node);\n buttonRef.current = node!;\n }}\n {...getReferenceProps()}\n disabled={disabled}\n className={cn(\n 'flex h-10 w-full items-center justify-between rounded-md border px-3 text-sm transition-colors bg-gray-20',\n 'border-gray-200 hover:border-gray-300 focus:border-gray-300 outline-none',\n !hideError && errorText && 'border-red-500 hover:border-red-500 focus:border-red-500',\n disabled && 'opacity-50 cursor-not-allowed',\n )}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n aria-disabled={disabled}\n aria-labelledby={`${id}-label`}\n aria-controls={`${id}-listbox`}\n >\n <div className=\"flex items-center gap-2 truncate text-black\">\n {showPlaceholder ? (\n <span className=\"text-gray-200\" aria-hidden=\"true\">\n {placeholder}\n </span>\n ) : (\n <span className=\"truncate\">{selectedLabels}</span>\n )}\n </div>\n\n {isClearable && !showPlaceholder ? (\n <IconX\n size={16}\n color=\"black\"\n className=\"cursor-pointer\"\n data-testid=\"clear-button\"\n onPointerDown={handleClear}\n role=\"button\"\n aria-label=\"Clear selection\"\n />\n ) : (\n <IconSelector size={16} color=\"black\" aria-hidden=\"true\" />\n )}\n </button>\n\n {open && (\n <FloatingPortal>\n <FloatingFocusManager context={context} modal={false}>\n <div\n ref={refs.setFloating}\n style={{\n ...floatingStyles,\n width: (refs.reference.current as HTMLElement | null)?.offsetWidth ?? 'auto',\n }}\n {...getFloatingProps()}\n id={`${id}-listbox`}\n role=\"listbox\"\n aria-labelledby={`${id}-label`}\n className={cn(\n 'z-[99999] mt-2 rounded-md border border-gray-200 bg-white shadow-md',\n 'overflow-hidden animate-in fade-in',\n )}\n >\n <div className=\"p-1 text-sm max-h-[250px] overflow-auto\">\n {searchable && (\n <div\n className=\"flex items-center gap-2 px-2 py-1 border-b border-gray-100 sticky top-0 bg-white\"\n role=\"search\"\n >\n <IconSearch size={14} className=\"text-gray-400\" aria-hidden=\"true\" />\n <input\n type=\"text\"\n autoFocus\n value={searchTerm}\n onChange={(e) => setSearchTerm(e.target.value)}\n placeholder={searchPlaceholder}\n className=\"w-full text-sm outline-none bg-transparent placeholder-gray-300\"\n aria-label=\"Search options\"\n />\n </div>\n )}\n\n <div className=\"mt-1 pr-2\">\n {filteredOptions.length ? (\n filteredOptions.map((opt, index) => {\n const isSelected = Array.isArray(currentValue)\n ? currentValue.includes(opt.value)\n : currentValue === opt.value;\n\n return (\n <button\n key={opt.value}\n ref={(el) => (optionRefs.current[index] = el)}\n type=\"button\"\n onClick={() => handleSelect(opt.value)}\n role=\"option\"\n aria-selected={isSelected}\n tabIndex={-1}\n className={cn(\n 'relative flex w-full items-center gap-2 rounded px-3 py-2 text-sm text-black select-none',\n 'hover:bg-gray-50 mx-1 my-[2px]',\n isSelected && 'bg-gray-50',\n focusedIndex === index && 'bg-gray-50 ring-1 ring-primary',\n )}\n >\n {multiSelect && (\n <span\n className={cn(\n 'flex h-4 w-4 items-center justify-center rounded-sm border',\n isSelected ? 'border-light-blue bg-light-blue' : 'border-gray-400 bg-white',\n )}\n aria-hidden=\"true\"\n >\n {isSelected && (\n <IconCheck size={12} color=\"white\" stroke={2} className=\"pointer-events-none\" />\n )}\n </span>\n )}\n <span className=\"flex-1 text-left\">{opt.label}</span>\n </button>\n );\n })\n ) : (\n <div className=\"px-3 py-2 text-gray-400\" role=\"status\">\n {noResultsText}\n </div>\n )}\n </div>\n </div>\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n\n {!hideError && errorText && (\n <span className=\"text-xs text-red-500\" role=\"alert\">\n {errorText}\n </span>\n )}\n </div>\n );\n}\n\nSelect.displayName = 'Select';\n","'use client'\ninterface ISettingsCardProps {\n icon: React.ReactNode;\n title: string;\n link: string;\n ManageText: string;\n LinkComponent: React.FC<{ className: string; href: string; children: React.ReactNode }>;\n}\n\nexport const SettingsCard = ({ icon, title, link, ManageText, LinkComponent }: ISettingsCardProps) => (\n <div\n data-component=\"SettingsCard\"\n data-testid=\"settings-card\"\n className=\"flex items-center justify-between gap-2 bg-white px-8 py-4 shadow-[0_-0.5rem_2rem_rgba(38,41,92,0.04)] md:px-4 lg:px-8\"\n >\n <div className=\"flex items-center gap-4\">\n <div>{icon}</div>\n <div className=\"text-base font-normal\">{title}</div>\n </div>\n <LinkComponent className=\"text-xs font-medium text-sky-600 no-underline hover:underline\" href={link}>\n {ManageText}\n </LinkComponent>\n </div>\n );\n","'use client'\nimport { cn } from '@utils/cn';\n\ninterface ISkeleton {\n className: string;\n 'data-testid'?: string;\n}\n\nexport const Skeleton = ({ className, 'data-testid': dataTestId }: ISkeleton) => (\n <span\n data-component=\"genericSkeleton\"\n data-testid={dataTestId || 'skeleton'}\n className={cn('inline-block rounded-md', 'animate-pulse bg-gray-100/50', className)}\n />\n);\n","'use client'\ninterface ISkillPillProps {\n name: string;\n number: number;\n}\n\nexport const SkillPill = ({ name, number }: ISkillPillProps) => (\n <div data-testid=\"skill-pill-container\" className=\"flex items-center rounded-full border border-gray-200 p-[3px]\">\n <span className=\"pr-4 pl-3\">{name}</span>\n <span data-testid=\"skill-pill-number\" className=\"bg-turquoise-200 grid h-[30px] min-w-[30px] place-content-center rounded-full px-2.5\">\n {number}\n </span>\n </div>\n);\n","'use client';\nimport { Fragment } from 'react';\n\nimport { IconCheck } from '@tabler/icons-react';\nimport clsx from 'clsx';\n\ninterface Step {\n label: string;\n}\n\ninterface NumberedStepperProps {\n steps: Step[];\n active: number;\n stepsCompleted: number[];\n completedLabel: string;\n className?: string;\n onStepClick: (index: number) => void;\n}\n\nexport const NumberedStepper = ({\n steps,\n active,\n className,\n stepsCompleted,\n completedLabel,\n onStepClick,\n}: NumberedStepperProps) => (\n <div\n data-testid=\"numbered-stepper-container\"\n className={clsx('flex w-full flex-col items-start gap-2 md:flex-row md:items-center md:gap-7', className)}\n >\n {steps.map((step, index) => (\n <Fragment key={index}>\n <div\n data-testid={`stepper-step-${index}`}\n onClick={() => (index < active ? onStepClick(index) : null)}\n className={`${index < active && 'cursor-pointer'} flex w-auto`}\n >\n <div className={'flex flex-auto flex-row gap-3'}>\n <div className={'flex size-12 flex-auto items-center justify-center whitespace-nowrap'}>\n <div\n data-testid={`stepper-number-${index}`}\n className={`grid size-12 place-content-center rounded-full leading-[36px]! md:leading-[40px]! ${\n index === 0 && active === 1 ? 'bg-light-blue text-white' : 'bg-transparent!'\n } ${\n index <= active ? 'border-light-blue text-light-blue border' : 'border border-gray-500 text-gray-500'\n } align-middle font-sans font-bold md:text-2xl`}\n >\n {index + 1}\n </div>\n </div>\n <div className=\"flex flex-auto flex-col justify-center\">\n <span\n data-testid={`stepper-label-${index}`}\n className={`content-center text-sm font-medium! whitespace-nowrap md:text-lg md:font-bold ${\n index <= active ? 'text-gray-900' : 'text-gray-500'\n }`}\n >\n {step.label}\n </span>\n <span>\n {completedLabel && active === 1 && index === 0 && stepsCompleted.length > 0 ? (\n <span className=\"text-green flex items-center text-xs font-medium\">\n {completedLabel} <IconCheck className=\"align-middle\" size={12} />\n </span>\n ) : (\n <></>\n )}{' '}\n </span>\n </div>\n </div>\n </div>\n {index < steps.length - 1 && (\n <div\n className={`my-2 ml-6 flex h-[24px] w-px align-middle md:ml-0 md:h-px md:w-auto md:flex-1 ${\n active === 1 ? 'bg-light-blue' : 'bg-[#CCCCCC]'\n }`}\n ></div>\n )}\n </Fragment>\n ))}\n </div>\n);\n","'use client'\nimport { IconCheck } from '@tabler/icons-react';\nimport { cn } from '@utils/cn';\nimport clsx from 'clsx';\n\nexport interface Step {\n label: string;\n value: string;\n}\n\ninterface StepperProps {\n steps: Step[];\n clickableSteps?: number[];\n completedSteps?: number[];\n setStep?: (step: number) => void;\n variant?: 'small' | 'default';\n activeStep: number;\n isMobile: boolean;\n className?: string;\n}\n\nexport const Stepper = ({\n steps,\n setStep = () => {},\n variant = 'default',\n clickableSteps,\n completedSteps,\n activeStep,\n isMobile,\n className,\n}: StepperProps) => (\n <div data-testid=\"stepper-container\" className={clsx('flex w-full justify-start', className)}>\n {steps?.map((step, index) => {\n const isClickable = index <= activeStep && clickableSteps?.includes(index);\n const isCompleted = completedSteps?.includes(index);\n\n return (\n <div key={index} data-testid={`stepper-step-${index}`} className={'flex w-full'}>\n <div className={'relative flex w-full justify-center'}>\n <div\n data-testid={`stepper-step-container-${index}`}\n className={`mr-2 flex w-36 flex-col items-center ${variant === 'small' || isMobile ? 'gap-0.5' : 'gap-3'}`}\n >\n {/* Step circle */}\n <div\n data-testid={`stepper-step-circle-${index}`}\n onClick={() => isClickable && setStep(index)}\n className={cn(\n 'relative z-10 flex size-8 items-center justify-center rounded-full border border-gray-500 bg-white text-gray-500',\n {\n 'size-5': variant === 'small' || isMobile,\n 'cursor-pointer': isClickable,\n 'cursor-not-allowed': clickableSteps && !clickableSteps.includes(index),\n 'border-light-blue text-light-blue': index === activeStep,\n 'border-light-blueDisabled bg-light-blueDisabled border text-white': isCompleted,\n 'border-light-blue bg-light-blue': index < activeStep,\n },\n )}\n >\n {(index < activeStep || isCompleted) && (\n <div className=\"flex items-center justify-center text-white\">\n <IconCheck size={variant === 'small' || isMobile ? 7 : 12} />\n </div>\n )}\n {index === activeStep && (\n <div\n data-testid=\"active-step-indicator\"\n className={`${variant === 'small' || isMobile ? 'size-1' : 'size-2'} bg-light-blue rounded-full`}\n ></div>\n )}\n </div>\n\n {/* Label of step */}\n <div className=\"flex flex-wrap items-center justify-center\">\n <span\n className={`text-center ${variant === 'small' || isMobile ? 'text-xs-fields' : 'text-sm font-normal'} ${\n index <= activeStep ? 'text-gray-900' : 'text-gray-500'\n }`}\n >\n {step.label}\n </span>\n </div>\n\n {/* Line that connects the steps */}\n {index < steps.length && index !== 0 && (\n <div\n className={`${variant === 'small' || isMobile ? 'top-2.5' : 'top-4'} absolute z-0 h-px w-full -translate-x-1/2 ${index < activeStep + 1 ? 'bg-light-blue' : 'bg-gray-200'}`}\n />\n )}\n </div>\n </div>\n </div>\n );\n })}\n </div>\n );\n","'use client'\n\ninterface IStickyMobileButton {\n children: React.ReactNode;\n}\n\nexport const StickyMobileButtonWrapper = ({ children }: IStickyMobileButton) => (\n <div data-testid=\"sticky-mobile-button-wrapper\" className=\"fixed inset-x-0 bottom-0 z-40 w-full bg-white p-8 md:hidden\">\n <div data-testid=\"sticky-mobile-button-grid\" className=\"grid place-content-center\">{children}</div>\n </div>\n);\n","'use client'\nimport { type HTMLAttributes } from 'react';\n\nimport { cn } from '@utils/cn';\n\ninterface ITable extends HTMLAttributes<HTMLDivElement> {\n children?: React.ReactNode;\n}\n\nexport const Table = ({ children, className, ...props }: ITable) => (\n <div \n data-testid=\"table\" \n data-component=\"table\" \n className={cn('table w-full table-fixed border-collapse overflow-auto', className)}\n {...props}\n >\n {children}\n </div>\n);\n","'use client'\nimport { type HTMLAttributes } from 'react';\n\nimport { cn } from '@utils/cn';\n\ninterface ITableCell extends HTMLAttributes<HTMLDivElement> {\n children?: React.ReactNode;\n smallPadding?: boolean;\n}\n\nexport const TableCell = ({ children, smallPadding, className }: ITableCell) => (\n <div\n data-testid=\"tableCell\"\n data-component=\"tableCell\"\n className={`${cn(\n 'table-cell py-2 align-middle text-sm font-normal first:pl-2 last:pr-2 md:py-0 md:xl:first:pl-10 md:xl:last:pr-10',\n {\n 'md:xl:first:pl-5 md:xl:last:pr-5': smallPadding,\n },\n className,\n )}`}\n >\n {children}\n </div>\n);\n","'use client'\n\ninterface ITableHeader {\n children: React.ReactNode;\n}\n\nexport const TableHeader = ({ children }: ITableHeader) => (\n <div data-component=\"tableHeader\" data-testid=\"tableHeader\" className=\"table-header-group border-b border-gray-200\">\n {children}\n </div>\n);\n","'use client'\nimport { type HTMLAttributes } from 'react';\n\nimport { cn } from '@utils/cn';\n\ninterface ITableHeaderItem extends HTMLAttributes<HTMLDivElement> {\n children?: React.ReactNode;\n smallPadding?: boolean;\n}\n\nexport const TableHeaderItem = ({ children, smallPadding, className, ...props }: ITableHeaderItem) => (\n <div\n data-testid=\"tableHeaderItem\"\n data-component=\"tableHeaderItem\"\n className={cn(\n 'hidden h-10 align-middle text-xs font-medium first:pl-10 last:pr-10 xl:table-cell',\n {\n 'xl:first:pl-5 xl:last:pr-5': smallPadding,\n },\n className,\n )}\n {...props}\n >\n {children}\n </div>\n);\n","'use client';\nimport { type HTMLAttributes } from 'react';\n\ninterface ITableRow extends HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n}\n\nexport const TableHeaderRow = ({ children, ...props }: ITableRow) => (\n <div\n data-testid=\"tableHeaderRow\"\n data-component=\"tableHeaderRow\"\n className=\"table-row xl:border-0 xl:border-b xl:border-solid xl:border-gray-200\"\n {...props}\n >\n {children}\n </div>\n);\n","import { type HTMLAttributes } from 'react';\n\nimport { cn } from '@utils/cn';\n\ninterface ITableRow extends Omit<HTMLAttributes<HTMLDivElement>, 'className'> {\n children: React.ReactNode;\n className?: string;\n header?: boolean;\n}\n\nexport function TableRow({ children, className, header, ...props }: ITableRow) {\n return (\n <div\n data-testid=\"tableRow\"\n data-component=\"tableRow\"\n className={`${cn(\n 'table-row border-x-0 border-y-0 border-t border-solid border-gray-200 xl:border-t xl:border-solid xl:border-gray-200',\n 'hover:bg-ultra-light-blue',\n header && 'font-medium',\n className\n )}`}\n {...props}\n >\n {children}\n </div>\n );\n}\n","'use client';\nimport React, { forwardRef, type RefObject } from 'react';\n\nexport interface TabProps {\n setActiveTab: (tab: string) => void;\n tabId: string;\n ref: RefObject<HTMLButtonElement | null>;\n activeTab: boolean;\n tabContent: React.ReactNode | React.ReactNode[] | string;\n rightSection?: React.ReactNode | undefined;\n clickFnc: (tabId: string) => void;\n}\n\nexport const Tab = forwardRef<HTMLButtonElement, TabProps>(\n ({ tabId, activeTab, tabContent, clickFnc, rightSection }, ref) => (\n <button\n ref={ref}\n data-testid={`tab-${tabId}`}\n className={`${\n activeTab && 'text-light-blue bg-[#F0F0F6]'\n } bg-ultra-light-blue px-5 py-[10px] text-xs font-normal whitespace-nowrap text-black transition-colors duration-100 hover:border-black hover:bg-[#F0F0F6] data-active:border-black data-active:bg-[#F0F0F6] data-active:font-medium data-active:text-black`}\n onClick={() => clickFnc(tabId)}\n >\n {tabContent}\n {rightSection && <span className=\"ml-2 inline-flex\">{rightSection}</span>}\n </button>\n ),\n);\n","'use client';\n\nimport clsx from 'clsx';\n\nexport interface TabsBadgeProps {\n children: React.ReactNode;\n}\n\nexport const TabsBadge = ({ children }: TabsBadgeProps) => {\n const isCircular =\n (typeof children === 'number' && children <= 9) || (typeof children === 'string' && children.length === 1) || false;\n\n return (\n <div\n data-testid=\"tabs-badge\"\n className={clsx('bg-secondary h-5 rounded-full text-xs leading-5 font-medium text-white', {\n 'w-5 text-center': isCircular,\n 'px-2': !isCircular,\n })}\n >\n {children}\n </div>\n );\n};\n\nTabsBadge.displayName = 'TabsBadge';\n","'use client';\nimport { createRef, forwardRef, type ReactElement, type RefObject, useEffect, useMemo, useState } from 'react';\n\nimport { Tab } from './Tab';\n\ninterface ITab {\n name: string;\n value: string;\n rightSection?: ReactElement | undefined;\n clickFnc?: (val: string) => void;\n requiredPermissions?: string[];\n}\n\ninterface TabsWrapperProps {\n children?: React.ReactNode | React.ReactNode[];\n defaultActive?: string;\n setActiveTab: (value: string) => void;\n activeTab?: string;\n tabs: ITab[];\n}\n\nexport const TabsWrapper = ({ setActiveTab, activeTab, tabs }: TabsWrapperProps) => {\n const tabRefs = useMemo(() => {\n const refs: { [key: string]: RefObject<HTMLButtonElement> } = {};\n tabs?.forEach((tab) => {\n refs[tab.value] = createRef<HTMLButtonElement>();\n });\n return refs;\n }, [tabs]);\n\n const [underlineStyle, setUnderlineStyle] = useState({ width: 0, left: 0 });\n\n useEffect(() => {\n if (activeTab && tabRefs[activeTab]?.current) {\n const activeTabElement = tabRefs[activeTab].current;\n setUnderlineStyle({\n width: activeTabElement?.offsetWidth || 0,\n left: activeTabElement?.offsetLeft || 0,\n });\n }\n }, [activeTab, tabRefs]);\n\n return (\n <div className=\"w-full\">\n <div className=\"relative inline-block w-auto border-b-[3px] border-gray-200\">\n <div className=\"flex\">\n {tabs &&\n tabs?.map((tab) =>\n tab.requiredPermissions ? (\n // <Authorize key={tab.value} requiredPermissions={tab.requiredPermissions}>\n <TabContent\n key={tab.value}\n tab={tab}\n ref={tabRefs[tab.value]}\n setActiveTab={setActiveTab}\n activeTab={activeTab}\n />\n ) : (\n // </Authorize>\n <TabContent\n key={tab.value}\n tab={tab}\n ref={tabRefs[tab.value]}\n setActiveTab={setActiveTab}\n activeTab={activeTab}\n />\n ),\n )}\n </div>\n <div\n className=\"absolute h-[3px] bg-gray-900 transition-all duration-300\"\n style={{\n width: underlineStyle.width,\n left: underlineStyle.left,\n bottom: '-3px',\n }}\n />\n </div>\n </div>\n );\n};\n\nconst TabContent = forwardRef<\n HTMLButtonElement,\n { tab: ITab; setActiveTab: (val: string) => void; activeTab?: string }\n>(({ tab, setActiveTab, activeTab }, ref) => (\n <Tab\n ref={ref}\n tabId={tab.value}\n setActiveTab={setActiveTab}\n activeTab={activeTab === tab.value}\n tabContent={tab.name}\n rightSection={tab?.rightSection || undefined}\n clickFnc={() => {\n tab.clickFnc && tab.clickFnc(tab.value);\n setActiveTab(tab.value);\n }}\n />\n));\n\nTabContent.displayName = 'TabContent';\n","'use client'\n\nimport { forwardRef, type TextareaHTMLAttributes } from 'react';\n\nimport { cn } from '@utils/cn';\n\nexport interface ITextarea extends Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'className' | 'rows'> {\n label?: React.ReactNode;\n error?: string;\n className?: string;\n rows?: number;\n}\n\nexport const Textarea = forwardRef<HTMLTextAreaElement, ITextarea>(\n ({ className, label, error, rows = 8, ...props }, ref) => (\n <div className=\"relative grid gap-2\">\n {label && <label className=\"flex items-center gap-1 text-xs font-medium text-black\">{label}</label>}\n <textarea\n data-component=\"TextArea\"\n rows={rows}\n ref={ref}\n className={cn(\n 'disabled:bg-grey-100 bg-ultra-light-gray w-full rounded border border-gray-200 p-3 text-sm font-normal text-black placeholder:text-gray-800 focus:ring-0 focus:outline-hidden disabled:cursor-not-allowed disabled:border-gray-300',\n {\n 'border-red-500 text-red-500 selection:bg-red-200 focus:border-red-500 focus:ring-red-500 focus:placeholder:text-red-500 active:border-red-500 active:ring-red-500':\n !!error,\n },\n className,\n )}\n {...props}\n />\n {error && <small className=\"text-xs font-normal text-red-500\">{error}</small>}\n </div>\n ),\n);\n","'use client';\n\nimport { type HTMLAttributes } from 'react';\nimport { Tooltip } from 'react-tooltip';\n\nimport { cn } from '@utils/cn';\nimport { COLOR, THEME_ICON_STYLE_VARIANT } from '@utils/enums';\nimport formatIcon from '@utils/formatIcon';\n\nexport interface IThemeIcon extends Omit<HTMLAttributes<HTMLDivElement>, 'className'> {\n styleVariant?:\n | 'black'\n | 'gray'\n | 'secondary'\n | 'secondary-with-background'\n | 'turquoise'\n | 'accent-blue'\n | 'check'\n | 'warning'\n | 'error';\n icon: React.ReactNode;\n className?: string;\n adjustedSize?: string | number;\n title: string;\n}\n\nexport function ThemeIcon({ styleVariant = 'black', className, icon, adjustedSize, title, ...props }: IThemeIcon) {\n const classNames = cn(\n 'bg-transparent h-9 w-9 rounded-[5px] grid place-content-center',\n {\n 'text-black': styleVariant === COLOR.BLACK,\n 'text-gray-500': styleVariant === COLOR.GRAY,\n 'text-secondary': styleVariant === COLOR.SECONDARY,\n 'bg-gray-50 text-secondary': styleVariant === THEME_ICON_STYLE_VARIANT.SECONDARY_WITH_BACKGROUND,\n 'text-primary': styleVariant === COLOR.TURQUOISE,\n 'text-accent-blue': styleVariant === COLOR.ACCENT_BLUE,\n 'text-check': styleVariant === COLOR.CHECK,\n 'text-warning': styleVariant === COLOR.WARNING,\n 'text-red-500': styleVariant === COLOR.ERROR,\n },\n className,\n );\n\n return (\n <>\n <div\n data-testid=\"theme-icon\"\n data-tooltip-id={title}\n data-tooltip-content={title}\n data-component=\"ThemeIcon\"\n className={classNames}\n {...props}\n >\n {formatIcon(icon, {\n strokeWidth: '1',\n size: adjustedSize ? adjustedSize : 20,\n })}\n </div>\n <Tooltip id={title} />\n </>\n );\n}\n","'use client';\nimport React, { type ChangeEvent, forwardRef } from 'react';\n\nexport interface ITimeInput extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'> {\n 'data-testid'?: string;\n label?: string;\n error?: string;\n withSeconds?: boolean;\n}\n\nexport const TimeInput = forwardRef<HTMLInputElement, ITimeInput>(\n ({ label, error, withSeconds, className = '', ...props }, ref) => {\n const handleTimeChange = (e: ChangeEvent<HTMLInputElement>) => {\n if (props.onChange) props.onChange(e);\n };\n\n return (\n <div className=\"leading-none\" data-component=\"timeInput\">\n {label && (\n <label className=\"mb-2 block text-xs font-medium\" htmlFor={props.id}>\n {label}\n </label>\n )}\n <input\n {...props}\n ref={ref}\n type=\"time\"\n step={withSeconds ? '1' : '60'}\n onChange={handleTimeChange}\n className={`bg-ultra-light-gray focus:border-primary flex h-10 min-h-[36px] w-full items-center rounded-[5px] border border-solid border-gray-200 px-3 text-sm font-normal focus:outline-hidden ${error ? 'border-red-500' : ''} ${className}`}\n />\n {error && <p className=\"pt-2 text-xs font-normal text-red-500\">{error}</p>}\n </div>\n );\n },\n);","'use client'\ninterface ToggleProps {\n onClick: () => void;\n value: boolean;\n disabled?: boolean;\n}\n\nexport const Toggle = ({ onClick, value, disabled = false }: ToggleProps) => {\n const handleToggle = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (!disabled) onClick();\n };\n\n return (\n <div onClick={handleToggle} className=\"cursor-pointer\" data-testid=\"toggle-wrapper\">\n <div\n data-testid=\"toggle-background\"\n className={`relative h-6 w-12 rounded-xl ${\n value ? (disabled ? 'bg-turquoise-200' : 'bg-turquoise-500') : 'bg-gray-500'\n } ${disabled && 'cursor-not-allowed'}`}\n >\n <span\n data-testid=\"toggle-circle\"\n className={`absolute block size-[20px] rounded-full bg-white ${\n value ? 'translate-x-[26px] translate-y-[2px]' : 'translate-x-[2px] translate-y-[2px]'\n }`}\n ></span>\n </div>\n </div>\n );\n};\n","'use client';\nimport { useEffect, useState } from 'react';\n\nimport { IconMessageDots } from '@tabler/icons-react';\n\nimport { Tooltip } from '../tooltip';\n\ninterface ITruncatedText {\n text: string;\n limit?: number;\n}\n\nexport const TruncatedText = ({ text, limit = 20 }: ITruncatedText) => {\n const [truncatedText, setTruncatedText] = useState(text);\n\n useEffect(() => {\n if (text.length > limit) setTruncatedText(text.substring(0, limit) + '...');\n else setTruncatedText(text);\n }, [text, limit]);\n\n return (\n <div className=\"flex items-center gap-2\">\n <span className=\"text-sm font-normal\">{truncatedText}</span>\n {text.length > limit && (\n <Tooltip content={text}>\n <span className=\"text-secondary\" data-testid=\"truncated-text-icon\">\n <IconMessageDots stroke={1} />\n </span>\n </Tooltip>\n )}\n </div>\n );\n};\n","'use client'\n\nimport { cn } from '@utils/cn';\n\ntype IUnorderedListProps = {\n children: React.ReactNode;\n className?: string;\n actionItem?: React.ReactNode;\n};\n\nexport const UnorderedList = ({ children, className, actionItem, ...props }: IUnorderedListProps) => (\n <ul className={cn('m-0 last:border-none', className)} data-component=\"unorderedList\" data-testid=\"unorderedList\" {...props}>\n {children}\n {actionItem && <span className=\"flex items-center\">{actionItem}</span>}\n </ul>\n);\n","'use client'\n\nimport { cn } from '@utils/cn';\n\ntype IUnorderedListProps = {\n children: React.ReactNode;\n actionItem?: React.ReactNode;\n className?: string;\n header?: boolean;\n};\n\nexport const UnorderedListItem = ({\n children,\n actionItem,\n className,\n header = false,\n ...props\n}: IUnorderedListProps) => (\n <li\n {...props}\n data-component=\"unorderedListItem\"\n className={cn(\n 'grid min-h-[74px] list-none items-center border-b border-solid border-b-gray-200 py-5 text-sm font-normal last:border-none md:flex md:py-4 md:pr-10 md:pl-10',\n header ? 'md:items-end' : 'hover:bg-ultra-light-blue',\n {\n 'grid-cols-2': actionItem,\n },\n className,\n )}\n >\n {children}\n\n {actionItem && <span className=\"flex justify-end gap-2 md:absolute md:right-8 md:items-center\">{actionItem}</span>}\n </li>\n);\n","import { useCallback } from 'react';\n\nimport phone, { type PhoneInvalidResult, type PhoneValidResult } from 'phone';\n\ninterface PhoneOptions {\n country?: string;\n validateMobilePrefix?: boolean;\n strictDetection?: boolean;\n}\n\nexport function usePhoneNumber() {\n /**\n * Validates a phone number and returns parsing results\n */\n const validatePhone = useCallback(\n (phoneNumber: string, options?: PhoneOptions): PhoneValidResult | PhoneInvalidResult => phone(phoneNumber, options),\n [],\n );\n\n /**\n * Strips the country code from a phone number\n * Example: +85265698900 -> 65698900\n */\n const stripCountryCode = useCallback((phoneNumber: string): string => {\n const result = phone(phoneNumber);\n\n if (!result.isValid) return phoneNumber;\n\n return result.phoneNumber.replace(result.countryCode, '');\n }, []);\n\n /**\n * Returns the country code from a phone number\n * Example: +85265698900 -> +852\n */\n const getCountryCode = useCallback((phoneNumber: string): string => {\n const result = phone(phoneNumber);\n\n if (!result.isValid) return phoneNumber;\n\n return result.countryCode;\n }, []);\n\n /**\n * Formats a phone number to international format with country code\n * Example: 0648711212 (with country: 'NL') -> +31648711212\n */\n const formatToInternational = useCallback((phoneNumber: string, options?: PhoneOptions): string => {\n const result = phone(phoneNumber, options);\n\n if (!result.isValid) return phoneNumber;\n\n return result.phoneNumber;\n }, []);\n\n return {\n validatePhone,\n stripCountryCode,\n getCountryCode,\n formatToInternational,\n };\n}\n","import CountryList from 'country-list-with-dial-code-and-flag';\n\nexport const usePhoneNumberPrefix = (defaultCountry: string) => {\n const countryList = CountryList.getAll();\n\n return countryList\n .filter((country) => country.dial_code)\n .sort((a, b) => {\n if (a?.code === defaultCountry) return -1;\n if (b?.code === defaultCountry) return 1;\n\n return a.name.localeCompare(b.name);\n });\n};\n","import {\n type ChangeEvent,\n type KeyboardEvent,\n type RefObject,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react';\n\nimport { TextInput, type TextInputProps } from '@components/textInput';\nimport {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingPortal,\n offset,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n} from '@floating-ui/react';\nimport { usePhoneNumber } from '@hooks/phone/usePhoneNumber';\nimport { usePhoneNumberPrefix } from '@hooks/phone/usePhoneNumberPrefix';\nimport { cn } from '@utils/cn';\nimport { type Country } from 'country-list-with-dial-code-and-flag';\n\ninterface CountryType {\n name: string;\n dial_code: string;\n code: string;\n flag: string;\n}\n\ninterface CountrySelectorRef {\n updateCountry: (countryCode: string) => void;\n getSelectedCountry: () => CountryType | null;\n}\n\ninterface CountrySelectorProps {\n searchPlaceholder: string;\n defaultCountry: string;\n ref: RefObject<CountrySelectorRef>;\n}\n\nconst CountrySelector = ({ searchPlaceholder, defaultCountry, ref }: CountrySelectorProps) => {\n const phoneNumberPrefixes = usePhoneNumberPrefix(defaultCountry);\n const [selectedCountry, setSelectedCountry] = useState<CountryType | null>(\n phoneNumberPrefixes.find((country) => country.code === defaultCountry) || null,\n );\n const [openDropdown, setOpenDropdown] = useState(false);\n const [searchQuery, setSearchQuery] = useState('');\n const [filteredCountries, setFilteredCountries] = useState(phoneNumberPrefixes);\n const [highlightedIndex, setHighlightedIndex] = useState(-1);\n const optionRefs = useRef<(HTMLButtonElement | null)[]>([]);\n\n const { refs, floatingStyles, context } = useFloating({\n open: openDropdown,\n onOpenChange: (isOpen) => {\n setOpenDropdown(isOpen);\n if (isOpen) setHighlightedIndex(-1);\n },\n middleware: [offset(4), flip(), shift()],\n whileElementsMounted: autoUpdate,\n placement: 'bottom-start',\n });\n\n const click = useClick(context);\n const dismiss = useDismiss(context);\n const role = useRole(context, { role: 'combobox' });\n const { getReferenceProps, getFloatingProps } = useInteractions([click, dismiss, role]);\n\n const performSearch = useCallback(\n (query: string): CountryType[] => {\n if (!query) return phoneNumberPrefixes;\n const lowerQuery = query.toLowerCase();\n return phoneNumberPrefixes.filter(\n (country) =>\n country.name.toLowerCase().includes(lowerQuery) ||\n country.dial_code.toLowerCase().includes(lowerQuery) ||\n country.code.toLowerCase().includes(lowerQuery),\n );\n },\n [phoneNumberPrefixes],\n );\n\n useEffect(() => {\n const results = performSearch(searchQuery);\n setFilteredCountries(results as Country[]);\n setHighlightedIndex(-1);\n }, [searchQuery]);\n\n useEffect(() => {\n optionRefs.current = optionRefs.current.slice(0, filteredCountries.length);\n }, [filteredCountries]);\n\n useEffect(() => {\n if (highlightedIndex >= 0 && optionRefs.current[highlightedIndex]) {\n optionRefs.current[highlightedIndex]?.scrollIntoView({\n behavior: 'auto',\n block: 'nearest',\n });\n }\n }, [highlightedIndex]);\n\n const handleSelect = (country: CountryType) => {\n setSelectedCountry(country);\n setOpenDropdown(false);\n };\n\n const handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n if (filteredCountries.length === 0) return;\n\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n setHighlightedIndex((prev) => (prev < filteredCountries.length - 1 ? prev + 1 : 0));\n break;\n case 'ArrowUp':\n e.preventDefault();\n setHighlightedIndex((prev) => (prev > 0 ? prev - 1 : filteredCountries.length - 1));\n break;\n case 'Enter': {\n e.preventDefault();\n if (highlightedIndex >= 0) handleSelect(filteredCountries[highlightedIndex]);\n break;\n }\n case 'Escape':\n e.preventDefault();\n setOpenDropdown(false);\n break;\n }\n };\n\n useImperativeHandle(ref, () => ({\n updateCountry: (countryCode: string) => {\n const country = phoneNumberPrefixes.find((c) => c.dial_code === countryCode);\n if (country) setSelectedCountry(country);\n },\n getSelectedCountry: () => selectedCountry,\n }));\n\n return (\n <div className=\"relative\">\n <button\n type=\"button\"\n ref={refs.setReference}\n {...getReferenceProps()}\n className={cn('flex h-10 items-center justify-between px-2 text-sm transition-colors')}\n aria-haspopup=\"listbox\"\n aria-expanded={openDropdown}\n aria-label={`Country selector. Currently selected: ${selectedCountry?.name || 'None'} ${selectedCountry?.dial_code || ''}`}\n >\n <div className=\"flex items-center gap-1\">\n <span className=\"text-xs font-medium\">{selectedCountry?.dial_code}</span>\n </div>\n </button>\n\n {openDropdown && (\n <FloatingPortal>\n <FloatingFocusManager context={context} modal={false}>\n <div\n ref={refs.setFloating}\n style={{\n ...floatingStyles,\n width: '280px',\n }}\n {...getFloatingProps()}\n role=\"listbox\"\n aria-label=\"Country selection\"\n className={cn(\n 'z-[999] rounded-md border border-gray-200 bg-white shadow-lg',\n 'overflow-hidden animate-in fade-in',\n )}\n >\n <div className=\"p-2 border-b border-gray-100\">\n <TextInput\n placeholder={searchPlaceholder}\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n onKeyDown={handleKeyDown}\n autoFocus\n aria-label=\"Search countries\"\n role=\"searchbox\"\n />\n </div>\n\n <div className=\"max-h-[200px] overflow-auto p-1\">\n {filteredCountries.length > 0 ? (\n filteredCountries.map((country, index) => (\n <button\n key={country.code + country.name + country.dial_code}\n ref={(el) => (optionRefs.current[index] = el)}\n type=\"button\"\n role=\"option\"\n aria-selected={selectedCountry?.code === country.code}\n onClick={() => handleSelect(country)}\n className={cn(\n 'flex w-full items-center gap-3 rounded px-3 py-2 text-sm hover:bg-gray-50',\n selectedCountry?.code === country.code && 'bg-gray-50',\n highlightedIndex === index && 'bg-gray-50 border border-gray-100',\n )}\n >\n <span className=\"text-base\">{country.flag}</span>\n <span className=\"flex-1 text-left truncate\">{country.name}</span>\n <span className=\"text-xs font-medium text-gray-600\">{country.dial_code}</span>\n </button>\n ))\n ) : (\n <div className=\"px-3 py-2 text-sm text-gray-500 text-center\">No countries found</div>\n )}\n </div>\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </div>\n );\n};\n\ninterface PhoneInputProps extends Omit<TextInputProps, 'onChange' | 'value' | 'ref'> {\n searchPlaceHolder: string;\n defaultCountry?: string;\n invalidMessage: string;\n defaultValue?: string;\n onChange: (value: string) => void;\n ref?: RefObject<HTMLInputElement>;\n}\n\nexport const PhoneInput = ({\n placeholder,\n searchPlaceHolder,\n defaultCountry = 'NL',\n invalidMessage,\n defaultValue,\n onChange,\n ref,\n ...rest\n}: PhoneInputProps) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const [phoneNumber, setPhoneNumber] = useState(defaultValue || '');\n const { validatePhone, stripCountryCode, getCountryCode, formatToInternational } = usePhoneNumber();\n const countrySelectorRef = useRef<CountrySelectorRef>(null);\n const [error, setError] = useState('');\n\n // Filter input to only allow numbers, +, and ()\n const filterPhoneInput = (value: string): string => value.replace(/[^0-9+()]/g, '');\n\n const handlePhoneNumberChange = (e: ChangeEvent<HTMLInputElement>) => {\n const filteredValue = filterPhoneInput(e.target.value);\n\n if (error) setError('');\n\n if (filteredValue.startsWith('+') && filteredValue.length > 1) {\n const countryCode = getCountryCode(filteredValue);\n if (countryCode) countrySelectorRef.current?.updateCountry(countryCode);\n const strippedNumber = stripCountryCode(filteredValue);\n setPhoneNumber(strippedNumber);\n return;\n } else setPhoneNumber(filteredValue);\n };\n\n const handleBlur = () => {\n if (phoneNumber.trim()) {\n const selectedCountry = countrySelectorRef.current?.getSelectedCountry();\n const validationResult = validatePhone(phoneNumber, {\n country: selectedCountry?.code,\n });\n if (validationResult.isValid) {\n const formattedNumber = formatToInternational(phoneNumber, {\n country: selectedCountry?.code,\n });\n const displayNumber = stripCountryCode(formattedNumber);\n const fullNumber = selectedCountry?.dial_code + displayNumber;\n setPhoneNumber(displayNumber);\n onChange(fullNumber);\n } else setError(invalidMessage);\n }\n };\n\n return (\n <TextInput\n {...rest}\n value={phoneNumber}\n onChange={handlePhoneNumberChange}\n onBlur={handleBlur}\n leftSection={\n <CountrySelector\n ref={countrySelectorRef}\n searchPlaceholder={searchPlaceHolder}\n defaultCountry={defaultCountry}\n />\n }\n placeholder={placeholder}\n error={error}\n ref={ref || inputRef}\n aria-label=\"Phone number input\"\n inputMode=\"tel\"\n autoComplete=\"tel\"\n />\n );\n};\n\nPhoneInput.displayName = 'PhoneInput';\n","'use client';\nimport React, { type ReactNode, useCallback, useEffect, useRef, useState } from 'react';\n\nimport { buttonVariants } from '@components/button/buttonVariants';\nimport { UnstyledButton } from '@components/unstyledButton';\nimport { cn } from '@utils/cn';\n\ninterface IProfileMenu {\n title?: ReactNode;\n metaTitle?: string;\n icon?: ReactNode;\n disabled?: boolean;\n classNames?: {\n root?: string;\n button?: string;\n menu?: string;\n };\n content: {\n key: number;\n onClick: () => void;\n title: string;\n disabled?: boolean;\n }[];\n}\n\nexport const ProfileMenu = ({ title, metaTitle, icon, content, disabled = false, classNames }: IProfileMenu) => {\n const [isOpen, setIsOpen] = useState(false);\n const [focusedIndex, setFocusedIndex] = useState(-1);\n const menuRef = useRef<HTMLDivElement>(null);\n const buttonRef = useRef<HTMLButtonElement>(null);\n const menuItemRefs = useRef<(HTMLButtonElement | null)[]>([]);\n /* istanbul ignore next - id generation not critical to logic and flaky in coverage */\n const menuId = `profile-menu-${metaTitle || 'default'}`;\n /* istanbul ignore next - id generation not critical to logic and flaky in coverage */\n const buttonId = `${menuId}-button`;\n\n const defaultStyling =\n 'text-black flex items-center gap-1 bg-transparent py-1 px-2.5 h-9 min-w-9 cursor-pointer border-gray-200 focus:bg-gray-50 focus:ring focus:ring-primary focus:outline-none focus:border-0 focus:ring-inset';\n\n const handleToggle = () => {\n if (!disabled) {\n setIsOpen((prev) => {\n const newIsOpen = !prev;\n /* istanbul ignore next - branch depends on async DOM focus */\n if (newIsOpen) {\n // Focus first menu item when opening\n setTimeout(() => {\n /* istanbul ignore next - async focus behavior depends on DOM/timing */\n setFocusedIndex(0);\n /* istanbul ignore next - async focus behavior depends on DOM/timing */\n menuItemRefs.current[0]?.focus();\n }, 0);\n } else {\n /* istanbul ignore next - focus reset depends on DOM/timing */\n setFocusedIndex(-1);\n /* istanbul ignore next - focus reset depends on DOM/timing */\n buttonRef.current?.focus();\n }\n return newIsOpen;\n });\n }\n };\n\n /* istanbul ignore next - click handler behavior covered via integration; unit env flaky */\n const handleItemClick = (onClick: () => void) => {\n if (!disabled) {\n onClick();\n setIsOpen(false);\n setFocusedIndex(-1);\n\n /* istanbul ignore next - async focus timing not reliable in unit tests */\n setTimeout(() => buttonRef.current?.focus(), 0);\n }\n };\n\n /* istanbul ignore next - relies on document events; hard to unit test reliably */\n const handleClickOutside = (event: MouseEvent) => {\n if (menuRef.current && !menuRef.current.contains(event.target as Node)) {\n setIsOpen(false);\n setFocusedIndex(-1);\n }\n };\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n /* istanbul ignore next - early return depends on open state timing */\n if (!isOpen) return;\n /* istanbul ignore next - keyboard navigation covered by e2e; unit env is flaky */\n switch (event.key) {\n case 'Escape':\n event.preventDefault();\n setIsOpen(false);\n setFocusedIndex(-1);\n buttonRef.current?.focus();\n break;\n case 'ArrowDown':\n event.preventDefault();\n setFocusedIndex((prev) => {\n const nextIndex = prev < content.length - 1 ? prev + 1 : 0;\n menuItemRefs.current[nextIndex]?.focus();\n return nextIndex;\n });\n break;\n case 'ArrowUp':\n event.preventDefault();\n setFocusedIndex((prev) => {\n const nextIndex = prev > 0 ? prev - 1 : content.length - 1;\n menuItemRefs.current[nextIndex]?.focus();\n return nextIndex;\n });\n break;\n case 'Home':\n event.preventDefault();\n setFocusedIndex(0);\n menuItemRefs.current[0]?.focus();\n break;\n case 'End': {\n event.preventDefault();\n const lastIndex = content.length - 1;\n setFocusedIndex(lastIndex);\n menuItemRefs.current[lastIndex]?.focus();\n break;\n }\n }\n },\n [isOpen, content.length],\n );\n\n /* istanbul ignore next - global listeners are not reliably asserted in unit tests */\n useEffect(() => {\n document.addEventListener('mousedown', handleClickOutside);\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [handleKeyDown]);\n\n return (\n <>\n <div\n className={cn('relative', classNames?.root)}\n data-component=\"ProfileMenu\"\n data-testid=\"profile-menu\"\n ref={menuRef}\n data-context-menu-id={metaTitle}\n data-context-menu-content={metaTitle}\n >\n <UnstyledButton\n ref={buttonRef}\n id={buttonId}\n aria-label=\"Toggle profile menu\"\n aria-expanded={isOpen}\n aria-haspopup=\"menu\"\n aria-controls={isOpen ? menuId : undefined}\n className={cn(buttonVariants['secondary'], defaultStyling, classNames?.button)}\n disabled={disabled}\n onClick={handleToggle}\n >\n {title && <span className=\"hidden font-normal md:block\">{title}</span>}\n {icon}\n </UnstyledButton>\n {isOpen && (\n <div\n id={menuId}\n role=\"menu\"\n aria-labelledby={buttonId}\n className={cn(\n 'absolute right-0 z-10 mt-2 w-auto min-w-[200px] rounded-md border-[0.0625rem] border-gray-200 bg-white p-1 shadow-md',\n classNames?.menu,\n )}\n >\n {content.map(\n /* istanbul ignore next - render callback not meaningful for unit coverage */\n (c, index) => (\n <UnstyledButton\n key={index}\n ref={\n /* istanbul ignore next - ref setter is a render-time callback */\n (el) => {\n menuItemRefs.current[index] = el;\n }\n }\n role=\"menuitem\"\n tabIndex={-1}\n onClick={\n /* istanbul ignore next - inline handler wrapper */\n () => handleItemClick(c.onClick)\n }\n className={cn(\n 'w-full rounded-md px-4 py-2 text-left text-sm font-normal whitespace-nowrap transition-colors',\n 'focus:ring-primary hover:bg-gray-50 focus:bg-gray-50 focus:ring focus:outline-none focus:ring-inset',\n c.disabled && 'cursor-not-allowed opacity-50',\n focusedIndex === index && 'bg-gray-50',\n )}\n aria-label={c.title}\n disabled={c.disabled}\n >\n {c.title}\n </UnstyledButton>\n ),\n )}\n </div>\n )}\n </div>\n </>\n );\n};\n\n","export const isSSR = () =>\n typeof window === 'undefined' || typeof document === 'undefined';","'use client';\nimport { forwardRef, useEffect, useImperativeHandle } from 'react';\n\nimport {\n IconBold,\n IconClearFormatting,\n IconItalic,\n IconList,\n IconListNumbers,\n IconUnderline,\n} from '@tabler/icons-react';\nimport { Placeholder } from '@tiptap/extension-placeholder';\nimport { Underline } from '@tiptap/extension-underline';\nimport { EditorContent, useEditor } from '@tiptap/react';\nimport { StarterKit } from '@tiptap/starter-kit';\nimport { cn } from '@utils/cn';\nimport { isSSR } from '@utils/ssr';\n\nexport interface IWysiwygEditorImperativeHandle {\n resetContent: (newContent: string) => void;\n}\ninterface IWysiwygEditor {\n id: string;\n content?: string;\n placeholder?: string;\n forceRefresh?: boolean;\n readOnly?: boolean;\n onChange?: (v: string) => void;\n error?: string;\n className?: string;\n formName?: string;\n}\n\nconst BoldIcon = () => <IconBold size={18} stroke={1.5} />;\nconst ItalicIcon = () => <IconItalic size={18} stroke={1.5} />;\nconst UnderlineIcon = () => <IconUnderline size={18} stroke={1.5} />;\nconst ClearFormattingIcon = () => <IconClearFormatting size={18} stroke={1.5} />;\nconst ListIcon = () => <IconList size={18} stroke={1.5} />;\nconst ListNumbersIcon = () => <IconListNumbers size={18} stroke={1.5} />;\n\nexport const WysiwygEditor = forwardRef(\n ({ id, content, className, placeholder, onChange, readOnly, error }: IWysiwygEditor, ref) => {\n const editor = useEditor({\n extensions: [\n StarterKit,\n Underline,\n Placeholder.configure({\n placeholder: placeholder,\n }),\n ],\n editorProps: {\n attributes: {\n class:\n 'min-h-[190px] md:min-h-[150px] bg-ultra-light-gray text-sm font-normal p-4 prose prose-sm sm:prose-base lg:prose-lg xl:prose-2xl focus:outline-hidden',\n },\n },\n content: content,\n immediatelyRender: false,\n editable: !readOnly,\n onUpdate({ editor }) {\n let sanitizedOutput = editor.getHTML().replaceAll(/<li><p>(.*?)<\\/p><(\\/?)(ol|li|ul)>/gi, '<li>$1<$2$3>');\n\n // Replace multiple consecutive empty paragraphs with a single one\n sanitizedOutput = sanitizedOutput.replace(/(<p><\\/p>\\s*)+/gi, '<p></p>');\n\n // Remove empty <p></p> tags from the start\n sanitizedOutput = sanitizedOutput.replace(/^(<p><\\/p>\\s*)+/gi, '');\n\n // Remove empty <p></p> tags from the end\n sanitizedOutput = sanitizedOutput.replace(/(<p><\\/p>\\s*)+$/gi, '');\n\n // Replace remaining <p></p> tags (single empty lines between paragraphs) with a regular break\n sanitizedOutput = sanitizedOutput.replace(/<p><\\/p>/gi, '<br>');\n\n onChange && onChange(sanitizedOutput);\n },\n });\n\n useEffect(() => {\n if (!editor) return;\n if (content === null) editor.commands.setContent('');\n }, [content, editor]);\n\n useEffect(() => {\n if (!editor) return;\n editor.setEditable(readOnly ? !readOnly : true);\n }, [readOnly, editor]);\n\n useImperativeHandle(\n ref,\n () => ({\n resetContent(newContent: string) {\n editor?.commands?.setContent(newContent);\n },\n }),\n [editor],\n );\n\n if (isSSR()) return null;\n\n return (\n <div>\n <div\n data-testid={`${id}-container`}\n className={cn('rounded-md border border-gray-200', className, error && 'border-red-600')}\n >\n {editor && (\n <div className=\"flex flex-wrap gap-2 border-b border-gray-200 p-2\">\n <div className=\"flex flex-row divide-x divide-gray-400 rounded-md border border-gray-400\">\n <button\n type=\"button\"\n data-testid=\"bold-button\"\n onClick={() => editor.chain().focus().toggleBold().run()}\n className={`${editor.isActive('bold') ? 'bg-primary/20' : 'bg-white'} flex size-[26px] items-center justify-center rounded-l-md border-gray-400 text-xs font-normal hover:bg-gray-100 focus:ring-2 focus:ring-teal-500 focus:outline-hidden`}\n >\n <BoldIcon />\n </button>\n <button\n type=\"button\"\n data-testid=\"italic-button\"\n onClick={() => editor.chain().focus().toggleItalic().run()}\n className={`${editor.isActive('italic') ? 'bg-primary/20' : 'bg-white'} flex size-[26px] items-center justify-center border-gray-400 text-xs font-normal hover:bg-gray-100 focus:ring-2 focus:ring-teal-500 focus:outline-hidden`}\n >\n <ItalicIcon />\n </button>\n <button\n type=\"button\"\n data-testid=\"underline-button\"\n onClick={() => editor.chain().focus().toggleUnderline().run()}\n className={`${editor.isActive('underline') ? 'bg-primary/20' : 'bg-white'} flex size-[26px] items-center justify-center border-gray-400 text-xs font-normal hover:bg-gray-100 focus:ring-2 focus:ring-teal-500 focus:outline-hidden`}\n >\n <UnderlineIcon />\n </button>\n <button\n type=\"button\"\n data-testid=\"clear-formatting-button\"\n onClick={() => editor.chain().focus().clearNodes().unsetAllMarks().run()}\n className={\n 'flex size-[26px] items-center justify-center rounded-r-md border-gray-400 bg-white text-xs font-normal hover:bg-gray-100 focus:ring-2 focus:ring-teal-500 focus:outline-hidden'\n }\n >\n <ClearFormattingIcon />\n </button>\n </div>\n <div className=\"flex flex-row divide-x divide-gray-400 rounded-md border border-gray-400\">\n <button\n type=\"button\"\n data-testid=\"bullet-list-button\"\n onClick={() => editor.chain().focus().toggleBulletList().run()}\n className={`${editor.isActive('bulletList') ? 'bg-primary/20' : 'bg-white'} flex size-[26px] items-center justify-center rounded-l-md border-gray-400 text-xs font-normal hover:bg-gray-100 focus:ring-2 focus:ring-teal-500 focus:outline-hidden`}\n >\n <ListIcon />\n </button>\n <button\n type=\"button\"\n data-testid=\"ordered-list-button\"\n onClick={() => editor.chain().focus().toggleOrderedList().run()}\n className={`${editor.isActive('orderedList') ? 'bg-primary/20 text-primary' : 'bg-white'} flex size-[26px] items-center justify-center rounded-r-md border-gray-400 text-xs font-normal hover:bg-gray-100 focus:ring-2 focus:ring-teal-500 focus:outline-hidden`}\n >\n <ListNumbersIcon />\n </button>\n </div>\n </div>\n )}\n <EditorContent\n editor={editor}\n data-component=\"wysiwygEditor\"\n data-testid={id}\n id={id}\n className={cn('overflow-hidden rounded-[inherit]')}\n />\n </div>\n {error && <span className=\"mt-1 text-xs font-normal text-red-600\">{error}</span>}\n </div>\n );\n },\n);\n"],"mappings":"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cAChE;KACG,kBACN,2BAACC;IACC,KAAK;IACI;IACT,OAAO;IACP,QAAQ;IACR,WAAW;IACX,eAAY;IACZ,WAAU;KACV;IACE,mBAEN,4BAAC;GAAI,eAAY;GAAoB,WAAU;8BAC7C,2BAAC;IACC,eAAY;IACZ,YAAY,EAAE,YAAY,MAAM;8BAEhC,2BAAC,iBAAG,UAAY;KACZ,EACL,SAAS,uBACR,2BAACA;IACC,KAAK;IACI;IACT,OAAO;IACP,QAAQ;IACR,WAAW;IACX,MAAK;IACL,WAAU;IACV,eAAY;KACZ,mBAEF,2BAACA;IACC,KAAK;IACI;IACT,OAAO;IACP,QAAQ;IACR,WAAW;IACX,MAAK;IACL,WAAU;IACV,eAAY;KACZ;IAEA;GAEJ,IAEP;AAEN;AAED,QAAQ,cAAc;;;;ACrItB,IAAY,kFAAL;AACL;AACA;AACA;AACA;;AACD;AAED,IAAY,gFAAL;AACL;;AACD;AAED,IAAY,0CAAL;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACD;AAED,IAAY,4CAAL;AACL;AACA;AACA;;AACD;AAED,IAAY,0DAAL;AACL;AACA;;AACD;;;;AC/CD,MAAMC,gCAAwF,CAAE;;;;;;AAOhG,SAAwB,WACtBC,MACAC,yBACA;AACA,MAAK,cAAM,eAAe,KAAK,CAAE,QAAO;AAExC,QAAO,wBAAa,MAAM;EACxB,GAAG;EACH,GAAG;EACH,GAAI,KAAK;EACT,GAAG,EACD,WAAW,kBACT,8BAA8B,WAC9B,wBAAwB,WACvB,KAAK,MAAgC,UACvC,CACF;CACF,EAAC;AACH;;;;ACGD,MAAM,aAAa,CAAC,EAClB,KACA,OACA,WAAW,OACX,eAAe,WACf,MACA,OAAO,UACP,eAAe,QACf,WAAW,IACX,cAAc,GACd,SACA,UACA,GAAG,OACa,KAAK;CACrB,MAAM,oBAAoB,kBAAK;EAC7B,mMACE,iBAAiB,0BAA0B;EAC7C,4KACE,iBAAiB,0BAA0B;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"}