{"version":3,"file":"js/7811-7fb5c1325785810c53fd.js","mappings":"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","sources":["webpack://halo/./app/client/src/components/StatusCircle/StatusCircle.tsx","webpack://halo/./app/client/src/components/Toast/Toast.tsx","webpack://halo/./app/client/src/components/library/Buttons/Button.tsx","webpack://halo/./app/client/src/components/library/Buttons/IconButton.tsx","webpack://halo/./app/client/src/components/library/Buttons/SortButton.tsx","webpack://halo/./app/client/src/components/library/Dropdowns/DropdownGroup.tsx","webpack://halo/./app/client/src/components/library/Dropdowns/DropdownOption.tsx","webpack://halo/./app/client/src/components/library/Dropdowns/EmailDropdown.tsx","webpack://halo/./app/client/src/components/library/Dropdowns/KeywordsDropdown/KeywordsDropdownCreateLabel.tsx","webpack://halo/./app/client/src/components/library/Dropdowns/KeywordsDropdown/KeywordsDropdownOption.tsx","webpack://halo/./app/client/src/components/library/Dropdowns/KeywordsDropdown/KeywordsDropdown.tsx","webpack://halo/./app/client/src/components/library/Dropdowns/MoreActionsDropdown.tsx","webpack://halo/./app/client/src/components/library/Dropdowns/MultiSelectDropdown.tsx","webpack://halo/./app/client/src/components/library/Dropdowns/UserDropdown.tsx","webpack://halo/./app/client/src/components/library/Dropdowns/dropdownStyles.ts","webpack://halo/./app/client/src/components/library/Icon/Icon.tsx","webpack://halo/./app/client/src/components/library/Inputs/ChipsInput.tsx","webpack://halo/./app/client/src/components/library/Inputs/TextInput.tsx","webpack://halo/./app/client/src/components/library/Menus/Tabs.tsx","webpack://halo/./app/client/src/components/library/ModalBases/BlankModal.tsx","webpack://halo/./app/client/src/components/library/ModalBases/SlideModalBase.tsx","webpack://halo/./app/client/src/components/library/ProfilePicture/InvitedUserProfilePicture.tsx","webpack://halo/./app/client/src/components/library/ProfilePicture/ProfilePicture.tsx","webpack://halo/./app/client/src/components/library/Tags/Tag.tsx","webpack://halo/./app/client/src/components/library/Tags/users/AdminTag.tsx","webpack://halo/./app/client/src/components/library/Tags/users/LicenseTagTooltip.tsx","webpack://halo/./app/client/src/components/library/Tags/users/LicenseTag.tsx","webpack://halo/./app/client/src/components/library/Tags/users/SuperAdminTag.tsx","webpack://halo/./app/client/src/components/library/Texts/FormLabel.tsx","webpack://halo/./app/client/src/components/library/Tooltips/TagTooltip.tsx","webpack://halo/./app/client/src/components/library/Tooltips/Tooltip.tsx","webpack://halo/./app/client/src/components/library/Attachments/MessageAttachment.tsx","webpack://halo/./app/client/src/components/library/Banners/StandardBanner.tsx","webpack://halo/./app/client/src/components/library/BlueBox/BlueBox.tsx","webpack://halo/./app/client/src/components/library/Buttons/ButtonGroup.tsx","webpack://halo/./app/client/src/components/library/Tags/InfoTag.tsx","webpack://halo/./app/client/src/components/library/Buttons/FiltersButton.tsx","webpack://halo/./app/client/src/components/library/Buttons/GradientButton.tsx","webpack://halo/./app/client/src/components/library/Buttons/TextButton.tsx","webpack://halo/./app/client/src/components/library/Buttons/TextLink.tsx","webpack://halo/./app/client/src/components/library/Card/Card.tsx","webpack://halo/./app/client/src/components/library/CompanyAvatar/CompanyAvatar.tsx","webpack://halo/./app/client/src/components/library/Dropdowns/SelectableDropdown.tsx","webpack://halo/./app/client/src/components/library/Dropdowns/SelectOrCreateDropdown.tsx","webpack://halo/./app/client/src/components/library/Dropdowns/SingleSelectDropdown.tsx","webpack://halo/./app/client/src/components/library/Dropdowns/UniversityDropdown.tsx","webpack://halo/./app/client/src/components/library/InfoBanner/InfoBanner.tsx","webpack://halo/./app/client/src/components/library/Inputs/Checkbox.tsx","webpack://halo/./app/client/src/components/library/Inputs/ChipCheckbox.tsx","webpack://halo/./app/client/src/components/library/Inputs/CollapsibleInputWrapper.tsx","webpack://halo/./app/client/src/components/library/Inputs/MultiTextInput.tsx","webpack://halo/./app/client/src/components/library/Inputs/RemovableInputWrapper.tsx","webpack://halo/./app/client/src/components/library/Inputs/SearchBarDropdown.tsx","webpack://halo/./app/client/src/components/library/Inputs/Switch.tsx","webpack://halo/./app/client/src/components/library/Inputs/UserChipCheckbox.tsx","webpack://halo/./app/client/src/components/library/layout/CenteredContainer.tsx","webpack://halo/./app/client/src/components/library/layout/PageContainer.tsx","webpack://halo/./app/client/src/components/library/Menus/ProgressStep.tsx","webpack://halo/./app/client/src/components/library/Modals/ErrorModal.tsx","webpack://halo/./app/client/src/components/library/Modals/SimpleConfirmationModal.tsx","webpack://halo/./app/client/src/components/library/OneLineSpan/OneLineSpan.tsx","webpack://halo/./app/client/src/components/library/Pagination/Pagination.tsx","webpack://halo/./app/client/src/components/library/RequestStatusIcon/RequestStatusIcon.tsx","webpack://halo/./app/client/src/components/library/Tags/XMoreWrapper.tsx","webpack://halo/./app/client/src/components/library/Thumbnail/Thumbnail.tsx","webpack://halo/./app/client/src/components/library/Tooltips/InputTooltip.tsx","webpack://halo/./app/client/src/components/library/Tooltips/TruncatedText.tsx","webpack://halo/./app/client/src/components/library/UserPreview/MultiUserPreview.tsx","webpack://halo/./app/client/src/components/library/UserPreview/UserPreview.tsx","webpack://halo/./app/client/src/constants/featureFlags.ts","webpack://halo/./app/client/src/constants/colors.ts","webpack://halo/./app/client/src/constants/__generated__/base_colors.ts","webpack://halo/./app/client/src/constants/proposalStatuses.js.erb","webpack://halo/./app/client/src/constants/credentials.js.erb","webpack://halo/./app/client/src/constants/CharLimitConst.js","webpack://halo/./app/client/src/constants/ably_channels.ts","webpack://halo/./app/client/src/constants/blockedEmailDomains.js","webpack://halo/./app/client/src/constants/companies.js.erb","webpack://halo/./app/client/src/constants/company_headers.js","webpack://halo/./app/client/src/constants/countryOptions.ts","webpack://halo/./app/client/src/constants/env.ts","webpack://halo/./app/client/src/constants/fonts.ts","webpack://halo/./app/client/src/constants/hubspot.js","webpack://halo/./app/client/src/constants/links.ts","webpack://halo/./app/client/src/constants/proposalTypes.js","webpack://halo/./app/client/src/constants/requestForMaterials.js","webpack://halo/./app/client/src/constants/styles.ts","webpack://halo/./app/client/src/constants/windowDimensions.js","webpack://halo/./app/client/src/constants/characterLimits.js.erb","webpack://halo/./app/client/src/constants/scientistRoles.js.erb","webpack://halo/./app/client/src/locales/index.ts","webpack://halo/./app/client/src/redux/actions/messengerActions.tsx","webpack://halo/./app/client/src/redux/reducers/messengerReducer.tsx","webpack://halo/./app/client/src/requests/companies.ts","webpack://halo/./app/client/src/requests/companyNetworkScientists.ts","webpack://halo/./app/client/src/requests/keywords.ts","webpack://halo/./app/client/src/requests/messages.ts","webpack://halo/./app/client/src/requests/request.ts","webpack://halo/./app/client/src/requests/requests.ts","webpack://halo/./app/client/src/routes/utils.ts","webpack://halo/./app/client/src/tsTypes/__generated__/enums/segment_event_object.ts","webpack://halo/./app/client/src/tsTypes/__generated__/enums/segment_event_name.ts","webpack://halo/./app/client/src/tsTypes/__generated__/enums/tour_identifier.ts","webpack://halo/./app/client/src/tsTypes/requests.ts","webpack://halo/./app/client/src/tsTypes/rfps.ts","webpack://halo/./app/client/src/tsTypes/sponsorProfiles.ts","webpack://halo/./app/client/src/tsTypes/users.ts","webpack://halo/./app/client/src/utils/appUtils.ts","webpack://halo/./app/client/src/utils/appsignal.ts","webpack://halo/./app/client/src/utils/dropdownUtils.ts","webpack://halo/./app/client/src/utils/i18n.tsx","webpack://halo/./app/client/src/utils/redux.js","webpack://halo/./app/client/src/utils/requests.ts","webpack://halo/./app/client/src/utils/rfpUtils.ts","webpack://halo/./app/client/src/components/Tooltip/Tooltip.jsx","webpack://halo/./app/client/src/components/Tooltip/index.jsx","webpack://halo/./app/client/src/utils/textUtils.tsx","webpack://halo/./app/client/src/views/Onboarding/Hooks/useCompanyOptions.ts","webpack://halo/./app/client/src/views/Onboarding/Hooks/useUniversityOptions.ts"],"sourcesContent":["import { COLORS } from \"@constants\";\nimport { ReactNode } from \"react\";\nimport styled from \"styled-components\";\n\ninterface Props {\n color?: string;\n margin?: string;\n children?: ReactNode;\n}\n\nconst StatusCircle = ({ color, margin, children }: Props) => {\n return (\n <StyledStatusCircle color={color} margin={margin}>\n {children}\n </StyledStatusCircle>\n );\n};\n\nconst StyledStatusCircle = styled.div<{ color?: string; margin?: string }>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n ${({ margin }) => margin && `margin: ${margin};`}\n\n width: 16px;\n height: 16px;\n\n border-radius: 50%;\n\n background-color: ${({ color }) => color || COLORS.GREEN_400};\n`;\n\nexport default StatusCircle;\n","/**\n * USAGE:\n * import toast from '@components/Toast';\n * toast.success(\"success message\");\n * toast.error(\"error message\");\n * toast.subtleError(\"subtle error message\");\n */\n\nimport { COLORS, FONTS } from \"@constants\";\nimport { ReactElement } from \"react\";\nimport { ToastContainer, toast as toastify, ToastPosition } from \"react-toastify\";\nimport styled from \"styled-components\";\n\n// Default toast container for standard notifications (top-center)\nexport const BannerToaster = styled(ToastContainer).attrs(() => ({\n enableMultiContainer: true,\n containerId: \"banner\",\n position: \"top-center\",\n autoClose: 5000,\n hideProgressBar: true,\n closeOnClick: true,\n closeButton: false,\n rtl: false,\n pauseOnFocusLoss: false,\n theme: \"colored\",\n draggable: true,\n pauseOnHover: true,\n}))`\n && {\n &.Toastify__toast-container {\n z-index: 1005;\n width: 658px;\n text-align: center;\n transform: translateX(-50%);\n }\n .Toastify__toast {\n border-radius: 4px;\n }\n .Toastify__toast-body {\n ${FONTS.MEDIUM_1}\n color: ${COLORS.WHITE};\n margin: 0 auto;\n flex: none;\n max-width: 100%;\n a {\n color: ${COLORS.WHITE};\n text-decoration: underline;\n }\n }\n .Toastify__toast--success {\n background-color: ${COLORS.GREEN};\n border-color: ${COLORS.GREEN};\n }\n .Toastify__toast--error {\n background-color: ${COLORS.RED};\n border-color: ${COLORS.RED};\n }\n }\n`;\n\n// Subtle slide-in toast container (bottom-right)\nexport const SubtleToaster = styled(ToastContainer).attrs(() => ({\n enableMultiContainer: true,\n containerId: \"subtle\",\n position: \"bottom-right\",\n autoClose: 5000,\n hideProgressBar: true,\n closeOnClick: true,\n closeButton: false,\n rtl: false,\n pauseOnFocusLoss: false,\n theme: \"light\",\n draggable: true,\n pauseOnHover: true,\n}))`\n && {\n &.Toastify__toast-container {\n z-index: 100;\n width: 384px;\n padding: 16px;\n transform: none;\n overflow: visible;\n }\n .Toastify__toast {\n border-radius: 8px;\n margin-bottom: 8px;\n padding: 12px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n background: ${COLORS.WHITE};\n border: 1px solid ${COLORS.NEUTRAL_200};\n min-height: unset;\n max-height: none;\n height: auto;\n overflow: visible;\n display: flex;\n flex-direction: row;\n }\n .Toastify__toast-body {\n ${FONTS.MEDIUM_1}\n color: ${COLORS.NEUTRAL_800};\n padding: 4px;\n margin: 0;\n flex: 1;\n font-size: 14px;\n line-height: 20px;\n white-space: normal;\n overflow: visible;\n word-wrap: break-word;\n word-break: break-word;\n display: flex;\n flex-direction: row;\n width: 100%;\n align-items: center;\n\n > div:first-child {\n display: flex;\n align-items: center;\n margin-right: 12px;\n padding: 2px;\n }\n\n > div:last-child {\n flex: 1;\n }\n\n a {\n color: ${COLORS.HALO_BLUE};\n text-decoration: underline;\n }\n }\n .Toastify__toast--error {\n border-left: 4px solid ${COLORS.RED};\n background: ${COLORS.WHITE};\n }\n }\n`;\n\nexport const ToastContainers = () => (\n <>\n <BannerToaster />\n <SubtleToaster />\n </>\n);\n\nexport const Toaster = ToastContainers;\n\n// Aliases for backward compatibility\nexport const SuccessToaster = BannerToaster;\nexport const ErrorToaster = BannerToaster;\nexport const AdminToaster = SubtleToaster;\n\nconst toast = {\n success: (message: string | ReactElement) => {\n toastify.success(message, { \n containerId: \"banner\",\n position: \"top-center\"\n });\n },\n error: (message: string | ReactElement) => {\n toastify.error(message, { \n containerId: \"banner\",\n position: \"top-center\"\n });\n },\n subtleError: (message: string | ReactElement, position: ToastPosition = \"bottom-right\") => {\n toastify.error(message, { \n containerId: \"subtle\",\n position\n });\n },\n // For backward compatibility\n adminError: (message: string | ReactElement) => {\n return toast.subtleError(message);\n }\n};\n\n// Make toast functions globally available\ndeclare global {\n interface Window {\n toast: typeof toast;\n }\n}\nwindow.toast = toast;\n\nexport default toast;\n","import Icon from \"@components/library/Icon\";\nimport { COLORS, FONTS } from \"@constants\";\nimport { Link } from \"react-router-dom\";\nimport styled, { css } from \"styled-components\";\nimport { IconName } from \"../Icon/Icon\";\n\nexport interface BaseButtonProps {\n id?: string;\n name?: string;\n disabled?: boolean;\n type?: \"submit\" | \"button\" | \"reset\";\n form?: string;\n onClick?: (...args: any[]) => any;\n onMouseEnter?: (...args: any[]) => any;\n onMouseLeave?: (...args: any[]) => any;\n onFocus?: (...args: any[]) => any;\n onBlur?: (...args: any[]) => any;\n margin?: string | 0;\n \"data-testid\"?: string;\n}\n\nexport interface ButtonProps extends BaseButtonProps {\n variant?:\n | \"primary\"\n | \"secondary\"\n | \"secondary-dark\"\n | \"ghost\"\n | \"destructive-primary\"\n | \"destructive-secondary\"\n | \"destructive-ghost\"\n | \"orange\"\n | \"marketing\";\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\";\n // This sets a min-width in case the button is intended to extend past its contents. A minimum padding will be maintained\n width?: string;\n /**\n * Add a `to` prop similar to a Link tag. This will use a <a> tag instead of a button.\n */\n to?: string;\n isExternalLink?: boolean;\n openInNewTab?: boolean;\n iconName?: IconName;\n iconPosition?: \"left\" | \"right\";\n children: any;\n}\n\nconst Button = ({\n variant = \"primary\",\n to,\n isExternalLink = false,\n openInNewTab = false,\n size = \"md\",\n width,\n margin = 0,\n iconName,\n iconPosition = \"left\",\n children,\n id,\n name,\n type = \"submit\",\n disabled,\n form,\n onClick,\n onMouseEnter,\n onMouseLeave,\n onFocus,\n onBlur,\n \"data-testid\": dataTestId,\n}: ButtonProps) => {\n let iconColor = COLORS.WHITE;\n\n if (variant === \"destructive-ghost\" || variant === \"destructive-secondary\") {\n iconColor = COLORS.RED;\n } else if (variant === \"secondary\" || variant === \"ghost\") {\n iconColor = COLORS.HALO_BLUE;\n }\n\n const StyledComponent = to ? StyledLink : StyledButton;\n\n return (\n <StyledComponent\n to={!isExternalLink && to}\n href={isExternalLink ? to : undefined}\n as={isExternalLink ? \"a\" : undefined}\n target={isExternalLink && openInNewTab ? \"_blank\" : undefined}\n rel={isExternalLink && openInNewTab ? \"noopener noreferrer\" : undefined}\n variant={variant}\n size={size}\n width={width}\n margin={margin}\n id={id}\n name={name}\n // Seems like button type has issues with default values and ESLint\n // https://github.com/yannickcr/eslint-plugin-react/issues/1555#issuecomment-377339656\n /* eslint-disable react/button-has-type */\n type={type}\n disabled={disabled}\n form={form}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onFocus={onFocus}\n onBlur={onBlur}\n data-testid={dataTestId}\n >\n <ButtonContent variant={variant} size={size} iconPosition={iconPosition}>\n {iconName ? (\n <Icon\n name={iconName}\n size=\"md\"\n color={iconColor}\n margin={iconPosition === \"left\" ? \"0 4px 0 -4px\" : \"0 -8px 0 4px\"}\n />\n ) : null}\n {children}\n </ButtonContent>\n </StyledComponent>\n );\n};\n\nexport default Button;\n\nexport const BaseStyles = css`\n height: ${({ size }) => {\n switch (size) {\n case \"xs\":\n return \"24px\";\n case \"sm\":\n return \"36px\";\n case \"l\":\n return \"64px\";\n default:\n return \"42px\";\n }\n }};\n min-width: ${({ width }) => width ?? \"initial\"};\n background-color: transparent;\n border: none;\n border-radius: 4px;\n padding: 0;\n margin: ${({ margin }) => margin};\n\n &:hover > div {\n background-color: ${({ variant }) => {\n switch (variant) {\n case \"destructive-primary\": {\n return COLORS.RED_600;\n }\n case \"destructive-secondary\": {\n return COLORS.RED_200;\n }\n case \"destructive-ghost\": {\n return COLORS.RED_100;\n }\n case \"secondary\":\n case \"secondary-dark\": {\n return COLORS.BLUE_LIGHT_400;\n }\n case \"ghost\": {\n return COLORS.BLUE_LIGHT_300;\n }\n case \"orange\": {\n return COLORS.ORANGE_700;\n }\n case \"marketing\": {\n return COLORS.PINK_700;\n }\n default: {\n return COLORS.BLUE_600;\n }\n }\n }};\n }\n\n &:active {\n outline: none;\n\n & > div {\n background-color: ${({ variant }) => {\n switch (variant) {\n case \"destructive-primary\": {\n return COLORS.RED_700;\n }\n case \"destructive-secondary\": {\n return COLORS.RED_300;\n }\n case \"destructive-ghost\": {\n return COLORS.RED_200;\n }\n case \"secondary\": {\n return COLORS.BLUE_LIGHT_500;\n }\n case \"secondary-dark\": {\n return COLORS.BLUE_LIGHT_350;\n }\n case \"ghost\": {\n return COLORS.BLUE_LIGHT_400;\n }\n case \"orange\": {\n return COLORS.ORANGE;\n }\n case \"marketing\": {\n return COLORS.PINK_600;\n }\n default: {\n return COLORS.BLUE_650;\n }\n }\n }};\n }\n }\n\n &:focus:not(:active) {\n outline: 2px solid ${COLORS.WHITE};\n box-shadow: 0 0 0 3px\n ${({ variant }) => (variant.includes(\"destructive\") ? COLORS.RED : COLORS.HALO_BLUE)};\n }\n\n &:disabled {\n opacity: 0.4;\n pointer-events: none;\n }\n`;\n\nconst StyledButton = styled.button`\n ${BaseStyles}\n`;\n\nconst ButtonContent = styled.div`\n display: flex;\n flex-direction: ${({ iconPosition }) => (iconPosition === \"left\" ? \"row\" : \"row-reverse\")};\n justify-content: center;\n align-items: center;\n background-color: ${({ variant }) => {\n switch (variant) {\n case \"destructive-primary\": {\n return COLORS.RED;\n }\n case \"destructive-secondary\": {\n return COLORS.RED_100;\n }\n case \"secondary\": {\n return COLORS.BLUE_LIGHT_300;\n }\n case \"secondary-dark\": {\n return COLORS.BLUE_LIGHT_350;\n }\n case \"ghost\":\n case \"destructive-ghost\": {\n return \"transparent\";\n }\n case \"orange\": {\n return COLORS.ORANGE_700;\n }\n case \"marketing\": {\n return COLORS.PINK_600;\n }\n default: {\n return COLORS.HALO_BLUE;\n }\n }\n }};\n color: ${({ variant }) => {\n switch (variant) {\n case \"destructive-secondary\":\n case \"destructive-ghost\": {\n return COLORS.RED;\n }\n case \"secondary-dark\": {\n return COLORS.HALO_BLUE;\n }\n case \"secondary\":\n case \"ghost\": {\n return COLORS.HALO_BLUE;\n }\n default: {\n return COLORS.WHITE;\n }\n }\n }};\n width: 100%;\n height: 100%;\n border-radius: 4px;\n ${({ size }) => {\n switch (size) {\n case \"md\":\n return FONTS.BUTTON_1;\n case \"lg\":\n return FONTS.HEADING_5_MEDIUM;\n default:\n return FONTS.BUTTON_2;\n }\n }}\n padding: ${({ size }) => (size === \"md\" ? \"0 24px\" : \"0 20px\")};\n transition: background-color 0.1s ease;\n`;\n\n// TODO: (overload119) Add support for various font sizes on StyledLink.\nconst StyledLink = styled(Link)`\n display: inline-block;\n ${BaseStyles}\n &:hover {\n text-decoration: none;\n }\n ${ButtonContent} {\n &:hover {\n text-decoration: none;\n }\n }\n`;\n","import { Tooltip } from \"@components/library\";\nimport { COLORS } from \"@constants\";\nimport styled from \"styled-components\";\nimport Icon, { IconName } from \"../Icon/Icon\";\nimport { BaseButtonProps } from \"./Button\";\n\ninterface Props extends BaseButtonProps {\n iconName: IconName;\n tooltipText?: string;\n tooltipWidth?: string;\n tooltipPosition?: \"top\" | \"bottom\";\n hideTooltip?: boolean;\n variant?:\n | \"primary\"\n | \"secondary\"\n | \"ghost\"\n | \"fourth\"\n | \"fifth\"\n | \"ghost-white\"\n | \"destructive-secondary\"\n | \"destructive-ghost\"\n | \"magic\";\n size?: \"xs\" | \"sm\" | \"md\";\n margin?: string | 0;\n shouldPortalTooltip?: boolean;\n \"data-testid\"?: string;\n}\n\nconst IconButton = ({\n iconName,\n tooltipText,\n tooltipWidth,\n tooltipPosition,\n hideTooltip = false,\n variant = \"primary\",\n size = \"sm\",\n margin = 0,\n shouldPortalTooltip = false,\n id,\n name,\n disabled,\n onClick,\n onMouseEnter,\n onMouseLeave,\n onFocus,\n onBlur,\n \"data-testid\": dataTestId,\n}: Props) => {\n let color = COLORS.WHITE;\n if (variant.includes(\"destructive\")) {\n color = COLORS.RED;\n } else if (variant === \"secondary\" || variant === \"ghost\") {\n color = COLORS.HALO_BLUE;\n } else if (variant === \"fourth\" || variant === \"fifth\") {\n color = COLORS.BLACK;\n } else if (variant === \"magic\") {\n color = COLORS.PINK_800;\n }\n\n const iconButton = (\n <Button\n variant={variant}\n size={size}\n margin={margin}\n id={id}\n name={name}\n type=\"button\"\n disabled={disabled}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onFocus={onFocus}\n onBlur={onBlur}\n data-testid={dataTestId}\n >\n <Icon name={iconName} size=\"md\" color={color} />\n </Button>\n );\n\n return hideTooltip ? (\n iconButton\n ) : (\n <Tooltip\n content={tooltipText ?? iconName ?? \"\"}\n tooltipWidth={tooltipWidth}\n position={tooltipPosition}\n remainOnHover={false}\n asPortal={shouldPortalTooltip}\n >\n {iconButton}\n </Tooltip>\n );\n};\n\nexport default IconButton;\n\nconst SIZES = {\n xs: \"26px\",\n sm: \"36px\",\n md: \"42px\",\n};\n\nconst Button = styled.button`\n display: flex;\n justify-content: center;\n align-items: center;\n height: ${({ size }) => SIZES[size]};\n width: ${({ size }) => SIZES[size]};\n background-color: ${({ variant }) => {\n switch (variant) {\n case \"destructive-secondary\": {\n return COLORS.RED_50;\n }\n case \"primary\": {\n return COLORS.HALO_BLUE;\n }\n case \"secondary\": {\n return COLORS.BLUE_LIGHT_250;\n }\n case \"fifth\": {\n return COLORS.WHITE;\n }\n case \"magic\": {\n return COLORS.PINK_50;\n }\n default: {\n return \"transparent\";\n }\n }\n }};\n border: ${({ variant }) => (variant === \"fifth\" ? `0.5px solid ${COLORS.NEUTRAL_300}` : \"none\")};\n border-radius: 4px;\n margin: ${({ margin }) => margin};\n\n &:hover {\n background-color: ${({ variant }) => {\n switch (variant) {\n case \"destructive-secondary\":\n case \"destructive-ghost\": {\n return COLORS.RED_100;\n }\n case \"secondary\": {\n return COLORS.BLUE_LIGHT_400;\n }\n case \"ghost\": {\n return COLORS.BLUE_LIGHT_300;\n }\n case \"fourth\": {\n return COLORS.NEUTRAL_200;\n }\n case \"fifth\": {\n return COLORS.NEUTRAL_50;\n }\n case \"ghost-white\": {\n return `${COLORS.WHITE}19`;\n }\n case \"magic\": {\n return COLORS.PINK_100;\n }\n default: {\n return COLORS.BLUE_600;\n }\n }\n }};\n }\n\n &:active {\n outline: none;\n background-color: ${({ variant }) => {\n switch (variant) {\n case \"destructive-secondary\":\n case \"destructive-ghost\": {\n return COLORS.RED_200;\n }\n case \"secondary\": {\n return COLORS.BLUE_LIGHT_500;\n }\n case \"ghost\": {\n return COLORS.BLUE_LIGHT_400;\n }\n case \"fourth\": {\n return COLORS.NEUTRAL_300;\n }\n case \"fifth\": {\n return COLORS.NEUTRAL_100;\n }\n case \"ghost-white\": {\n return `${COLORS.WHITE}33`;\n }\n case \"magic\": {\n return COLORS.PINK_200;\n }\n default: {\n return COLORS.BLUE_650;\n }\n }\n }};\n }\n\n &:focus:not(:active) {\n outline: 2px solid ${COLORS.WHITE};\n box-shadow: 0 0 0 3px ${COLORS.HALO_BLUE};\n\n ${({ variant }) =>\n variant === \"ghost-white\" &&\n `\n outline: none;\n box-shadow: 0 0 0 1px ${COLORS.HALO_BLUE};\n background-color: ${COLORS.WHITE}19;\n `}\n\n ${({ variant }) =>\n variant.includes(\"destructive\") &&\n `\n outline: none;\n box-shadow: 0 0 0 1px ${COLORS.RED};\n background-color: ${COLORS.RED_100};\n `}\n }\n\n &:disabled {\n opacity: 0.4;\n pointer-events: none;\n }\n`;\n","import { COLORS } from \"@constants\";\nimport styled from \"styled-components\";\nimport Icon from \"../Icon/Icon\";\n\nexport type SortDirection = \"NONE\" | \"DESC\" | \"ASC\";\n\ninterface SortState {\n color: string;\n inverted: boolean;\n next: SortDirection;\n}\n\nconst SORT_STATES = new Map<SortDirection, SortState>([\n [\n \"NONE\",\n {\n color: COLORS.NEUTRAL_300,\n inverted: false,\n next: \"DESC\",\n },\n ],\n [\n \"DESC\",\n {\n color: COLORS.BLACK,\n inverted: false,\n next: \"ASC\",\n },\n ],\n [\n \"ASC\",\n {\n color: COLORS.BLACK,\n inverted: true,\n next: \"NONE\",\n },\n ],\n]);\n\ninterface SortButtonProps {\n sortDirection: SortDirection;\n setSortDirection: (newSortDirection: SortDirection) => any;\n margin?: string;\n}\n\nconst SortButton = ({ sortDirection = \"NONE\", setSortDirection, margin }: SortButtonProps) => {\n const state = SORT_STATES.get(sortDirection);\n return (\n <IconContainer\n inverted={state!.inverted}\n onClick={() => setSortDirection(state!.next)}\n title=\"Change Sort\"\n >\n <Icon size=\"xs\" name=\"Sort\" margin={margin} color={state!.color} />\n </IconContainer>\n );\n};\n\nexport default SortButton;\n\nconst IconContainer = styled.button`\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: inherit;\n ${({ inverted }) => inverted && \"transform: scaleY(-1);\"}\n`;\n","import { COLORS } from \"@constants\";\nimport styled from \"styled-components\";\nimport Icon from \"../Icon\";\nimport { DropdownOptionGroup } from \"./DropdownOption\";\n\nconst DropdownGroup = (data: DropdownOptionGroup) => (\n <>\n {data.hasDivider && <Divider />}\n <Label>\n {data.iconName && <Icon name={data.iconName} size=\"xs\" color={COLORS.NEUTRAL_350} />}\n {data.label}\n </Label>\n </>\n);\n\nexport default DropdownGroup;\n\nconst Divider = styled.div`\n width: calc(100% + 24px);\n height: 1px;\n background-color: ${COLORS.NEUTRAL_200};\n margin: 12px -12px;\n`;\n\nconst Label = styled.div`\n display: flex;\n align-items: center;\n gap: 6px;\n margin-top: 5px;\n`;\n","import Icon, { IconName } from \"@components/library/Icon/Icon\";\nimport { COLORS, FONTS, WINDOW_DIMENSIONS } from \"@constants\";\nimport { ReactElement } from \"react\";\nimport styled from \"styled-components\";\n\nexport interface DropdownOption {\n value: string;\n label: string;\n}\n\nexport interface DropdownOptionGroup {\n label: string;\n hasDivider?: boolean;\n iconName?: IconName;\n options: DropdownOption[];\n}\n\nexport type DropdownOptionOrGroup = DropdownOption | DropdownOptionGroup;\n\nexport interface ExtendedDropdownOption extends DropdownOption {\n onSelect?: (...args: any[]) => any;\n iconName?: IconName;\n optionDescription?: string;\n optionColor?: string;\n rightLabelEl?: ReactElement;\n isDisabled?: boolean;\n}\n\nexport interface ExtendedDropdownOptionGroup extends DropdownOptionGroup {\n options: ExtendedDropdownOption[];\n}\n\nexport type ExtendedDropdownOptionOrGroup = ExtendedDropdownOption | ExtendedDropdownOptionGroup;\n\n// Only used in SelectableDropdown\nexport const OptionLabel = (option: ExtendedDropdownOption, metaData) => {\n const isActive = metaData.selectValue[0]?.value === option.value;\n\n return (\n <Option color={option.optionColor} optionDescription={option.optionDescription}>\n {option.iconName ? (\n <Icon\n name={option.iconName}\n margin=\"0 10px 0 0\"\n color={isActive ? COLORS.HALO_BLUE : option.optionColor}\n />\n ) : null}\n <Content>\n <LabelContainer>\n {option.label}\n {option.rightLabelEl}\n </LabelContainer>\n {option.optionDescription && (\n <OptionDescription isDisabled={option.isDisabled}>\n {option.optionDescription}\n </OptionDescription>\n )}\n </Content>\n </Option>\n );\n};\n\n// Only used in MoreActionsDropdown\nexport const MoreActionsOptionLabel = (option: ExtendedDropdownOption) => {\n return (\n <MoreActionsOption color={option.optionColor} optionDescription={option.optionDescription}>\n {option.iconName ? (\n <Icon name={option.iconName} margin=\"0 10px 0 0\" color={option.optionColor} />\n ) : null}\n <Content>\n <LabelContainer>\n {option.label}\n {option.rightLabelEl}\n </LabelContainer>\n {option.optionDescription && (\n <OptionDescription isDisabled={option.isDisabled}>\n {option.optionDescription}\n </OptionDescription>\n )}\n </Content>\n </MoreActionsOption>\n );\n};\n\nconst Option = styled.div`\n display: flex;\n color: ${({ color }) => color};\n align-items: ${({ optionDescription }) => (optionDescription ? \"flex-start\" : \"center\")};\n ${FONTS.REGULAR_2};\n`;\n\nconst MoreActionsOption = styled(Option)`\n ${FONTS.SEMIBOLD_2};\n`;\n\nconst Content = styled.div`\n width: 100%;\n`;\n\nconst LabelContainer = styled.div`\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n`;\n\nconst OptionDescription = styled.div`\n ${FONTS.REGULAR_3};\n color: ${({ isDisabled }) => (isDisabled ? COLORS.NEUTRAL_350 : COLORS.NEUTRAL_400)};\n\n ${WINDOW_DIMENSIONS.MOBILE_MEDIA_QUERY} {\n display: none;\n }\n`;\n","import { usedPersonalEmail } from \"@utils/appUtils\";\nimport { Dispatch, FunctionComponent, SetStateAction } from \"react\";\nimport { OnChangeValue } from \"react-select\";\nimport Validator from \"validator\";\nimport UserDropdown, { UserOption } from \"./UserDropdown\";\n\ninterface DropdownProps {\n options: UserOption[];\n value: UserOption[];\n placeholder?: string;\n maxMenuHeight?: string;\n maxValueContainerHeight?: string;\n onChange: (any) => void;\n setError: Dispatch<SetStateAction<string>>;\n formatCreateLabel?: (input: string) => string;\n isPortal?: boolean;\n}\n\nconst EmailDropdown: FunctionComponent<DropdownProps> = ({\n options,\n value,\n maxMenuHeight = \"250px\",\n maxValueContainerHeight = \"unset\",\n placeholder = \"Search for teammates by name or email\",\n onChange,\n setError,\n formatCreateLabel = (input: string) => `Share with '${input}'`,\n isPortal = false,\n}) => {\n const handleChange = (newValue: OnChangeValue<UserOption, true>) => {\n const emails: string[] = newValue.map((e) => e.value);\n onChange(emails);\n\n // Check for invalid emails to set error\n let errorMsg = \"\";\n emails.forEach((email) => {\n if (!Validator.isEmail(email)) {\n errorMsg = `'${email}' is not a valid email address.`;\n } else if (usedPersonalEmail(email)) {\n errorMsg = `Please use a company email.`;\n }\n });\n\n setError(errorMsg);\n };\n\n return (\n <UserDropdown\n value={value}\n options={options}\n placeholder={placeholder}\n maxMenuHeight={maxMenuHeight}\n maxValueContainerHeight={maxValueContainerHeight}\n onChange={handleChange}\n formatCreateLabel={formatCreateLabel}\n creatable\n isPortal={isPortal}\n />\n );\n};\n\nexport default EmailDropdown;\n","import { COLORS, FONTS } from \"@constants\";\nimport styled from \"styled-components\";\n\nconst KeywordsDropdownCreateLabel = (inputValue: string) => (\n <Label>\n If none of these terms are good options, <Add>add {inputValue}</Add>\n </Label>\n);\n\nexport default KeywordsDropdownCreateLabel;\n\nconst Label = styled.div`\n ${FONTS.REGULAR_3}\n color: ${COLORS.NEUTRAL_400};\n`;\n\nconst Add = styled.button`\n text-decoration: underline;\n border: none;\n background: none;\n &:hover {\n cursor: pointer;\n }\n`;\n","import { COLORS, FONTS } from \"@constants\";\nimport styled from \"styled-components\";\nimport { Checkbox, CheckboxText } from \"../MultiSelectDropdown\";\n\nconst KeywordsDropdownOption = ({\n innerRef,\n innerProps,\n isSelected,\n label,\n data: { __isNew__ },\n}) => {\n return (\n // eslint-disable-next-line\n <CheckboxLabel ref={innerRef} {...innerProps} isSelected={isSelected} isNew={__isNew__}>\n {!__isNew__ && (\n <Checkbox isSelected={isSelected}>\n {isSelected && (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M11.7851 3.31402C11.9568 3.47146 11.9684 3.73832 11.811 3.91007L5.62349 10.6601C5.54573 10.7449 5.43671 10.7943 5.32166 10.7968C5.20662 10.7993 5.09555 10.7547 5.01419 10.6733L2.20169 7.86081C2.03694 7.69606 2.03694 7.42894 2.20169 7.26419C2.36644 7.09944 2.63356 7.09944 2.79831 7.26419L5.29925 9.76513L11.189 3.33993C11.3465 3.16818 11.6133 3.15658 11.7851 3.31402Z\"\n fill=\"white\"\n stroke=\"white\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </Checkbox>\n )}\n <CheckboxText>{label}</CheckboxText>\n </CheckboxLabel>\n );\n};\n\nexport default KeywordsDropdownOption;\n\nconst CheckboxLabel = styled.label`\n display: flex;\n align-items: center;\n ${({ isSelected }) => (isSelected ? FONTS.MEDIUM_2 : FONTS.REGULAR_2)};\n color: ${({ isSelected }) => (isSelected ? COLORS.HALO_BLUE : COLORS.BLACK)};\n margin: 0;\n padding: 10px 14px;\n border-radius: 4px;\n\n ${({ isNew }) =>\n isNew\n ? `padding: 6px 14px 0;`\n : `\n cursor: pointer;\n &:hover {\n background-color: ${COLORS.NEUTRAL_100};\n }\n `}\n`;\n","import IconButton from \"@components/library/Buttons/IconButton\";\nimport MultiSelectDropdown from \"@components/library/Dropdowns/MultiSelectDropdown\";\nimport { COLORS, FONTS } from \"@constants\";\nimport {\n createKeyword,\n getAreasOfExpertise,\n getDisciplines,\n getKeywordSuggestionsBySimilarity,\n} from \"@requests/keywords\";\nimport { SegmentEventName } from \"@tsTypes/__generated__/enums\";\nimport { KeywordType } from \"@tsTypes/keywords\";\nimport { track } from \"@utils/appUtils\";\nimport { getOptionFromValue, getValueFromOption } from \"@utils/dropdownUtils\";\nimport { t } from \"@utils/i18n\";\nimport debounce from \"debounce-promise\";\nimport Fuse from \"fuse.js\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { ActionMeta } from \"react-select\";\nimport styled from \"styled-components\";\nimport type { DropdownOption, DropdownOptionOrGroup } from \"../DropdownOption\";\nimport KeywordsDropdownCreateLabel from \"./KeywordsDropdownCreateLabel\";\nimport KeywordsDropdownOption from \"./KeywordsDropdownOption\";\n\ntype SuggestedDropdownOption = DropdownOption & { suggested?: boolean };\n\nconst KEYWORD_TYPE_TO_CLASS = {\n discipline: \"Discipline\",\n area_of_expertise: \"AreaOfExpertise\",\n} as const;\n\nconst ANALYTICS_UI_COMPONENT = \"keywords_dropdown\";\nenum SuggestionType {\n INPUT_SUGGESTION = \"input_suggestion\", // AI-suggested keywords based on input\n VALUE_SUGGESTION = \"value_suggestion\", // AI-suggested keywords based on selected values\n CREATED = \"created\", // User-created keyword\n NONE = \"none\", // From normal dropdown options\n}\n\nconst MAX_DISCIPLINES = 3;\nconst MAX_AREAS_OF_EXPERTISE = 10;\n// Keyword minimums only apply to scientists and requests\nconst MIN_DISCIPLINES = 1;\nexport const MIN_AREAS_OF_EXPERTISE = 3;\n\ninterface Props {\n keywordType: KeywordType;\n targetType:\n | \"scientist\"\n | \"sponsor\"\n | \"university_admin\"\n | \"request\"\n | \"company_research_interest\";\n currentUserKeywords?: {\n disciplines?: string[];\n areas_of_expertise?: string[];\n };\n value: string[];\n onChange: (selection: string[]) => void;\n label?: string;\n labelFont?: string;\n instructionText?: string;\n placeholder?: string;\n // NOTE: withSuggestions and autoPopulateFn are mutually exclusive, in order to not confuse/overwhelm users with both features\n withSuggestions?: boolean;\n autoPopulateFn?: () => void;\n menuPlacement?: \"top\" | \"auto\" | \"bottom\";\n isPortal?: boolean;\n maxMenuHeight?: string;\n maxValueContainerHeight?: string;\n helpText?: string;\n errors?: { hasError: boolean; errorMessage: string }[];\n isDisabled?: boolean;\n}\n\nconst KeywordsDropdown = ({\n keywordType,\n targetType,\n currentUserKeywords,\n value,\n onChange,\n label,\n labelFont,\n instructionText,\n placeholder,\n withSuggestions = true,\n autoPopulateFn,\n menuPlacement,\n isPortal = false,\n maxMenuHeight,\n maxValueContainerHeight = \"unset\",\n helpText,\n errors,\n isDisabled = false,\n}: Props) => {\n const [allKeywords, setAllKeywords] = useState<string[]>([]);\n const [suggestions, setSuggestions] = useState<string[]>([]);\n const [defaultOptions, setDefaultOptions] = useState<DropdownOptionOrGroup[]>([]);\n const [options, setOptions] = useState<DropdownOptionOrGroup[]>([]);\n const [isInputSuggestionsLoading, setIsInputSuggestionsLoading] = useState(false);\n\n // Grab set of raw keywords\n useEffect(() => {\n (async () => {\n let keywords: string[] = [];\n switch (keywordType) {\n case \"discipline\":\n keywords = await getDisciplines();\n break;\n case \"area_of_expertise\":\n keywords = await getAreasOfExpertise();\n break;\n }\n setAllKeywords(keywords);\n\n let _options: DropdownOptionOrGroup[] = [];\n const usedKeywords: string[] = [];\n if (currentUserKeywords?.disciplines?.length) {\n _options.push({\n label: \"Your disciplines\",\n options: currentUserKeywords.disciplines.map(getOptionFromValue) as DropdownOption[],\n });\n usedKeywords.push(...currentUserKeywords.disciplines);\n }\n if (currentUserKeywords?.areas_of_expertise?.length) {\n _options.push({\n label: \"Your areas of expertise\",\n options: currentUserKeywords.areas_of_expertise.map(\n getOptionFromValue\n ) as DropdownOption[],\n });\n usedKeywords.push(...currentUserKeywords.areas_of_expertise);\n }\n\n // Add normal keywords excluding extra groups\n if (usedKeywords.length) {\n _options.push({\n label: \"All options\",\n options: keywords\n .filter((keyword) => !usedKeywords.includes(keyword))\n .map(getOptionFromValue) as DropdownOption[],\n });\n } else {\n // Add options without group label if no extra groups were created\n _options = keywords.map(getOptionFromValue) as DropdownOption[];\n }\n setDefaultOptions(_options);\n setOptions(_options);\n })();\n }, []);\n\n // Suggestions\n const debouncedGetKeywordSuggestionsForValue = useCallback(\n debounce(getKeywordSuggestionsBySimilarity, 500),\n []\n );\n const debouncedGetKeywordSuggestionsForInput = useCallback(\n debounce(getKeywordSuggestionsBySimilarity, 500),\n []\n );\n const getSuggestionsForValue = async (values: string[], withDebounce = true) => {\n if (!withSuggestions) return;\n\n if (values.length === 0) {\n setSuggestions([]);\n return;\n }\n setSuggestions(\n withDebounce\n ? await debouncedGetKeywordSuggestionsForValue(values, KEYWORD_TYPE_TO_CLASS[keywordType])\n : await getKeywordSuggestionsBySimilarity(values, KEYWORD_TYPE_TO_CLASS[keywordType])\n );\n };\n const getSuggestionsForInput = async (input: string): Promise<string[]> => {\n if (input.length === 0 || !withSuggestions) {\n return [];\n }\n return debouncedGetKeywordSuggestionsForInput([input], KEYWORD_TYPE_TO_CLASS[keywordType]);\n };\n\n // Format options into groups\n const formatOptionsWithSuggestions = (keywords: string[], querySuggestions: string[]) => {\n const _options: DropdownOptionOrGroup[] = keywords.map(getOptionFromValue) as DropdownOption[];\n if (querySuggestions.length > 0) {\n _options.push({\n hasDivider: keywords.length > 0,\n iconName: \"Magic\",\n label: \"Alternative terms\",\n options: querySuggestions\n .filter((keyword) => !keywords.includes(keyword) && !value.includes(keyword))\n .map((v) => ({\n ...getOptionFromValue(v),\n suggested: true,\n })) as SuggestedDropdownOption[],\n });\n }\n return _options;\n };\n\n // Filtering - fuzzy match + input suggestions\n // We're manually controlling options to allow for async input suggestions\n const fuse = useMemo(() => new Fuse(allKeywords, { threshold: 0.4 }), [allKeywords]);\n const handleInputChange = (input: string): void => {\n if (input.length === 0) {\n setOptions(defaultOptions);\n return;\n }\n\n // Immediately populate fuzzy match filtered options\n const result = fuse.search(input);\n\n const keywords = result.map((r: any) => r.item).slice(0, 50);\n setOptions(formatOptionsWithSuggestions(keywords, []));\n\n if (keywords.length > 10) return;\n\n // Fetch suggestions (async and debounced) and populate at bottom later\n if (keywords.length === 0) setIsInputSuggestionsLoading(true);\n getSuggestionsForInput(input).then((inputSuggestions: string[]) => {\n setOptions(formatOptionsWithSuggestions(keywords, inputSuggestions));\n setIsInputSuggestionsLoading(false);\n });\n };\n\n const handleChange = (e: SuggestedDropdownOption[], actionMeta?: ActionMeta<DropdownOption>) => {\n const newValues = e.map(getValueFromOption) as string[];\n\n if (withSuggestions) getSuggestionsForValue(newValues);\n\n onChange(newValues);\n\n if (actionMeta?.action === \"select-option\") {\n track(SegmentEventName.Click, {\n ui_component: ANALYTICS_UI_COMPONENT,\n suggestion_type: e.at(-1)!.suggested ? \"input_suggestion\" : \"none\",\n keyword: e.at(-1)!.value,\n });\n }\n };\n\n const handleCreateOption = async (input: string) => {\n await createKeyword(input, KEYWORD_TYPE_TO_CLASS[keywordType]);\n const newValues = [...value, input];\n getSuggestionsForValue(newValues);\n onChange(newValues);\n\n track(SegmentEventName.Click, {\n ui_component: ANALYTICS_UI_COMPONENT,\n suggestion_type: SuggestionType.CREATED,\n keyword: input,\n });\n };\n\n const testid = `${keywordType}-dropdown`;\n\n let minValues = 0;\n if ([\"scientist\", \"request\"].includes(targetType)) {\n minValues = keywordType === \"discipline\" ? MIN_DISCIPLINES : MIN_AREAS_OF_EXPERTISE;\n }\n const maxValues = keywordType === \"discipline\" ? MAX_DISCIPLINES : MAX_AREAS_OF_EXPERTISE;\n\n const labelEl = (\n <>\n {label ?? \"\"}\n {Boolean(instructionText ?? (minValues || maxValues)) && (\n <InstructionText>\n {instructionText ?? \"\"}\n {`${instructionText ? \" \" : \"\"}${(() => {\n if (minValues && maxValues) {\n return t(\"components.keywords_dropdown.instructions.min_and_max\", {\n min: minValues,\n max: maxValues,\n });\n }\n if (minValues)\n return t(\"components.keywords_dropdown.instructions.min\", { min: minValues });\n if (maxValues)\n return t(\"components.keywords_dropdown.instructions.max\", { max: maxValues });\n })()}`}\n </InstructionText>\n )}\n </>\n );\n\n const placeholderText =\n placeholder ?? t([\"components.keywords_dropdown.placeholder\", keywordType]);\n\n return (\n <div>\n <MultiSelectDropdown\n isPortal={isPortal}\n maxMenuHeight={maxMenuHeight}\n maxValueContainerHeight={maxValueContainerHeight}\n maxValues={maxValues}\n menuPlacement={menuPlacement}\n components={{ Option: KeywordsDropdownOption }}\n indicatorButton={\n autoPopulateFn ? (\n <IconButton\n iconName=\"Magic Refresh\"\n tooltipText=\"Refresh\"\n variant=\"magic\"\n size=\"xs\"\n onClick={() => {\n autoPopulateFn?.();\n\n track(SegmentEventName.Click, {\n ui_component: \"Auto-Populate Refresh Button\",\n react_component: \"KeywordsDropdown\",\n keyword_type: keywordType,\n target_type: targetType,\n });\n }}\n />\n ) : undefined\n }\n formatCreateLabel={KeywordsDropdownCreateLabel}\n onChange={handleChange}\n options={options}\n label={labelEl}\n labelFont={labelFont}\n placeholder={placeholderText}\n value={value.map((text) => ({ value: text, label: text }))}\n helpText={helpText}\n errors={errors}\n onInputChange={handleInputChange}\n filterOption={() => true} // Allow all options to pass filter since we're manually controlling them\n isLoading={isInputSuggestionsLoading}\n isCreatable\n onCreateOption={handleCreateOption}\n withSearchIcon\n withChevronIcon={false}\n data-testid={testid}\n isDisabled={isDisabled}\n />\n {withSuggestions &&\n (suggestions ?? []).length > 0 &&\n value.length > 0 &&\n (!maxValues || value.length < maxValues) && (\n <SuggestionsContainer>\n <div>\n Suggested:{\" \"}\n {suggestions.map((suggestion, index) => (\n <span key={suggestion}>\n {index > 0 && \", \"}\n <Suggestion\n onClick={() => {\n setSuggestions(suggestions.filter((s) => s !== suggestion));\n onChange([...value, suggestion]);\n track(SegmentEventName.Click, {\n ui_component: ANALYTICS_UI_COMPONENT,\n suggestion_type: SuggestionType.VALUE_SUGGESTION,\n keyword: suggestion,\n });\n }}\n >\n {suggestion}\n </Suggestion>\n </span>\n ))}\n </div>\n <IconButton\n iconName=\"Magic Refresh\"\n tooltipText=\"Refresh\"\n variant=\"fourth\"\n onClick={() => {\n getSuggestionsForValue(value, false);\n track(SegmentEventName.Click, {\n ui_component: \"Refresh Button\",\n react_component: \"KeywordsDropdown\",\n num_remaining_suggestions: suggestions.length,\n });\n }}\n margin=\"0 0 0 auto\"\n />\n </SuggestionsContainer>\n )}\n </div>\n );\n};\n\nexport default KeywordsDropdown;\n\nconst InstructionText = styled.div`\n ${FONTS.REGULAR_2};\n color: ${COLORS.BLACK};\n`;\nconst SuggestionsContainer = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-grow: 1;\n margin-top: 10px;\n height: 36px;\n ${FONTS.REGULAR_3};\n`;\nconst Suggestion = styled.button`\n padding: 0;\n text-decoration: underline;\n color: ${COLORS.BLACK};\n border: none;\n background: none;\n`;\n","import { IconButton } from \"@components/library\";\nimport { COLORS, FONTS } from \"@constants\";\nimport { SegmentEventName } from \"@tsTypes/__generated__/enums\";\nimport { track } from \"@utils/appUtils\";\nimport { ReactNode, useEffect, useState } from \"react\";\nimport Select, { components } from \"react-select\";\nimport styled from \"styled-components\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport DropdownGroup from \"./DropdownGroup\";\nimport { ExtendedDropdownOptionOrGroup, MoreActionsOptionLabel } from \"./DropdownOption\";\nimport DROPDOWN_STYLES from \"./dropdownStyles\";\n\ninterface Props {\n children?: ReactNode; // Trigger component. Defaults to a \"More Actions\" IconButton\n options: ExtendedDropdownOptionOrGroup[];\n margin?: string | 0;\n menuHorizontalPosition?: \"right\" | \"left\";\n menuWidth?: string;\n portal?: boolean;\n}\n\nconst DropdownIndicator = (props) => {\n return (\n // This is the recommended approach via the React-Select docs\n /* eslint-disable-next-line */ //@ts-ignore\n <components.DropdownIndicator {...props}>\n {props.selectProps.children ?? (\n <IconButton iconName=\"More Actions\" size=\"sm\" variant=\"ghost\" tooltipWidth=\"100px\" />\n )}\n </components.DropdownIndicator>\n );\n};\n\n// This dropdown is used when dropdown's value isn't tied to the selected option, as it is with\n// SelectableDropdown. Options can have various effects that may or may not be related to the\n// dropdown\nconst MoreActionsDropdown = ({\n children,\n options,\n margin = 0,\n menuHorizontalPosition,\n menuWidth,\n portal,\n}: Props) => {\n const [portalOffsetRight, setPortalOffsetRight] = useState(0);\n\n useEffect(() => {\n if (!portal) return;\n\n const element = document.getElementById(id);\n\n setPortalOffsetRight(window.innerWidth - Number(element?.getBoundingClientRect().right));\n }, [portal]);\n\n const id = uuidv4();\n\n return (\n <Dropdown\n id={id}\n components={{ DropdownIndicator }}\n classNamePrefix=\"Select\"\n options={options}\n formatOptionLabel={MoreActionsOptionLabel}\n formatGroupLabel={DropdownGroup}\n onChange={(e: ExtendedDropdownOptionOrGroup) => {\n if (\"options\" in e) return;\n track(SegmentEventName.Click, {\n ui_component: \"Option\",\n react_component: \"MoreActionsDropdown\",\n option: e.value,\n });\n e.onSelect!();\n }}\n margin={margin}\n menuPlacement=\"auto\"\n menuPosition={portal ? \"fixed\" : \"absolute\"}\n menuHorizontalPosition={menuHorizontalPosition}\n menuPortalTarget={portal && document.body}\n menuWidth={menuWidth ?? \"300px\"}\n styles={\n portal && {\n menu: (base) => ({\n ...base,\n padding: \"8px 0\",\n width: menuWidth,\n ...(menuHorizontalPosition === \"right\" && { right: 0 }),\n }),\n menuList: (base) => ({\n ...base,\n display: \"flex\",\n flexDirection: \"column\",\n }),\n menuPortal: (base) => ({\n ...base,\n zIndex: 9999,\n ...(menuHorizontalPosition === \"right\" && { right: portalOffsetRight, left: \"unset\" }),\n }),\n option: (base) => ({\n ...base,\n width: \"unset\",\n margin: \"0 12px\",\n cursor: \"pointer\",\n }),\n }\n }\n menuShouldBlockScroll={portal}\n >\n {children}\n </Dropdown>\n );\n};\n\nexport default MoreActionsDropdown;\n\nconst Dropdown = styled(Select)`\n ${DROPDOWN_STYLES};\n margin: ${({ margin }) => margin};\n\n .Select__control {\n background-color: transparent;\n border: none;\n min-height: unset;\n &:hover {\n &:not(.Select__control--is-focused) {\n border: none;\n }\n &.Select__control--is-focused {\n border: none;\n }\n }\n }\n .Select__control--is-focused {\n /* react-select uses !important for outline */\n outline: none !important;\n box-shadow: none;\n }\n .Select__control--menu-is-open {\n min-height: 0;\n height: inherit;\n }\n .Select__value-container {\n height: 0;\n width: 0;\n padding: 0;\n }\n .Select__indicator {\n margin-right: 0;\n }\n .Select__option {\n min-width: unset;\n }\n .Select__option--is-selected {\n ${FONTS.REGULAR_2};\n color: ${COLORS.BLACK};\n }\n .Select__indicators {\n align-items: flex-start;\n height: fit-content;\n }\n .Select__menu {\n width: fit-content;\n padding: 8px 0;\n ${({ menuWidth }) =>\n menuWidth &&\n `\n width: ${menuWidth};\n white-space: normal;\n `}\n ${({ menuHorizontalPosition }) =>\n menuHorizontalPosition &&\n `\n position: absolute;\n ${menuHorizontalPosition}: 0;\n `}\n }\n .Select__control:hover:not(.Select__control--is-focused) {\n border: none;\n }\n`;\n","/* eslint-disable react/jsx-props-no-spreading */\nimport { Icon } from \"@components/library\";\nimport { COLORS, FONTS } from \"@constants\";\nimport { isAsyncFunction } from \"@utils/appUtils\";\nimport debounce from \"debounce-promise\";\nimport { ReactElement, ReactNode, useRef } from \"react\";\nimport Select, {\n ActionMeta,\n ClearIndicatorProps,\n DropdownIndicatorProps,\n MultiValueRemoveProps,\n ValueContainerProps,\n components,\n createFilter,\n} from \"react-select\";\nimport AsyncSelect from \"react-select/async\";\nimport AsyncCreatableSelect from \"react-select/async-creatable\";\nimport CreatableSelect from \"react-select/creatable\";\nimport styled, { css } from \"styled-components\";\nimport FormLabel from \"../Texts/FormLabel\";\nimport DropdownGroup from \"./DropdownGroup\";\nimport type { DropdownOption, DropdownOptionOrGroup } from \"./DropdownOption\";\nimport DROPDOWN_STYLES, { MULTI_SELECT_TAG_STYLES } from \"./dropdownStyles\";\n\ninterface SelectProps {\n placeholder?: string;\n placeholderColor?: string;\n label?: string | ReactElement;\n labelFont?: string;\n labelBottomMargin?: string;\n isOptional?: boolean;\n // Height of menu (default 250px)\n maxMenuHeight?: string;\n // Height of value container\n maxValueContainerHeight?: string;\n maxValues?: number;\n menuPlacement?: \"bottom\" | \"auto\" | \"top\";\n // Custom rendering\n withSearchIcon?: boolean;\n withChevronIcon?: boolean;\n withCheckbox?: boolean;\n components?: any;\n indicatorButton?: ReactElement;\n formatCreateLabel?: (inputValue: string) => ReactNode;\n // For multi select (defaults true)\n isMulti?: boolean;\n // For sync search and single select\n closeOnMenuSelect?: boolean;\n options?: DropdownOptionOrGroup[];\n noOptionsMessage?: string;\n // For async search\n searchFn?: (query: string) => Promise<DropdownOptionOrGroup[]>;\n defaultOptions?: DropdownOptionOrGroup[];\n // For async and sync createable search\n isCreatable?: boolean;\n onCreateOption?: (value: string) => void;\n // For portal for dropdowns in modals or containers with hidden/scrollable overflow\n isPortal?: boolean;\n isClearable?: boolean;\n isDisabled?: boolean;\n helpText?: string;\n errors?: { hasError: boolean; errorMessage: string }[];\n filterOption?: (\n option: { value: string; label: string; data: any },\n inputValue: string\n ) => boolean;\n onInputChange?: (value: string, action: any) => void;\n isLoading?: boolean;\n \"data-testid\"?: string;\n}\n\ntype MultipleSelectProps = SelectProps & {\n value: DropdownOption[];\n onChange: (value: DropdownOption[], actionMeta?: ActionMeta<DropdownOption>) => void;\n};\n\nexport type SingleSelectProps = SelectProps & {\n value: DropdownOption | null;\n onChange: (value: DropdownOption | null, actionMeta?: ActionMeta<DropdownOption>) => void;\n};\n\ntype Props = MultipleSelectProps | SingleSelectProps;\n\nexport const Option = ({ innerRef, innerProps, isSelected, label, isFocused }) => {\n return (\n // From React-Select docs\n // eslint-disable-next-line\n <CheckboxLabel {...innerProps} ref={innerRef} isSelected={isSelected} isFocused={isFocused}>\n <Checkbox isSelected={isSelected} isFocused={isFocused}>\n {isSelected && (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M11.7851 3.31402C11.9568 3.47146 11.9684 3.73832 11.811 3.91007L5.62349 10.6601C5.54573 10.7449 5.43671 10.7943 5.32166 10.7968C5.20662 10.7993 5.09555 10.7547 5.01419 10.6733L2.20169 7.86081C2.03694 7.69606 2.03694 7.42894 2.20169 7.26419C2.36644 7.09944 2.63356 7.09944 2.79831 7.26419L5.29925 9.76513L11.189 3.33993C11.3465 3.16818 11.6133 3.15658 11.7851 3.31402Z\"\n fill=\"white\"\n stroke=\"white\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </Checkbox>\n <CheckboxText>{label}</CheckboxText>\n </CheckboxLabel>\n );\n};\n\nexport const NoCheckboxOption = ({ innerRef, innerProps, isSelected, isFocused, label }) => {\n return (\n <CheckboxLabel ref={innerRef} {...innerProps} isSelected={isSelected} isFocused={isFocused}>\n <CheckboxText>{label}</CheckboxText>\n </CheckboxLabel>\n );\n};\n\nconst ValueContainer = ({\n withSearchIcon,\n indicatorButton,\n}: {\n withSearchIcon?: boolean;\n indicatorButton?: ReactElement;\n}) => {\n const valueContainer = ({ children, ...props }: ValueContainerProps) => (\n <StyledValueContainer>\n {withSearchIcon && (\n <Icon name=\"Search\" color={COLORS.NEUTRAL_500} margin=\"5px -4px 5px 10px\" />\n )}\n <components.ValueContainer {...props}>{children}</components.ValueContainer>\n {indicatorButton && <IndicatorButtonContainer>{indicatorButton}</IndicatorButtonContainer>}\n </StyledValueContainer>\n );\n\n return valueContainer;\n};\n\nconst DropdownIndicator = (props: DropdownIndicatorProps) => {\n return (\n <components.DropdownIndicator {...props}>\n <Icon name=\"Chevron Down\" />\n </components.DropdownIndicator>\n );\n};\n\nexport const MultiValueRemove = (props: MultiValueRemoveProps) => {\n return (\n <components.MultiValueRemove {...props}>\n <Icon name=\"Close\" size=\"xs\" margin=\"0 0 0 8px\" />\n </components.MultiValueRemove>\n );\n};\n\nconst ClearIndicator = (props: ClearIndicatorProps) => {\n return (\n <components.ClearIndicator {...props}>\n <Icon name=\"X\" size=\"xs\" />\n </components.ClearIndicator>\n );\n};\n\nconst MultiSelectDropdown = ({\n options,\n value,\n onChange,\n placeholder = \"All\",\n placeholderColor = COLORS.NEUTRAL_500,\n isOptional = false,\n noOptionsMessage = \"No options\",\n label,\n labelFont = FONTS.SEMIBOLD_2,\n labelBottomMargin = \"8px\",\n maxMenuHeight = \"250px\",\n maxValueContainerHeight = \"unset\",\n maxValues,\n menuPlacement = \"auto\",\n withSearchIcon = false,\n withChevronIcon = true,\n withCheckbox = true,\n components: _components = {},\n indicatorButton,\n formatCreateLabel,\n isMulti = true,\n closeOnMenuSelect = false,\n searchFn,\n defaultOptions,\n isCreatable = false,\n onCreateOption,\n isPortal = false,\n isClearable = false,\n isDisabled = false,\n helpText,\n errors,\n filterOption = createFilter({ ignoreAccents: false }),\n onInputChange,\n isLoading = false,\n \"data-testid\": dataTestId,\n}: Props) => {\n const loadOptions = async (query: string, callback): Promise<void> => {\n if (!searchFn) {\n return;\n }\n if (isAsyncFunction(searchFn)) {\n const results = await searchFn(query);\n callback(results);\n } else {\n searchFn(query).then(callback);\n }\n };\n\n /**\n * Optimization: This will make the search feel faster in the instances when we use Fuse on the frontend\n * since the network call was fetched only once and the searchFn is not async.\n */\n const debouncedLoadOptions = isAsyncFunction(searchFn) ? debounce(loadOptions, 500) : loadOptions;\n\n const shouldHideOptions = maxValues && value instanceof Array && value.length >= maxValues;\n\n const hasAnyError = errors?.map((error) => error.hasError).includes(true);\n\n const AsyncDropdownComponent = isCreatable ? AsyncCreatableDropdown : AsyncDropdown;\n const SyncDropdownComponent = isCreatable ? SyncCreatableDropdown : SyncDropdown;\n\n const valueContainerRef = useRef(ValueContainer({ withSearchIcon, indicatorButton }));\n\n const dropdown = searchFn ? (\n <AsyncDropdownComponent\n classNamePrefix=\"Select\"\n placeholder={placeholder}\n placeholderColor={placeholderColor}\n components={{\n ...{\n Option,\n DropdownIndicator,\n MultiValueRemove,\n ClearIndicator,\n ValueContainer: valueContainerRef.current,\n },\n ..._components,\n }}\n formatGroupLabel={DropdownGroup}\n formatCreateLabel={formatCreateLabel}\n defaultOptions={defaultOptions}\n cacheOptions\n loadOptions={debouncedLoadOptions}\n value={value}\n onChange={onChange}\n isMulti={isMulti}\n hideSelectedOptions={false}\n closeMenuOnSelect={closeOnMenuSelect}\n maxMenuHeight={maxMenuHeight}\n maxValueContainerHeight={maxValueContainerHeight}\n menuIsOpen={shouldHideOptions ? false : undefined}\n noOptionsMessage={({ inputValue }) =>\n inputValue ? noOptionsMessage : \"Start typing to search\"\n }\n creatable={isCreatable}\n menuPlacement={menuPlacement}\n menuPosition={isPortal && \"absolute\"}\n menuPortalTarget={isPortal && document.body}\n menuShouldBlockScroll={isPortal}\n isClearable={isClearable}\n isDisabled={isDisabled}\n styles={{\n menuPortal: (base) => ({\n ...base,\n // Portalled dropdown menu list should display over everything\n zIndex: 9999,\n }),\n menuList: (base) => ({\n ...base,\n maxHeight: maxMenuHeight,\n }),\n }}\n hasError={hasAnyError}\n />\n ) : (\n <SyncDropdownComponent\n classNamePrefix=\"Select\"\n placeholder={placeholder}\n placeholderColor={placeholderColor}\n components={{\n ...{\n Option: withCheckbox ? Option : NoCheckboxOption,\n DropdownIndicator: withChevronIcon ? DropdownIndicator : () => null,\n MultiValueRemove,\n ClearIndicator,\n ValueContainer: valueContainerRef.current,\n },\n ..._components,\n }}\n formatGroupLabel={DropdownGroup}\n formatCreateLabel={formatCreateLabel}\n options={options}\n value={value}\n onChange={onChange}\n onInputChange={onInputChange}\n isLoading={isLoading}\n filterOption={filterOption}\n isMulti={isMulti}\n hideSelectedOptions={false}\n noOptionsMessage={() => noOptionsMessage}\n closeMenuOnSelect={closeOnMenuSelect}\n maxMenuHeight={maxMenuHeight}\n maxValueContainerHeight={maxValueContainerHeight}\n menuIsOpen={shouldHideOptions ? false : undefined}\n menuPlacement={menuPlacement}\n menuPosition={isPortal && \"absolute\"}\n menuPortalTarget={isPortal && document.body}\n menuShouldBlockScroll={isPortal}\n isClearable={isClearable}\n isDisabled={isDisabled}\n onCreateOption={onCreateOption}\n styles={{\n menuPortal: (base) => ({\n ...base,\n // Portalled dropdown menu list should display over everything\n zIndex: 9999,\n }),\n menuList: (base) => ({\n ...base,\n maxHeight: maxMenuHeight,\n }),\n }}\n hasError={hasAnyError}\n />\n );\n\n return (\n <Container>\n {label ? (\n <DropdownLabel>\n <FormLabel\n label={label}\n font={labelFont}\n hasError={hasAnyError}\n isOptional={isOptional}\n margin={`0 0 ${labelBottomMargin}`}\n />\n <span data-testid={dataTestId}>{dropdown}</span>\n </DropdownLabel>\n ) : (\n <span data-testid={dataTestId}>{dropdown}</span>\n )}\n {Number(helpText?.length) > 0 && <HelpText>{helpText}</HelpText>}\n {hasAnyError &&\n errors?.map(\n (error) =>\n error.hasError && (\n <ErrorMessage key={error.errorMessage}>\n <Icon name=\"Attention\" size=\"sm\" margin=\"0 8px 0 0\" color={COLORS.RED_500} />\n {error.errorMessage}\n </ErrorMessage>\n )\n )}\n </Container>\n );\n};\n\nexport default MultiSelectDropdown;\n\nconst IndicatorButtonContainer = styled.div`\n margin: 4px 8px 4px 0;\n`;\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 8px;\n width: 100%;\n`;\nconst CheckboxLabel = styled.label`\n display: flex;\n align-items: center;\n ${({ isSelected }) => (isSelected ? FONTS.MEDIUM_2 : FONTS.REGULAR_2)};\n color: ${({ isSelected }) => (isSelected ? COLORS.HALO_BLUE : COLORS.BLACK)};\n margin: 0;\n padding: 10px 14px;\n border-radius: 4px;\n cursor: pointer;\n background-color: ${({ isFocused }) => (isFocused ? COLORS.NEUTRAL_100 : \"inherit\")};\n`;\n// Also used in KeywordsDropdownOption\nexport const Checkbox = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n height: 18px;\n width: 18px;\n min-width: 18px;\n border-radius: 3px;\n border: 1px solid ${({ isSelected }) => (isSelected ? COLORS.HALO_BLUE : COLORS.BLACK)};\n margin-right: 10px;\n background-color: ${({ isSelected }) => (isSelected ? COLORS.HALO_BLUE : \"transparent\")};\n`;\nexport const CheckboxText = styled.span`\n overflow-wrap: break-word;\n white-space: normal;\n`;\n// Also used in SelectOrCreateDropdown\nexport const MultiSelectDropdownBaseStyles = css`\n .Select__control {\n flex-wrap: nowrap;\n border-radius: 6px;\n margin-top: 8px;\n ${({ hasError }) =>\n hasError &&\n `\n border-color: ${COLORS.RED_500};\n background-color: ${COLORS.RED_50};\n &:hover {\n &:not(.Select__control--is-focused) {\n border-color: ${COLORS.RED_500};\n }\n &.Select__control--is-focused {\n border-color: ${COLORS.RED_500};\n }\n }\n `}\n ${FONTS.REGULAR_2};\n }\n .Select__clear-indicator {\n ${({ isClearable }) => !isClearable && \"display: none;\"}\n }\n .Select__menu {\n ${FONTS.REGULAR_2};\n z-index: 9999;\n }\n .Select__menu-list {\n max-height: ${({ maxMenuHeight }) => maxMenuHeight};\n }\n ${({ maxValueContainerHeight }) => `\n .Select__value-container {\n max-height: ${maxValueContainerHeight};\n overflow-y: auto;\n }\n `}\n .Select__placeholder {\n color: ${({ placeholderColor }) => placeholderColor};\n }\n`;\nconst AsyncDropdown = styled(AsyncSelect)`\n ${DROPDOWN_STYLES};\n ${MULTI_SELECT_TAG_STYLES};\n ${MultiSelectDropdownBaseStyles};\n\n .Select__dropdown-indicator {\n display: none;\n }\n .Select__indicators {\n &:hover {\n opacity: 0.5;\n }\n }\n`;\nconst AsyncCreatableDropdown = styled(AsyncCreatableSelect)`\n ${DROPDOWN_STYLES};\n ${MULTI_SELECT_TAG_STYLES};\n ${MultiSelectDropdownBaseStyles};\n\n .Select__single-value {\n ${FONTS.REGULAR_2};\n }\n .Select__indicators {\n &:hover {\n opacity: 0.5;\n }\n }\n`;\nconst SyncDropdown = styled(Select)`\n ${DROPDOWN_STYLES};\n ${MULTI_SELECT_TAG_STYLES};\n ${MultiSelectDropdownBaseStyles};\n`;\nconst SyncCreatableDropdown = styled(CreatableSelect)`\n ${DROPDOWN_STYLES};\n ${MULTI_SELECT_TAG_STYLES};\n ${MultiSelectDropdownBaseStyles};\n`;\nconst DropdownLabel = styled.label`\n display: flex;\n flex-direction: column;\n width: 100%;\n margin: 0;\n`;\nexport const Optional = styled.span`\n position: relative;\n ${FONTS.MEDIUM_2};\n height: 21px;\n color: ${COLORS.NEUTRAL_500};\n margin-left: 16px;\n`;\nconst HelpText = styled.div`\n margin-top: 8px;\n ${FONTS.REGULAR_2};\n`;\nconst ErrorMessage = styled.div`\n display: flex;\n ${FONTS.MEDIUM_3};\n color: ${COLORS.RED_500};\n`;\nconst StyledValueContainer = styled.div`\n display: flex;\n flex: 1;\n flex-wrap: wrap;\n`;\n","import { Icon, ProfilePicture } from \"@components/library\";\nimport DROPDOWN_STYLES from \"@components/library/Dropdowns/dropdownStyles\";\nimport { COLORS, FONTS, STYLES } from \"@constants\";\nimport { User } from \"@tsTypes/schema\";\nimport { SponsorLicenseType } from \"@tsTypes/sponsorProfiles\";\nimport { Dispatch, FunctionComponent, SetStateAction } from \"react\";\nimport Select_, { MultiValueGenericProps, MultiValueRemoveProps, components } from \"react-select\";\nimport { default as CreatableSelect_ } from \"react-select/creatable\";\nimport styled from \"styled-components\";\nimport Validator from \"validator\";\nimport { AdminTag, LicenseTag } from \"../Tags/users\";\n\nexport interface UserOption {\n value: string; // email or user.id\n label: string; // email or name\n user: Pick<User, \"id\" | \"email\"> & {\n image: {\n medium: {\n url: string | null;\n };\n };\n name: string;\n profile_info: {\n license: SponsorLicenseType | null;\n isAdmin: boolean;\n };\n };\n __isNew__?: boolean;\n}\n\n// Customize label components both in value and menu\nconst formatOptionLabel = (option: UserOption, meta: any) => {\n if (meta.context === \"menu\") {\n if (option.__isNew__) {\n // Create label\n return <CreateLabel>{option.label}</CreateLabel>;\n }\n // Menu label\n return (\n <Option>\n <ProfilePicture size=\"sm\" margin={\"3px 0 0 \"} user={option.user} />\n <div>\n <LabelContainer>\n <OptionName>{option.label}</OptionName>\n <TagContainer>\n {option.user.profile_info.isAdmin && <AdminTag />}\n {option.user.profile_info.license && (\n <LicenseTag type={option.user.profile_info.license} />\n )}\n </TagContainer>\n </LabelContainer>\n <OptionEmail>{option.value}</OptionEmail>\n </div>\n </Option>\n );\n }\n // Value label\n return (\n <LabelText error={!Validator.isEmail(option.value)} data-testid=\"user-dropdown-tag\">\n {option.label}\n </LabelText>\n );\n};\n\n// Customize value remove icon\nconst MultiValueRemove = (props: MultiValueRemoveProps<UserOption>) => {\n return (\n // eslint-disable-next-line react/jsx-props-no-spreading\n <components.MultiValueRemove {...props}>\n <Icon\n name=\"X\"\n color={!Validator.isEmail(props.data.value) ? COLORS.RED : COLORS.BLACK}\n size=\"xs\"\n />\n </components.MultiValueRemove>\n );\n};\n\n// Customize value label with premium icon\nconst MultiValueLabel = (props: MultiValueGenericProps<UserOption>) => {\n const { children, ...otherProps } = props;\n // TODO: (justinpchang) Show premium tooltip\n return <components.MultiValueLabel {...otherProps}>{children}</components.MultiValueLabel>;\n};\n\ninterface DropdownProps {\n options: UserOption[];\n value: UserOption[];\n placeholder?: string;\n maxMenuHeight?: string;\n maxValueContainerHeight?: string;\n creatable?: boolean;\n onChange?: (any) => void;\n setError?: Dispatch<SetStateAction<string>>;\n formatCreateLabel?: (input: string) => string;\n isPortal?: boolean;\n}\n\nconst UserDropdown: FunctionComponent<DropdownProps> = ({\n options,\n value,\n onChange,\n maxMenuHeight = \"250px\",\n maxValueContainerHeight = \"unset\",\n formatCreateLabel,\n placeholder = \"Search for teammates by name or email\",\n creatable = false,\n isPortal = false,\n}) => {\n const Container = creatable ? CreatableSelect : Select;\n return (\n <div data-testid=\"user-dropdown\">\n <Container\n isMulti\n isClearable={false}\n value={value}\n onChange={onChange}\n options={options}\n placeholder={placeholder}\n classNamePrefix=\"Select\"\n maxMenuHeight={maxMenuHeight}\n maxValueContainerHeight={maxValueContainerHeight}\n components={{\n DropdownIndicator: () => null,\n IndicatorSeparator: () => null,\n MultiValueRemove,\n MultiValueLabel,\n }}\n formatOptionLabel={formatOptionLabel}\n formatCreateLabel={formatCreateLabel}\n noOptionsMessage={() => null}\n menuPosition={isPortal && \"absolute\"}\n menuPortalTarget={isPortal && document.body}\n styles={{\n multiValue: (base) => ({\n ...base,\n borderRadius: \"100px\",\n padding: \"0 3px\",\n fontSize: 14,\n }),\n multiValueRemove: (base) => ({\n ...base,\n borderRadius: \"100px\",\n \"&:hover\": {\n backgroundColor: COLORS.NEUTRAL_200,\n },\n }),\n menuPortal: (base) => ({\n ...base,\n zIndex: 9999,\n }),\n }}\n />\n </div>\n );\n};\n\nconst Select = styled(Select_)`\n ${DROPDOWN_STYLES};\n .Select__control {\n ${({ maxValueContainerHeight }) =>\n maxValueContainerHeight && `max-height: ${maxValueContainerHeight};`}\n overflow-y: auto;\n }\n .Select__menu-list {\n ${({ maxMenuHeight }) => `max-height: ${maxMenuHeight}`};\n }\n`;\n\nconst CreatableSelect = styled(CreatableSelect_)`\n ${DROPDOWN_STYLES};\n .Select__control {\n ${({ maxValueContainerHeight }) =>\n maxValueContainerHeight && `max-height: ${maxValueContainerHeight};`}\n overflow-y: auto;\n }\n .Select__menu-list {\n ${({ maxMenuHeight }) => `max-height: ${maxMenuHeight}`};\n }\n`;\n\nconst Option = styled.div`\n display: grid;\n grid-template-columns: 36px 1fr;\n grid-gap: 0 10px;\n align-items: flex-start;\n margin: 10px 8px;\n`;\n\nconst OptionName = styled.div`\n flex-grow: 1;\n ${FONTS.SEMIBOLD_2}\n ${STYLES.ONE_LINE}\n`;\n\nconst OptionEmail = styled.div`\n ${FONTS.REGULAR_3}\n ${STYLES.ONE_LINE}\n`;\n\nconst LabelText = styled.p`\n ${(props) => props.error && `color: ${COLORS.RED}`};\n`;\n\nconst CreateLabel = styled.span`\n ${FONTS.REGULAR_2}\n`;\n\nconst LabelContainer = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n\nconst TagContainer = styled.div`\n display: flex;\n align-items: center;\n gap: 8px;\n pointer-events: none;\n`;\n\nexport default UserDropdown;\n","import { COLORS, FONTS, STYLES } from \"@constants\";\nimport { css } from \"styled-components\";\n\n// Only make changes here that are intended to be applicable to all standard dropdowns!\n// This should go first in a dropdown's styles. If a particular dropdown needs specific\n// styles, that should go into that dropdown's styles\n\nconst DROPDOWN_STYLES = css`\n .Select__control {\n border: 1px solid ${COLORS.NEUTRAL_300};\n min-height: 36px;\n transition: initial;\n &:hover {\n &:not(.Select__control--is-focused) {\n border: 1px solid ${COLORS.NEUTRAL_400};\n cursor: pointer;\n }\n &.Select__control--is-focused {\n border: 1px solid ${COLORS.HALO_BLUE};\n }\n cursor: pointer;\n }\n }\n .Select__control--is-focused {\n box-shadow: none;\n border: 1px solid ${COLORS.HALO_BLUE};\n }\n .Select__placeholder {\n color: ${COLORS.NEUTRAL_500};\n ${FONTS.REGULAR_2};\n }\n .Select__input-container {\n ${FONTS.REGULAR_2};\n }\n .Select__indicator-separator {\n display: none;\n }\n .Select__indicator {\n color: ${COLORS.BLACK};\n margin-right: 10px;\n padding: 0;\n &:hover {\n color: ${COLORS.BLACK};\n }\n }\n .Select__menu {\n white-space: nowrap;\n width: 100%;\n border-radius: 8px;\n padding: 16px 12px;\n box-shadow: ${STYLES.SHADOW_B};\n cursor: default;\n }\n .Select__menu-list {\n max-height: unset;\n }\n .Select__group {\n padding: 0;\n }\n .Select__option {\n min-width: 225px;\n margin: 0 12px;\n width: calc(100% - 24px);\n border-radius: 4px;\n background-color: ${COLORS.WHITE};\n ${FONTS.REGULAR_2};\n cursor: pointer;\n &:hover {\n background-color: ${COLORS.NEUTRAL_100};\n }\n &:active {\n background-color: ${COLORS.NEUTRAL_200};\n }\n }\n .Select__option--is-selected {\n ${FONTS.MEDIUM_2};\n color: ${COLORS.HALO_BLUE};\n }\n`;\n\nexport default DROPDOWN_STYLES;\n\nexport const MULTI_SELECT_TAG_STYLES = css`\n .Select__input-container {\n margin: 0 2px;\n }\n .Select__multi-value {\n display: flex;\n align-items: center;\n height: 24px;\n background-color: ${COLORS.NEUTRAL_100};\n padding: 0 14px;\n border-radius: 100px;\n &:not(:last-of-type) {\n margin-right: 8px;\n }\n }\n .Select__multi-value__label {\n ${FONTS.MEDIUM_3};\n padding: 0;\n }\n .Select__multi-value__remove {\n padding: 0;\n &:hover {\n opacity: 0.4;\n background-color: transparent;\n }\n }\n`;\n","// USAGE:\n// 1. Copy the medium icon SVG code from Figma and add it as a new case to the switch statement in getSvg\n// 2. The icon's name is also listed in Figma and should be added to the IconName type (camelCase)\n// 3. Replace height and width with {size} and instances of hex color codes with {color}\n\nimport { COLORS } from \"@constants\";\nimport { Size } from \"@tsTypes/ui\";\nimport styled from \"styled-components\";\n\nexport interface IconProps {\n name: IconName;\n color?: string;\n size?: Size | number;\n margin?: string | 0;\n display?: string;\n \"data-testid\"?: string;\n}\n\nconst SIZES = {\n xxs: 10,\n xs: 16,\n sm: 20,\n md: 24,\n lg: 32,\n xl: 40,\n xxl: 56,\n};\n\nconst Icon = ({\n name,\n color = COLORS.BLACK,\n size = \"md\",\n margin = 0,\n display = \"flex\",\n \"data-testid\": dataTestId,\n}: IconProps) => {\n const numericSize = typeof size === \"number\" ? size : SIZES[size];\n\n const svg = getSvg(name, color, numericSize);\n\n if (!svg) return null;\n\n return (\n <IconContainer\n size={numericSize}\n margin={margin}\n display={display}\n data-testid={dataTestId ?? `${name}-icon`}\n >\n {svg}\n </IconContainer>\n );\n};\n\nexport default Icon;\n\nconst IconContainer = styled.div`\n height: ${({ size }) => `${size}px`};\n width: ${({ size }) => `${size}px`};\n margin: ${({ margin }) => margin};\n display: ${({ display }) => display};\n align-items: center;\n`;\n\nexport type IconName =\n | \"3D Printing\"\n | \"Accelerator\"\n | \"Accelerator Complete\"\n | \"Add\"\n | \"Add to collection\"\n | \"Adhesives\"\n | \"Agriculture\"\n | \"Arrow Left\"\n | \"Arrow Right\"\n | \"Arrow Right Filled\"\n | \"Arrow Up\"\n | \"Attachment\"\n | \"Attention\"\n | \"Attention Filled\"\n | \"Audio Mute\"\n | \"Audio Unmute\"\n | \"Australia\"\n | \"Avatar Edit\"\n | \"Bell\"\n | \"Block\"\n | \"Burger\"\n | \"Calendar\"\n | \"Canada\"\n | \"Change\"\n | \"Checkmark\"\n | \"Checkup\"\n | \"Chevron Down\"\n | \"Chevron Left\"\n | \"Chevron Right\"\n | \"Chevron Up\"\n | \"China\"\n | \"Close\"\n | \"Compounds\"\n | \"Copy\"\n | \"Crown\"\n | \"Data\"\n | \"Delete\"\n | \"Diamond\"\n | \"Download\"\n | \"Dot\"\n | \"Easy Apply\"\n | \"Edit\"\n | \"Employees\"\n | \"Evaluate\"\n | \"Expand\"\n | \"Expertise\"\n | \"Facebook\"\n | \"Filter\"\n | \"Filter & sort\"\n | \"Followers\"\n | \"Food\"\n | \"Frame\"\n | \"Funding\"\n | \"Help\"\n | \"Hide\"\n | \"History\"\n | \"Hygiene\"\n | \"Idea\"\n | \"India\"\n | \"Info\"\n | \"Info Small\"\n | \"Info Inverted\"\n | \"Invite\" // From a mockup, not the design system\n | \"Jewel\"\n | \"Lead Reviewer\"\n | \"LinkedIn\"\n | \"Location\"\n | \"Lock\"\n | \"Magic\"\n | \"Magic Full\"\n | \"Magic Refresh\"\n | \"Malaysia\"\n | \"Materials\"\n | \"Medal\"\n | \"Medicine\"\n | \"Message\"\n | \"Messaging\"\n | \"Mexico\"\n | \"Minimize\"\n | \"More Actions\"\n | \"Networking\"\n | \"Notification Filled\"\n | \"Open Call\"\n | \"Open Call Paused\"\n | \"Open Call Complete\"\n | \"Open in a new tab\"\n | \"Opportunity\"\n | \"Organization\"\n | \"Packaging\"\n | \"Paused\"\n | \"Play\" // From a mockup, not the design system\n | \"Private\"\n | \"Private Company\"\n | \"Profile\"\n | \"Proposal\"\n | \"Proposal Privacy\"\n | \"Publication\"\n | \"Public\"\n | \"Quota-Based RFP\"\n | \"Radio Small\"\n | \"Radio Small Filled\"\n | \"Reduce\"\n | \"Refresh\"\n | \"Reorder\"\n | \"Request for experts\"\n | \"RFP\"\n | \"RFP Complete\"\n | \"RFP Filled\"\n | \"Row height\"\n | \"Row height - short\"\n | \"Row height - medium\"\n | \"Row height - full\"\n | \"Save\"\n | \"Search\"\n | \"Send Message\"\n | \"Share\"\n | \"Sort\"\n | \"Sort By\"\n | \"Star\"\n | \"Status\"\n | \"Success\"\n | \"Technology\"\n | \"Thumb Down\"\n | \"Thumb Down Filled\"\n | \"Thumb Up\"\n | \"Thumb Up Filled\"\n | \"Tick\"\n | \"Twitter\"\n | \"Unlocked\"\n | \"Unsave\"\n | \"USA\"\n | \"Verified\"\n | \"View\"\n | \"Water\"\n | \"X\"\n | \"X Filled\"\n | undefined;\n\nconst getSvg = (name: IconName, color: string, size: number) => {\n switch (name) {\n case \"Request for experts\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g id=\"Group 434\">\n <path\n id=\"Subtract\"\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.41157 5.89988C7.65154 5.89988 8.65673 4.89469 8.65673 3.65473C8.65673 2.41477 7.65154 1.40958 6.41157 1.40958C5.17161 1.40958 4.16642 2.41477 4.16642 3.65473C4.16642 4.89469 5.17161 5.89988 6.41157 5.89988ZM6.41157 6.99696C8.25744 6.99696 9.7538 5.50059 9.7538 3.65473C9.7538 1.80887 8.25744 0.3125 6.41157 0.3125C4.56571 0.3125 3.06935 1.80887 3.06935 3.65473C3.06935 5.50059 4.56571 6.99696 6.41157 6.99696ZM8.60363 8.92966H4.21967C2.8059 8.92966 1.65982 10.0757 1.65982 11.4895V12.5844H11.1635V11.4895C11.1635 11.4047 11.1593 11.3208 11.1513 11.2381C11.4197 11.3143 11.7029 11.3551 11.9957 11.3551C12.084 11.3551 12.1713 11.3514 12.2577 11.3442C12.2596 11.3924 12.2605 11.4408 12.2605 11.4895V12.5844V13.6815H11.1635H1.65982H0.562744V12.5844V11.4895C0.562744 9.46984 2.2 7.83258 4.21967 7.83258H8.60363C8.71706 7.83258 8.8293 7.83775 8.9401 7.84786C8.92114 7.98611 8.91134 8.12729 8.91134 8.27075C8.91134 8.50711 8.93793 8.73726 8.98827 8.95837C8.86281 8.93946 8.73436 8.92966 8.60363 8.92966Z\"\n fill={color}\n />\n <path\n id=\"Star 97\"\n d=\"M13.0054 6.89685L14.4631 7.10867L13.4083 8.13687C13.2963 8.24599 13.2452 8.40322 13.2716 8.5573L13.5207 10.0091L12.2168 9.32368C12.0785 9.25093 11.9131 9.25093 11.7748 9.32368L10.4709 10.0091L10.7199 8.55731C10.7464 8.40322 10.6953 8.24599 10.5833 8.13687L9.5285 7.10867L10.9862 6.89685C11.1409 6.87437 11.2747 6.7772 11.3439 6.63701L11.9958 5.31608L12.6477 6.63701L12.9765 6.47474L12.6477 6.63701C12.7169 6.7772 12.8506 6.87437 13.0054 6.89685Z\"\n stroke={color}\n strokeWidth=\"0.75\"\n />\n </g>\n </svg>\n );\n }\n case \"Radio Small\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g>\n <circle cx=\"9\" cy=\"9\" r=\"8.5\" fill=\"none\" stroke={color} />\n </g>\n </svg>\n );\n }\n case \"Radio Small Filled\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g>\n <circle cx=\"9\" cy=\"9\" r=\"8.5\" fill=\"none\" stroke={color} />\n <circle cx=\"9\" cy=\"9\" r=\"5.5\" fill={color} stroke={color} />\n </g>\n </svg>\n );\n }\n case \"Accelerator\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g id=\"Name=Accelerator\">\n <path\n id=\"Icon\"\n d=\"M7.85531 13.6099C7.11962 15.7977 4.20268 15.7977 4.20268 15.7977C4.20268 15.7977 4.20268 12.8807 6.39038 12.145M10.043 12.8805L14.4249 8.49857C16.0834 6.84002 16.0641 5.18147 15.9608 4.47158C15.9462 4.36204 15.8959 4.26036 15.8178 4.18221C15.7396 4.10407 15.638 4.05381 15.5284 4.0392C14.8185 3.93594 13.16 3.91658 11.5015 5.57513L7.11964 9.95706M10.043 12.8805L7.11964 9.95706M10.043 12.8805L10.5851 15.5844C10.6033 15.6761 10.6461 15.7611 10.7089 15.8304C10.7716 15.8996 10.852 15.9506 10.9414 15.9777C11.0309 16.0049 11.126 16.0073 11.2167 15.9846C11.3074 15.9619 11.3902 15.9151 11.4563 15.849L13.5408 13.7581C13.638 13.6627 13.6937 13.5328 13.6956 13.3967V9.2277M7.11964 9.95706L4.41559 9.41515C4.32392 9.39692 4.23891 9.35415 4.16964 9.29139C4.10037 9.22863 4.04944 9.14825 4.02228 9.05881C3.99512 8.96937 3.99275 8.87424 4.01542 8.78356C4.03809 8.69288 4.08495 8.61006 4.151 8.54393L6.24191 6.45944C6.33723 6.36217 6.46712 6.3065 6.6033 6.30456H10.7722\"\n stroke={color}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </g>\n </svg>\n );\n }\n case \"Accelerator Complete\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g id=\"Name=Accelerator complete\">\n <path\n id=\"Icon\"\n d=\"M12.0673 14.0064L12.0672 7.80946C12.0672 5.46393 10.8808 4.30485 10.3058 3.8759C10.218 3.80877 10.1106 3.77241 10.0001 3.7724C9.88954 3.7724 9.7821 3.80877 9.69432 3.87589C9.11935 4.30484 7.9329 5.4639 7.93292 7.80943L7.93296 14.0064M12.0673 14.0064L7.93296 14.0064M12.0673 14.0064L14.3625 15.535C14.4403 15.587 14.5306 15.6168 14.624 15.6214C14.7173 15.6261 14.8102 15.6052 14.8926 15.5612C14.9751 15.5172 15.044 15.4516 15.0921 15.3714C15.1402 15.2913 15.1656 15.1996 15.1657 15.1061L15.1611 12.1537C15.1625 12.0175 15.11 11.8863 15.0151 11.7886L12.0672 8.84069M7.93296 14.0064L5.63773 15.5352C5.56001 15.5872 5.46966 15.617 5.3763 15.6216C5.28295 15.6262 5.19009 15.6054 5.10764 15.5614C5.0252 15.5173 4.95625 15.4517 4.90816 15.3716C4.86007 15.2914 4.83464 15.1997 4.83459 15.1063L4.83913 12.1538C4.83774 12.0176 4.89023 11.8864 4.98515 11.7888L7.93301 8.8409\"\n stroke={color}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </g>\n </svg>\n );\n }\n case \"Add to collection\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.5 5.75C5.5 4.23122 6.73122 3 8.25 3H15.75C17.2688 3 18.5 4.23122 18.5 5.75V20.2318C18.5 20.8318 17.8373 21.1952 17.3314 20.8726L12 17.4728L6.66863 20.8726C6.16272 21.1952 5.5 20.8318 5.5 20.2318V5.75ZM8.25 4.5C7.55964 4.5 7 5.05964 7 5.75V18.8822L11.5968 15.951C11.8427 15.7941 12.1573 15.7941 12.4032 15.951L17 18.8822V5.75C17 5.05964 16.4404 4.5 15.75 4.5H8.25Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"More Actions\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5 14C6.10457 14 7 13.1046 7 12C7 10.8954 6.10457 10 5 10C3.89543 10 3 10.8954 3 12C3 13.1046 3.89543 14 5 14ZM14 12C14 13.1046 13.1046 14 12 14C10.8954 14 10 13.1046 10 12C10 10.8954 10.8954 10 12 10C13.1046 10 14 10.8954 14 12ZM21 12C21 13.1046 20.1046 14 19 14C17.8954 14 17 13.1046 17 12C17 10.8954 17.8954 10 19 10C20.1046 10 21 10.8954 21 12Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Networking\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.9548 3.45615C11.5527 2.42068 7.75162 3.48451 5.40144 6.3301C5.96799 6.35317 6.53461 6.48337 7.06959 6.72616C8.85745 4.9601 11.3936 4.23709 13.7901 4.70956C13.8354 4.63716 13.883 4.56562 13.9329 4.49501C14.2233 4.08434 14.5699 3.73703 14.9548 3.45615ZM7.13943 19.4179C5.57497 18.3118 4.47029 16.7976 3.86773 15.1219C4.42426 15.2965 5.00292 15.3582 5.57117 15.3127C6.10518 16.4288 6.92329 17.4281 8.00535 18.193C8.6471 18.6467 9.33558 18.9854 10.0463 19.2133C10.0776 19.7863 10.2179 20.351 10.4616 20.8742C9.30074 20.6278 8.16989 20.1464 7.13943 19.4179ZM19.7645 11.0432C20.2582 10.7741 20.7076 10.4087 21.0826 9.95199C21.6711 12.3885 21.2446 15.0569 19.6839 17.2644C19.4604 17.5805 19.2203 17.8778 18.9656 18.156C18.8622 17.5938 18.6522 17.0509 18.3415 16.5603C18.3812 16.5071 18.4204 16.4531 18.459 16.3985C19.6035 14.7797 20.0162 12.8635 19.7645 11.0432ZM18.9668 8.0698C18.4407 8.8139 17.4111 8.99065 16.667 8.4646C15.9229 7.93854 15.7461 6.90888 16.2722 6.16478C16.7982 5.42069 17.8279 5.24393 18.572 5.76999C19.3161 6.29605 19.4929 7.32571 18.9668 8.0698ZM20.1916 8.93572C19.1873 10.3563 17.2216 10.6937 15.8011 9.68942C14.3805 8.68513 14.0431 6.71941 15.0474 5.29887C16.0517 3.87832 18.0174 3.54088 19.4379 4.54517C20.8585 5.54946 21.1959 7.51517 20.1916 8.93572ZM6.40371 11.6885C5.87765 12.4326 4.84799 12.6094 4.1039 12.0833C3.3598 11.5572 3.18304 10.5276 3.7091 9.78349C4.23516 9.03939 5.26482 8.86264 6.00891 9.38869C6.75301 9.91475 6.92976 10.9444 6.40371 11.6885ZM7.62853 12.5544C6.62424 13.975 4.65852 14.3124 3.23798 13.3081C1.81743 12.3038 1.47999 10.3381 2.48428 8.91757C3.48857 7.49703 5.45429 7.15958 6.87483 8.16387C8.29538 9.16816 8.63282 11.1339 7.62853 12.5544ZM13.5995 20.3425C14.3436 20.8686 15.3733 20.6918 15.8993 19.9477C16.4254 19.2036 16.2486 18.1739 15.5045 17.6479C14.7604 17.1218 13.7308 17.2986 13.2047 18.0427C12.6787 18.7868 12.8554 19.8164 13.5995 20.3425ZM12.7336 21.5673C14.1541 22.5716 16.1199 22.2342 17.1241 20.8136C18.1284 19.3931 17.791 17.4274 16.3704 16.4231C14.9499 15.4188 12.9842 15.7562 11.9799 17.1768C10.9756 18.5973 11.313 20.563 12.7336 21.5673Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"View\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M20.2725 12.6447C18.3794 14.3609 15.3141 16.5 11.9999 16.5C8.68574 16.5 5.62044 14.3609 3.72739 12.6447C3.32362 12.2786 3.32362 11.7214 3.72739 11.3553C5.62044 9.63914 8.68574 7.5 11.9999 7.5C15.3141 7.5 18.3794 9.63914 20.2725 11.3553C20.6763 11.7214 20.6763 12.2786 20.2725 12.6447ZM21.28 10.244C22.3404 11.2054 22.3404 12.7946 21.28 13.756C19.3268 15.5267 15.9004 18 11.9999 18C8.09944 18 4.6731 15.5267 2.71992 13.756C1.65944 12.7946 1.65944 11.2054 2.71992 10.244C4.6731 8.47332 8.09944 6 11.9999 6C15.9004 6 19.3268 8.47332 21.28 10.244ZM14.4999 12C14.4999 13.3807 13.3807 14.5 11.9999 14.5C10.6192 14.5 9.49994 13.3807 9.49994 12C9.49994 10.6193 10.6192 9.5 11.9999 9.5C13.3807 9.5 14.4999 10.6193 14.4999 12ZM15.9999 12C15.9999 14.2091 14.2091 16 11.9999 16C9.7908 16 7.99994 14.2091 7.99994 12C7.99994 9.79086 9.7908 8 11.9999 8C14.2091 8 15.9999 9.79086 15.9999 12Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Paused\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6 5.5H9C9.27614 5.5 9.5 5.72386 9.5 6V18C9.5 18.2761 9.27614 18.5 9 18.5H6C5.72386 18.5 5.5 18.2761 5.5 18V6C5.5 5.72386 5.72386 5.5 6 5.5ZM4 6C4 4.89543 4.89543 4 6 4H9C10.1046 4 11 4.89543 11 6V18C11 19.1046 10.1046 20 9 20H6C4.89543 20 4 19.1046 4 18V6ZM15 5.5H18C18.2761 5.5 18.5 5.72386 18.5 6V18C18.5 18.2761 18.2761 18.5 18 18.5H15C14.7239 18.5 14.5 18.2761 14.5 18V6C14.5 5.72386 14.7239 5.5 15 5.5ZM13 6C13 4.89543 13.8954 4 15 4H18C19.1046 4 20 4.89543 20 6V18C20 19.1046 19.1046 20 18 20H15C13.8954 20 13 19.1046 13 18V6Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Play\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M3.3335 2L12.6668 8L3.3335 14V2Z\"\n stroke={color}\n strokeWidth=\"1\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n case \"Tick\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.05285 12.412L8.98959 17.4396C9.19205 17.6458 9.52663 17.6379 9.71918 17.4225L19.8148 6.12484\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n case \"Messaging\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 40 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M36 16.4442V35.1109L30.7673 29.7776H16.4444C14.4808 29.7776 12.8889 28.1857 12.8889 26.222V16.4442C12.8889 14.4805 14.4808 12.8887 16.4444 12.8887H32.4444C34.4081 12.8887 36 14.4805 36 16.4442Z\"\n fill=\"#93CDFF\"\n />\n <path\n d=\"M4 8.44423V27.1109L9.2327 21.7776H23.5556C25.5192 21.7776 27.1111 20.1857 27.1111 18.222V8.44423C27.1111 6.48055 25.5192 4.88867 23.5556 4.88867H7.55556C5.59188 4.88867 4 6.48055 4 8.44423Z\"\n fill=\"#C6E5FF\"\n />\n </svg>\n );\n }\n case \"Location\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M18 10.1364C18 14.9091 12 19 12 19C12 19 6 14.9091 6 10.1364C6 8.5089 6.63214 6.94809 7.75736 5.7973C8.88258 4.64651 10.4087 4 12 4C13.5913 4 15.1174 4.64651 16.2426 5.7973C17.3679 6.94809 18 8.5089 18 10.1364Z\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M12 12C13.1046 12 14 11.1046 14 10C14 8.89543 13.1046 8 12 8C10.8954 8 10 8.89543 10 10C10 11.1046 10.8954 12 12 12Z\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n case \"Filter\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M20 7.75H4V6.25H20V7.75ZM18 12.75H6V11.25H18V12.75ZM9 17.75H15V16.25H9V17.75Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Filter & sort\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 25\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M0 8.5625H16V7.0625H0V8.5625ZM7.94778 17.0625C8.0498 17.5932 8.22736 18.0971 8.46883 18.5625H5V17.0625H7.94778ZM8.41358 13.5625C8.68831 13.0031 9.05437 12.4966 9.49232 12.0625H2V13.5625H8.41358Z\"\n fill={color}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n />\n <path\n d=\"M19.828 12.8231L19.828 20.5625M19.828 20.5625L22.8439 17.3449M19.828 20.5625L16.6104 17.3449\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M13.7824 20.5597L13.7824 12.8203M13.7824 12.8203L10.7665 16.0379M13.7824 12.8203L17 16.0379\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n case \"Notification Filled\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M17 9.35C17 7.86479 16.4732 6.44041 15.5355 5.3902C14.5979 4.34 13.3261 3.75 12 3.75C10.6739 3.75 9.40215 4.34 8.46447 5.3902C7.52678 6.44041 7 7.86479 7 9.35C7 15.4247 4.8387 17.0326 4.53524 17.2285C4.52573 17.2346 4.53144 17.25 4.54275 17.25H19.4572C19.4686 17.25 19.4743 17.2346 19.4648 17.2285C19.1613 17.0326 17 15.4247 17 9.35Z\"\n fill={color}\n stroke={color}\n strokeWidth=\"1.5\"\n />\n <path\n d=\"M8.72314 19C9.24737 20.281 10.517 21.1846 12.0001 21.1846C13.4831 21.1846 14.7528 20.281 15.277 19H8.72314Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Open Call\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.39988 7.51562V14.3191C8.40056 14.3922 8.38276 14.4644 8.34815 14.5288C8.31354 14.5932 8.26323 14.6478 8.20188 14.6876L7.59688 15.0891C7.53827 15.1283 7.47112 15.1527 7.40108 15.1605C7.33104 15.1683 7.26015 15.1591 7.19439 15.1338C7.12863 15.1084 7.06991 15.0677 7.02319 15.0149C6.97646 14.9622 6.94309 14.899 6.92588 14.8306L6.19988 11.9156\"\n stroke={color}\n strokeWidth=\"1.02997\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M6.2 11.9155C5.61652 11.9155 5.05695 11.6837 4.64437 11.2711C4.23179 10.8586 4 10.299 4 9.71551C4 9.13204 4.23179 8.57246 4.64437 8.15988C5.05695 7.7473 5.61652 7.51551 6.2 7.51551H8.4C8.4 7.51551 11.3975 7.51551 14.2795 5.10101C14.3436 5.04797 14.4214 5.01419 14.504 5.00359C14.5865 4.99299 14.6703 5.006 14.7458 5.04112C14.8212 5.07625 14.8851 5.13204 14.9301 5.20202C14.9751 5.272 14.9993 5.35331 15 5.43651V13.9945C14.9993 14.0777 14.9751 14.159 14.9301 14.229C14.8851 14.299 14.8212 14.3548 14.7458 14.3899C14.6703 14.425 14.5865 14.438 14.504 14.4274C14.4214 14.4168 14.3436 14.3831 14.2795 14.33C11.3975 11.9155 8.4 11.9155 8.4 11.9155H6.2Z\"\n stroke={color}\n strokeWidth=\"1.02997\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n case \"Open Call Paused\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.4383 4.49265C14.6174 4.46964 14.7994 4.49789 14.9631 4.57412C15.1268 4.65035 15.2656 4.77144 15.3632 4.92333C15.4609 5.07522 15.5135 5.2517 15.5149 5.43228L15.515 5.43228V5.43636V9.03269C15.3464 9.01102 15.1745 8.99985 15 8.99985C14.8255 8.99985 14.6536 9.01102 14.485 9.03269V5.59902C13.016 6.79486 11.5276 7.40217 10.3941 7.71048C9.8112 7.86903 9.32073 7.94892 8.97255 7.98921C8.79837 8.00936 8.65949 8.01964 8.56208 8.02488C8.51337 8.02751 8.475 8.02887 8.44773 8.02958L8.41524 8.03023L8.40542 8.03033L8.40214 8.03034L8.40092 8.03034L8.40041 8.03034C8.40018 8.03035 8.39997 8.03035 8.39997 7.51536V8.03035H6.19997C5.75308 8.03035 5.32448 8.20787 5.00848 8.52387C4.69248 8.83988 4.51495 9.26847 4.51495 9.71536C4.51495 10.1623 4.69248 10.5908 5.00848 10.9068C5.32448 11.2228 5.75308 11.4004 6.19997 11.4004H8.39997V11.9154C8.39997 11.4004 8.40018 11.4004 8.40041 11.4004L8.40092 11.4004L8.40214 11.4004L8.40542 11.4004L8.41524 11.4005L8.44773 11.4011C8.475 11.4018 8.51337 11.4032 8.56208 11.4058C8.65949 11.4111 8.79837 11.4214 8.97255 11.4415C9.32073 11.4818 9.8112 11.5617 10.3941 11.7202C10.6282 11.7839 10.8775 11.8604 11.1386 11.9521C11.0484 12.2853 11.0002 12.6358 11 12.9976C10.6893 12.8807 10.3951 12.7879 10.1238 12.7141C9.59712 12.5708 9.15808 12.4998 8.85417 12.4647C8.7023 12.4471 8.58449 12.4385 8.50671 12.4343C8.46783 12.4322 8.43899 12.4312 8.42094 12.4308L8.40207 12.4304L8.3996 12.4303L8.39929 12.4303L8.39898 12.4303H6.19997C5.47991 12.4303 4.78934 12.1443 4.28019 11.6351C3.77103 11.126 3.48499 10.4354 3.48499 9.71536C3.48499 8.9953 3.77103 8.30474 4.28019 7.79558C4.78934 7.28642 5.47991 7.00038 6.19997 7.00038H8.399L8.39929 7.00038L8.3996 7.00038L8.40207 7.00035L8.42094 6.99996C8.43899 6.99949 8.46783 6.9985 8.50671 6.99641C8.58449 6.99222 8.7023 6.98364 8.85417 6.96606C9.15808 6.9309 9.59712 6.85988 10.1238 6.71662C11.1773 6.43007 12.5761 5.85612 13.9487 4.70611L13.9487 4.7061L13.9512 4.7041C14.0903 4.58897 14.2592 4.51565 14.4383 4.49265Z\"\n fill={color}\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.39979 7C8.11537 7 7.88481 7.23057 7.88481 7.51498V14.2793L7.39955 14.6013L6.69951 11.7905C6.63077 11.5145 6.35132 11.3465 6.07533 11.4153C5.79935 11.484 5.63134 11.7635 5.70007 12.0394L6.42607 14.9544L6.4264 14.9557C6.46374 15.1041 6.53617 15.2412 6.63759 15.3557C6.739 15.4702 6.86644 15.5587 7.00917 15.6137C7.1519 15.6687 7.30574 15.6886 7.45777 15.6717C7.60948 15.6549 7.75494 15.6019 7.88197 15.5173C7.88223 15.5171 7.88249 15.517 7.88275 15.5168L8.48475 15.1173C8.61759 15.0305 8.72657 14.9117 8.8017 14.7719C8.87689 14.6319 8.91576 14.4754 8.91478 14.3166C8.91477 14.3156 8.91476 14.3147 8.91475 14.3138L8.39982 14.3185H8.91478V14.3166V7.51498C8.91478 7.23057 8.68421 7 8.39979 7Z\"\n fill={color}\n />\n <rect x=\"13\" y=\"11\" width=\"1\" height=\"4\" fill=\"#232D38\" />\n <rect x=\"15\" y=\"11\" width=\"1\" height=\"4\" fill=\"#232D38\" />\n </svg>\n );\n }\n case \"Open Call Complete\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.4383 4.49265C14.6174 4.46964 14.7994 4.49789 14.9631 4.57412C15.1268 4.65035 15.2656 4.77144 15.3632 4.92333C15.4609 5.07522 15.5135 5.2517 15.5149 5.43228L15.515 5.43228V5.43636V8.29685C15.1908 8.16408 14.8452 8.07265 14.485 8.0291V5.59902C13.016 6.79486 11.5276 7.40217 10.3941 7.71048C9.8112 7.86903 9.32073 7.94892 8.97255 7.98921C8.79837 8.00936 8.65949 8.01964 8.56208 8.02488C8.51337 8.02751 8.475 8.02887 8.44773 8.02958L8.41524 8.03023L8.40542 8.03033L8.40214 8.03034L8.40092 8.03034L8.40041 8.03034C8.40018 8.03035 8.39997 8.03035 8.39997 7.51536V8.03035H6.19997C5.75308 8.03035 5.32448 8.20787 5.00848 8.52387C4.69248 8.83988 4.51495 9.26847 4.51495 9.71536C4.51495 10.1623 4.69248 10.5908 5.00848 10.9068C5.32448 11.2228 5.75308 11.4004 6.19997 11.4004H8.39997V11.9154C8.39997 11.4004 8.40018 11.4004 8.40041 11.4004L8.40092 11.4004L8.40214 11.4004L8.40542 11.4004L8.41524 11.4005L8.44773 11.4011C8.475 11.4018 8.51337 11.4032 8.56208 11.4058C8.65949 11.4111 8.79837 11.4214 8.97255 11.4415C9.24284 11.4728 9.59886 11.5279 10.0173 11.6252C10.0059 11.7486 10 11.8736 10 12C10 12.2378 10.0208 12.4707 10.0605 12.6971C9.56194 12.5652 9.14583 12.4984 8.85417 12.4647C8.7023 12.4471 8.58449 12.4385 8.50671 12.4343C8.46783 12.4322 8.43899 12.4312 8.42094 12.4308L8.40207 12.4304L8.3996 12.4303L8.39929 12.4303L8.39898 12.4303H6.19997C5.47991 12.4303 4.78934 12.1443 4.28019 11.6351C3.77103 11.126 3.48499 10.4354 3.48499 9.71536C3.48499 8.9953 3.77103 8.30474 4.28019 7.79558C4.78934 7.28642 5.47991 7.00038 6.19997 7.00038H8.399L8.39929 7.00038L8.3996 7.00038L8.40207 7.00035L8.42094 6.99996C8.43899 6.99949 8.46783 6.9985 8.50671 6.99641C8.58449 6.99222 8.7023 6.98364 8.85417 6.96606C9.15808 6.9309 9.59712 6.85988 10.1238 6.71662C11.1773 6.43007 12.5761 5.85612 13.9487 4.70611L13.9487 4.7061L13.9512 4.7041C14.0903 4.58897 14.2592 4.51565 14.4383 4.49265Z\"\n fill={color}\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.39979 7C8.11537 7 7.88481 7.23057 7.88481 7.51498V14.2793L7.39955 14.6013L6.69951 11.7905C6.63077 11.5145 6.35132 11.3465 6.07533 11.4153C5.79935 11.484 5.63134 11.7635 5.70007 12.0394L6.42607 14.9544L6.4264 14.9557C6.46374 15.1041 6.53617 15.2412 6.63759 15.3557C6.739 15.4702 6.86644 15.5587 7.00917 15.6137C7.1519 15.6687 7.30574 15.6886 7.45777 15.6717C7.60948 15.6549 7.75494 15.6019 7.88197 15.5173C7.88223 15.5171 7.88249 15.517 7.88275 15.5168L8.48475 15.1173C8.61759 15.0305 8.72657 14.9117 8.8017 14.7719C8.87689 14.6319 8.91576 14.4754 8.91478 14.3166C8.91477 14.3156 8.91476 14.3147 8.91475 14.3138L8.39982 14.3185H8.91478V14.3166V7.51498C8.91478 7.23057 8.68421 7 8.39979 7Z\"\n fill={color}\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M19 9.88942L15.2699 13.6684C14.8336 14.1105 14.1261 14.1105 13.6897 13.6684L12 11.9565L12.8779 11.0671L14.4798 12.6901L18.1221 9L19 9.88942Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Medal\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M17.5 9C17.5 12.0376 15.0376 14.5 12 14.5C8.96243 14.5 6.5 12.0376 6.5 9C6.5 5.96243 8.96243 3.5 12 3.5C15.0376 3.5 17.5 5.96243 17.5 9ZM15 15.3264C14.0907 15.7583 13.0736 16 12 16C10.9264 16 9.90926 15.7583 9 15.3264V19.713L10.1512 19.0606C11.2981 18.4107 12.7019 18.4107 13.8488 19.0606L15 19.713V15.3264ZM16.5 14.3621C18.0285 13.078 19 11.1525 19 9C19 5.13401 15.866 2 12 2C8.13401 2 5 5.13401 5 9C5 11.1525 5.97153 13.078 7.5 14.3621V21V22.287L8.61976 21.6525L10.8907 20.3656C11.5788 19.9757 12.4212 19.9757 13.1093 20.3656L15.3802 21.6525L16.5 22.287V21V14.3621Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Send Message\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M7.05607 9.29388L4.95265 4.03534L20.882 12L4.95265 19.9647L7.05607 14.7061C7.24671 14.2295 7.66783 13.8835 8.17235 13.7889L10.8986 13.2777C12.3124 13.0126 12.3125 10.9874 10.8986 10.7223L8.17235 10.2111C7.66783 10.1165 7.24671 9.77048 7.05607 9.29388Z\"\n fill={color}\n stroke={color}\n />\n </svg>\n );\n }\n case \"X\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.92507 8.01453L3.1841 11.7555L4.24476 12.8162L8.01419 9.04672C9.14495 10.1207 10.3034 11.2439 11.7347 12.7945L12.8369 11.7771C11.3854 10.2047 10.2064 9.06051 9.07521 7.98571L12.8162 4.24474L11.7555 3.18408L7.98608 6.95351C6.85533 5.87952 5.6969 4.75635 4.26554 3.2057L3.16333 4.22312C4.61483 5.79558 5.79383 6.93972 6.92507 8.01453Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Change\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M18.7259 11.2617H20.4518L19.2742 10L16.4742 7L15.3776 8.02348L17 9.76174H4.72591V11.2617H18.7259ZM5.72591 12.7617H4L5.17762 14.0235L7.97762 17.0235L9.07421 16L7.45183 14.2617H19.7259V12.7617H5.72591Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Twitter\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 40 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect width=\"40\" height=\"40\" rx=\"4\" fill={color} />\n <path\n d=\"M16.7116 27C24.027 27 28.0274 21.6143 28.0274 16.9441C28.0274 16.7911 28.0239 16.6389 28.0162 16.4873C28.7927 15.9884 29.4676 15.3658 30 14.6571C29.2874 14.9386 28.5205 15.1281 27.7161 15.2136C28.5372 14.776 29.1676 14.0839 29.465 13.2587C28.6966 13.6636 27.8456 13.9578 26.9396 14.1166C26.2138 13.4297 25.1806 13 24.0365 13C21.8402 13 20.0592 14.5828 20.0592 16.5338C20.0592 16.8111 20.0941 17.0809 20.1624 17.3397C16.857 17.1918 13.9259 15.7855 11.9644 13.647C11.6228 14.1693 11.4258 14.776 11.4258 15.4234C11.4258 16.6496 12.128 17.732 13.1957 18.3653C12.5432 18.3474 11.9302 18.1882 11.3945 17.9233C11.3939 17.9381 11.3939 17.9526 11.3939 17.9684C11.3939 19.68 12.7648 21.1091 14.5846 21.4329C14.2504 21.5139 13.8988 21.5573 13.5359 21.5573C13.28 21.5573 13.0307 21.5349 12.7884 21.4936C13.2947 22.8979 14.7629 23.9198 16.5036 23.9483C15.1424 24.8964 13.4277 25.4611 11.564 25.4611C11.2434 25.4611 10.9267 25.4449 10.6154 25.4122C12.3755 26.4148 14.4655 26.9998 16.7118 26.9998\"\n fill=\"white\"\n />\n </svg>\n );\n }\n case \"LinkedIn\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 40 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect width=\"40\" height=\"40\" rx=\"4\" fill={color} />\n <path\n d=\"M15.8426 27H12.3819V15.9195H15.8426V27ZM17.9221 15.9195H21.2102V17.5753C21.6523 16.6912 22.9366 15.7469 24.6343 15.7469C27.8909 15.7469 29 17.217 29 20.7116V26.9974H25.5367V21.4493C25.5367 19.6104 25.1783 18.6033 23.8338 18.6033C22.0185 18.6033 21.3802 19.9818 21.3802 21.4493V27H17.9221V15.9195ZM14.1109 10C15.2776 10 16.2219 10.9443 16.2219 12.1109C16.2219 13.2776 15.275 14.2219 14.1109 14.2219C12.9469 14.2219 12 13.2776 12 12.1109C12 10.9443 12.9469 10 14.1109 10Z\"\n fill=\"white\"\n />\n </svg>\n );\n }\n case \"Facebook\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 40 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect width=\"40\" height=\"40\" rx=\"4\" fill={color} />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M24.5304 20.7124L25.0585 17.2656H21.7526V15.0293C21.7526 14.0871 22.2136 13.1668 23.6956 13.1668H25.1994V10.233C25.1994 10.233 23.8348 10 22.5305 10C19.808 10 18.0277 11.6496 18.0277 14.6387V17.2657H15V20.7125H18.0277V29.0427C18.6345 29.1381 19.2565 29.1868 19.8901 29.1868C20.5238 29.1868 21.1458 29.1364 21.7526 29.0427V20.7125H24.5305L24.5304 20.7124Z\"\n fill=\"white\"\n />\n </svg>\n );\n }\n case \"Delete\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M4.5 7.25L19.5 7.25\" stroke={color} strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n <path\n d=\"M8.7 7.25067V7.05C8.7 5.22746 10.1775 3.75 12 3.75V3.75C13.8225 3.75 15.3 5.22746 15.3 7.05V7.25067M17.25 7.25067L12 7.25067H6.75V17.25C6.75 18.9069 8.09315 20.25 9.75 20.25H14.25C15.9069 20.25 17.25 18.9069 17.25 17.25V7.25067Z\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M10.25 10.75V16.25\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinecap=\"square\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M13.75 10.75V16.25\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinecap=\"square\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n case \"Download\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M7.5 10.5L12 15M12 15L16.5 10.5M12 15L12 5\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinejoin=\"round\"\n />\n <line\n x1=\"5\"\n y1=\"19.25\"\n x2=\"19\"\n y2=\"19.25\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n case \"Dot\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"8\" cy=\"8\" r=\"4\" fill={color} />\n </svg>\n );\n }\n case \"Lead Reviewer\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10.1429 10.8929C10.1429 11.8002 9.40736 12.5357 8.50003 12.5357C7.59271 12.5357 6.85718 11.8002 6.85718 10.8929C6.85718 9.98553 7.59271 9.25 8.50003 9.25C9.40736 9.25 10.1429 9.98553 10.1429 10.8929ZM11.6429 10.8929C11.6429 12.6286 10.2358 14.0357 8.50003 14.0357C6.76428 14.0357 5.35718 12.6286 5.35718 10.8929C5.35718 9.15711 6.76428 7.75 8.50003 7.75C10.2358 7.75 11.6429 9.15711 11.6429 10.8929ZM6.92857 16.5714H10.0714C11.4127 16.5714 12.5 17.6588 12.5 19V19.0714H4.5V19C4.5 17.6588 5.58731 16.5714 6.92857 16.5714ZM3 19C3 16.8303 4.75888 15.0714 6.92857 15.0714H10.0714C12.2411 15.0714 14 16.8303 14 19V19.0714V20.5714H12.5H4.5H3V19.0714V19Z\"\n fill={color}\n />\n <path\n d=\"M17 4L15.92 5.92L14 6.16L15.44 7.84L14.96 10L17 9.04L19.04 10L18.56 7.84L20 6.16L18.08 5.92L17 4Z\"\n stroke={color}\n strokeWidth=\"1.2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n case \"Add\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M12 5V19M5 12H19\" stroke={color} strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n </svg>\n );\n }\n case \"Arrow Left\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M10.5 6.5L4.5 12.5M4.5 12.5L10.5 18.5M4.5 12.5L19.5 12.5\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n case \"Arrow Up\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 25 25\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M18.5 11.5L12.5 5.5M12.5 5.5L6.5 11.5M12.5 5.5L12.5 20.5\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n case \"Private\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M7.71432 9.89258H16.2857C17.4495 9.89258 18.3929 10.836 18.3929 11.9997V21.2497H5.60718V11.9997C5.60718 10.836 6.55058 9.89258 7.71432 9.89258Z\"\n stroke={color}\n strokeWidth=\"1.5\"\n />\n <path\n d=\"M16.25 9.87988L7.75 9.87988L7.75 7.05845C7.75 4.71124 9.65279 2.80845 12 2.80846C14.3472 2.80846 16.25 4.71125 16.25 7.05846L16.25 9.87988Z\"\n stroke={color}\n strokeWidth=\"1.5\"\n />\n <circle cx=\"12\" cy=\"14.25\" r=\"1.5\" fill={color} />\n <path d=\"M11.25 15H12.75V18H11.25V15Z\" fill={color} />\n </svg>\n );\n }\n case \"Employees\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"10\" cy=\"8\" r=\"3.25\" stroke={color} strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.9754 8.5002C14.9918 8.33568 15.0001 8.16882 15.0001 8C15.0001 7.65811 14.9658 7.32423 14.9004 7.00163C14.9335 7.00054 14.9668 7 15.0001 7C16.657 7 18.0001 8.34315 18.0001 10C18.0001 11.6569 16.657 13 15.0001 13C14.162 13 13.4041 12.6563 12.8597 12.1021C13.2722 11.814 13.6392 11.4653 13.9478 11.0689C14.2186 11.3355 14.5901 11.5 15.0001 11.5C15.8286 11.5 16.5001 10.8284 16.5001 10C16.5001 9.17157 15.8286 8.5 15.0001 8.5C14.9919 8.5 14.9836 8.50007 14.9754 8.5002Z\"\n fill={color}\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M18 20H19.5H21V18.5V18C21 15.7909 19.2091 14 17 14H16.0005C16.5458 14.4097 17.0046 14.9283 17.3446 15.5236C18.5623 15.6914 19.5 16.7362 19.5 18V18.5H18V20Z\"\n fill={color}\n />\n <path\n d=\"M3.75 18C3.75 15.6528 5.65279 13.75 8 13.75H12C14.3472 13.75 16.25 15.6528 16.25 18V19.25H3.75V18Z\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n case \"Proposal Privacy\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M15 25H5C4.44771 25 4 24.5523 4 24V4C4 3.44772 4.44772 3 5 3H20C20.5523 3 21 3.44772 21 4V12\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinejoin=\"round\"\n />\n <line\n x1=\"7\"\n y1=\"9.78857\"\n x2=\"18\"\n y2=\"9.78857\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinejoin=\"round\"\n />\n <line\n x1=\"7\"\n y1=\"14.1152\"\n x2=\"18\"\n y2=\"14.1152\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinejoin=\"round\"\n />\n <line\n x1=\"7\"\n y1=\"18.4424\"\n x2=\"14\"\n y2=\"18.4424\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M17.75 21C17.75 20.3096 18.3096 19.75 19 19.75H26C26.6904 19.75 27.25 20.3096 27.25 21V27C27.25 27.6904 26.6904 28.25 26 28.25H19C18.3096 28.25 17.75 27.6904 17.75 27V21Z\"\n stroke={color}\n strokeWidth=\"1.5\"\n />\n <path\n d=\"M25.25 19.75L19.75 19.75L19.75 17.5C19.75 15.9812 20.9812 14.75 22.5 14.75C24.0188 14.75 25.25 15.9812 25.25 17.5L25.25 19.75Z\"\n stroke={color}\n strokeWidth=\"1.5\"\n />\n <circle cx=\"22.5\" cy=\"23\" r=\"1\" fill={color} />\n <path d=\"M22 23.5H23V25.5H22V23.5Z\" fill={color} />\n </svg>\n );\n }\n case \"Proposal\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 17 17\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M2 3.5C2 2.11929 3.11929 1 4.5 1H11.5C12.8807 1 14 2.11929 14 3.5V6.34141C13.6784 6.22773 13.3442 6.1407 13 6.08296V3.5C13 2.67157 12.3284 2 11.5 2H4.5C3.67157 2 3 2.67157 3 3.5V12.5C3 13.3284 3.67157 14 4.5 14H6.34141C6.46488 14.3493 6.61977 14.6838 6.80269 15H4.5C3.11929 15 2 13.8807 2 12.5V3.5ZM6.34141 10C6.22773 10.3216 6.1407 10.6558 6.08296 11H5V10H6.34141ZM8.03126 7.5C7.69355 7.79807 7.38965 8.13357 7.12605 8.5H5V7.5H8.03126ZM11 6H5V5H11V6ZM12 16C14.2091 16 16 14.2091 16 12C16 9.79086 14.2091 8 12 8C9.79086 8 8 9.79086 8 12C8 14.2091 9.79086 16 12 16ZM12 17C14.7614 17 17 14.7614 17 12C17 9.23858 14.7614 7 12 7C9.23858 7 7 9.23858 7 12C7 14.7614 9.23858 17 12 17ZM12.7929 11.5H10V12.5H12.7929L11.6464 13.6464L12.3536 14.3536L14.3536 12.3536C14.4473 12.2598 14.5 12.1326 14.5 12C14.5 11.8674 14.4473 11.7402 14.3536 11.6464L12.3536 9.64645L11.6464 10.3536L12.7929 11.5Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Minimize\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M5 12H19\" stroke={color} strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n </svg>\n );\n }\n case \"Expand\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M17.3034 12.1461L17.3034 7.19635M17.3034 7.19635L12.3536 7.19636M17.3034 7.19635L6.69675 17.803M6.69675 17.803L11.6465 17.803M6.69675 17.803L6.69676 12.8532\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n case \"Reduce\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12.7504 10.9991C12.7504 11.4133 13.0862 11.7491 13.5004 11.7491L18.4502 11.7491V10.2491L15.3113 10.2491L18.8337 6.7267L18.8337 6.72669L17.7731 5.66602L17.7731 5.66603L14.2504 9.18849L14.2504 6.04935L12.7504 6.04935L12.7504 10.9991ZM8.68909 14.7502L5.16577 18.2735L6.22643 19.3341L9.74975 15.8108L9.74975 18.9499H11.2497L11.2497 14.0002C11.2497 13.5859 10.914 13.2502 10.4997 13.2502L5.55 13.2502L5.55 14.7502H8.68909Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Calendar\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7 5V3.5H8.5V5H15V3.5H16.5V5H18C19.1046 5 20 5.89543 20 7V18C20 19.1046 19.1046 20 18 20H6C4.89543 20 4 19.1046 4 18V10V8.5V7C4 5.89543 4.89543 5 6 5H7ZM5.5 18V10H18.5V18C18.5 18.2761 18.2761 18.5 18 18.5H6C5.72386 18.5 5.5 18.2761 5.5 18ZM18.5 7V8.5H5.5V7C5.5 6.72386 5.72386 6.5 6 6.5H7H8.5H15H16.5H18C18.2761 6.5 18.5 6.72386 18.5 7ZM15 17C16.1046 17 17 16.1046 17 15C17 13.8954 16.1046 13 15 13C13.8954 13 13 13.8954 13 15C13 16.1046 13.8954 17 15 17Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Share\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M11.25 6.81066V15H12.75V6.81066L15.9697 10.0303L17.0303 8.96967L12.5303 4.46967C12.2374 4.17678 11.7626 4.17678 11.4697 4.46967L6.96967 8.96967L8.03033 10.0303L11.25 6.81066ZM4 14V19.2501C4 19.6643 4.33579 20.0001 4.75 20.0001H19.25C19.6642 20.0001 20 19.6643 20 19.2501V14H18.5V18.5001H5.5V14H4Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Open in a new tab\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M17.5179 6.47168L11.4947 12.4946L12.5553 13.5553L18.5786 7.53228L18.5786 10.6714L20.0786 10.6714L20.0786 5.72168C20.0786 5.30747 19.7429 4.97168 19.3286 4.97168H14.3789V6.47168H17.5179ZM5.75 7.00007C5.33579 7.00007 5 7.33586 5 7.75007V13.6123V19.2501C5 19.6643 5.33579 20.0001 5.75 20.0001H17.25C17.6642 20.0001 18 19.6643 18 19.2501V15.0001H16.5V18.5001H6.5V13.6123V8.50007H10V7.00007H5.75Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Profile\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.5 8C14.5 9.38071 13.3807 10.5 12 10.5C10.6193 10.5 9.5 9.38071 9.5 8C9.5 6.61929 10.6193 5.5 12 5.5C13.3807 5.5 14.5 6.61929 14.5 8ZM16 8C16 10.2091 14.2091 12 12 12C9.79086 12 8 10.2091 8 8C8 5.79086 9.79086 4 12 4C14.2091 4 16 5.79086 16 8ZM6.5 18C6.5 16.067 8.067 14.5 10 14.5H14C15.933 14.5 17.5 16.067 17.5 18V18.5H6.5V18ZM5 18C5 15.2386 7.23858 13 10 13H14C16.7614 13 19 15.2386 19 18V18.5V20H17.5H6.5H5V18.5V18Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Message\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M4.5 7.43408L4.5 15C4.5 16.3807 5.61929 17.5 7 17.5L17 17.5C18.3807 17.5 19.5 16.3807 19.5 15V7.43408L13.1524 12.9882C12.4926 13.5656 11.5074 13.5656 10.8476 12.9882L4.5 7.43408ZM18.2896 6.5L5.71037 6.5L11.8354 11.8594C11.9296 11.9419 12.0704 11.9419 12.1646 11.8594L18.2896 6.5ZM7 19C4.79086 19 3 17.2091 3 15V6.5V5H4.5H19.5H21V6.5V15C21 17.2091 19.2091 19 17 19L7 19Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Chevron Down\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4 6L7.29289 9.29289C7.68342 9.68342 8.31658 9.68342 8.70711 9.29289L12 6\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n case \"Chevron Up\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12 10L8.70711 6.70711C8.31658 6.31658 7.68342 6.31658 7.29289 6.70711L4 10\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n case \"Chevron Left\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M10 4L6.70711 7.29289C6.31658 7.68342 6.31658 8.31658 6.70711 8.70711L10 12\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n case \"Chevron Right\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6 12L9.29289 8.70711C9.68342 8.31658 9.68342 7.68342 9.29289 7.29289L6 4\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n case \"Copy\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <mask id=\"path-1-inside-1_767_7472\" fill=\"white\">\n <rect x=\"4\" y=\"8\" width=\"12\" height=\"12\" rx=\"1\" />\n </mask>\n <rect\n x=\"4\"\n y=\"8\"\n width=\"12\"\n height=\"12\"\n rx=\"1\"\n stroke={color}\n strokeWidth=\"3\"\n mask=\"url(#path-1-inside-1_767_7472)\"\n />\n <path\n d=\"M9.25 6.5V4.15C9.25 3.92909 9.42909 3.75 9.65 3.75H19.35C19.5709 3.75 19.75 3.92909 19.75 4.15V13.85C19.75 14.0709 19.5709 14.25 19.35 14.25H17.5\"\n stroke={color}\n strokeWidth=\"1.5\"\n />\n </svg>\n );\n }\n case \"Data\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M17.0556 9.96561V12.5C17.0556 13.1278 14.8157 14 12 14C9.18426 14 6.94444 13.1278 6.94444 12.5V9.96561C8.14004 10.6288 9.96728 11 12 11C14.0327 11 15.86 10.6288 17.0556 9.96561ZM12 15.5C14.0327 15.5 15.86 15.1288 17.0556 14.4656V17C17.0556 17.6278 14.8157 18.5 12 18.5C9.18426 18.5 6.94444 17.6278 6.94444 17V14.4656C8.14004 15.1288 9.96728 15.5 12 15.5ZM12 5C8.43379 5 5.5 6.14248 5.5 8V17C5.5 18.8575 8.43379 20 12 20C15.5662 20 18.5 18.8575 18.5 17V8C18.5 6.14248 15.5662 5 12 5ZM17.0556 8C17.0556 8.62777 14.8157 9.5 12 9.5C9.18426 9.5 6.94444 8.62777 6.94444 8C6.94444 7.37223 9.18426 6.5 12 6.5C14.8157 6.5 17.0556 7.37223 17.0556 8ZM15.5 13C16.0523 13 16.5 12.5523 16.5 12C16.5 11.4477 16.0523 11 15.5 11C14.9477 11 14.5 11.4477 14.5 12C14.5 12.5523 14.9477 13 15.5 13Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Refresh\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M4.5 2.5V9H11\" stroke={color} strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n <path\n d=\"M5.20945 8.66651C6.43041 6.16098 9.00188 4.43457 11.9766 4.43457C16.1317 4.43457 19.5 7.80293 19.5 11.958C19.5 16.1131 16.1317 19.4815 11.9766 19.4815C8.81919 19.4815 6.11608 17.5365 5 14.7793\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n case \"Close\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6.01032 5.98959L18.0311 18.0104M6.01032 18.0104L18.0311 5.98959\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n case \"Search\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M15.6823 15.5985C16.8165 14.3667 17.5111 12.7094 17.5111 10.8866C17.5111 7.08325 14.4865 4 10.7556 4C7.02457 4 4 7.08325 4 10.8866C4 14.69 7.02457 17.7733 10.7556 17.7733C12.6985 17.7733 14.4499 16.9371 15.6823 15.5985ZM15.6823 15.5985L20 20\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n case \"Verified\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M9.20843 3.02539C9.60875 2.50682 10.3913 2.50682 10.7916 3.02539L11.412 3.82911C11.6637 4.15514 12.0896 4.2935 12.4848 4.17768L13.4592 3.89215C14.0878 3.70792 14.7209 4.16786 14.74 4.8227L14.7695 5.83761C14.7815 6.24931 15.0447 6.61156 15.4325 6.75018L16.3886 7.0919C17.0055 7.31238 17.2473 8.05658 16.8779 8.59756L16.3052 9.436C16.0729 9.77612 16.0729 10.2239 16.3052 10.564L16.8779 11.4024C17.2473 11.9434 17.0055 12.6876 16.3886 12.9081L15.4325 13.2498C15.0447 13.3884 14.7815 13.7507 14.7695 14.1624L14.74 15.1773C14.7209 15.8321 14.0878 16.2921 13.4592 16.1079L12.4848 15.8223C12.0896 15.7065 11.6637 15.8449 11.412 16.1709L10.7916 16.9746C10.3913 17.4932 9.60875 17.4932 9.20843 16.9746L8.58798 16.1709C8.33629 15.8449 7.91045 15.7065 7.51519 15.8223L6.54082 16.1079C5.91215 16.2921 5.27909 15.8321 5.26003 15.1773L5.23049 14.1624C5.21851 13.7507 4.95532 13.3884 4.56747 13.2498L3.61136 12.9081C2.99447 12.6876 2.75266 11.9434 3.12214 11.4024L3.69479 10.564C3.92709 10.2239 3.92709 9.77612 3.69479 9.436L3.12214 8.59756C2.75266 8.05658 2.99447 7.31238 3.61136 7.0919L4.56747 6.75018C4.95532 6.61156 5.21851 6.24931 5.23049 5.83761L5.26003 4.8227C5.27909 4.16786 5.91215 3.70792 6.54082 3.89215L7.51519 4.17768C7.91045 4.2935 8.33629 4.15514 8.58798 3.82911L9.20843 3.02539Z\"\n fill={color}\n />\n <path\n d=\"M6.435 10.5303L8.11014 12.2055L9.1708 11.1448L7.49566 9.46967L6.435 10.5303ZM9.86711 12.2055L13.5652 8.50733L12.5046 7.44667L8.80645 11.1448L9.86711 12.2055ZM8.11014 12.2055C8.59531 12.6906 9.38193 12.6906 9.86711 12.2055L8.80645 11.1448C8.90706 11.0442 9.07019 11.0442 9.1708 11.1448L8.11014 12.2055Z\"\n fill=\"white\"\n />\n </svg>\n );\n }\n case \"Agriculture\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.9999 4.15039H3.1499V5.00039V5.87539C3.1499 10.2108 6.66447 13.7254 10.9999 13.7254H13.1499V19.0004H14.8499V16.0005H14.9999H15.2999C18.3768 16.0005 20.9128 13.6844 21.2595 10.7005C21.2862 10.4709 21.2999 10.2373 21.2999 10.0005V9.00049H19.5999H19.2999C17.5035 9.00049 15.8915 9.78996 14.7919 11.0409C14.3187 7.15805 11.0105 4.15039 6.9999 4.15039H3.9999ZM13.1499 12.0004V12.0254H10.9999C7.60335 12.0254 4.8499 9.27194 4.8499 5.87539V5.85039H6.9999C10.3965 5.85039 13.1499 8.60384 13.1499 12.0004ZM19.2999 10.7005H19.5432C19.2089 12.7424 17.4364 14.3005 15.2999 14.3005H15.0566C15.3909 12.2586 17.1634 10.7005 19.2999 10.7005Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Hygiene\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M9.3 7.5C9.3 8.49411 8.49411 9.3 7.5 9.3C6.50589 9.3 5.7 8.49411 5.7 7.5C5.7 6.50589 6.50589 5.7 7.5 5.7C8.49411 5.7 9.3 6.50589 9.3 7.5ZM11 7.5C11 9.433 9.433 11 7.5 11C5.567 11 4 9.433 4 7.5C4 5.567 5.567 4 7.5 4C9.433 4 11 5.567 11 7.5ZM17.3 14C17.3 15.8225 15.8225 17.3 14 17.3C12.1775 17.3 10.7 15.8225 10.7 14C10.7 12.1775 12.1775 10.7 14 10.7C15.8225 10.7 17.3 12.1775 17.3 14ZM19 14C19 16.7614 16.7614 19 14 19C11.2386 19 9 16.7614 9 14C9 11.2386 11.2386 9 14 9C16.7614 9 19 11.2386 19 14Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Water\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M11.1541 5C11.1541 6.92224 9.65854 8.42785 7.87748 8.42785C6.49235 8.42785 5.28496 7.52298 4.8111 6.21122L3.21222 6.78878C3.91072 8.72244 5.72271 10.1278 7.87748 10.1278C9.60815 10.1278 11.1145 9.22492 12.004 7.86607C12.8932 9.22488 14.3992 10.1278 16.13 10.1278C18.2905 10.1278 20.1063 8.71503 20.8008 6.77341L19.2001 6.20087C18.7289 7.51817 17.5188 8.42785 16.13 8.42785C14.3491 8.42785 12.8541 6.92245 12.8541 5H11.1541ZM11.1538 12.2783C11.1538 14.2006 9.65823 15.7062 7.87717 15.7062C6.49204 15.7062 5.28465 14.8013 4.81079 13.4895L3.21191 14.0671C3.91041 16.0008 5.7224 17.4062 7.87717 17.4062C9.60784 17.4062 11.1142 16.5032 12.0037 15.1444C12.8929 16.5032 14.3989 17.4062 16.1297 17.4062C18.2902 17.4062 20.106 15.9934 20.8005 14.0517L19.1998 13.4792C18.7286 14.7965 17.5184 15.7062 16.1297 15.7062C14.3488 15.7062 12.8538 14.2008 12.8538 12.2783H11.1538Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Bell\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M17.6656 8.86623C17.6656 7.57562 17.1529 6.33788 16.2403 5.42528C15.3277 4.51269 14.0899 4 12.7993 4C11.5087 4 10.271 4.51269 9.3584 5.42528C8.4458 6.33788 7.93311 7.57562 7.93311 8.86623C7.93311 14.1929 5.79121 15.9498 5.52669 16.1464C5.51875 16.1523 5.52313 16.1656 5.53303 16.1656H20.0657C20.0755 16.1656 20.0799 16.1523 20.072 16.1464C19.8075 15.9498 17.6656 14.1929 17.6656 8.86623Z\"\n stroke={color}\n strokeWidth=\"1.5\"\n />\n <path\n d=\"M10.1714 18.0537C10.1714 19.1828 10.9998 20 13.0911 20.0002C15.1825 20.0004 16.0109 19.1828 16.0109 18.0537\"\n stroke={color}\n strokeWidth=\"1.5\"\n />\n </svg>\n );\n }\n case \"Block\": {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"25\"\n viewBox=\"0 0 24 25\"\n fill=\"none\"\n >\n <path\n d=\"M6.14999 18.35L18.1258 6.37424M21 12.5C21 17.4706 16.9706 21.5 12 21.5C7.02944 21.5 3 17.4706 3 12.5C3 7.52944 7.02944 3.5 12 3.5C16.9706 3.5 21 7.52944 21 12.5Z\"\n stroke={color}\n strokeWidth=\"1.5\"\n />\n </svg>\n );\n }\n case \"Success\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"8\" fill={color} />\n <path\n d=\"M7.77143 12.2628L9.81292 14.3042L10.8736 13.2436L8.83209 11.2021L7.77143 12.2628ZM11.7221 14.3042L16.2287 9.79766L15.168 8.737L10.6614 13.2436L11.7221 14.3042ZM9.81292 14.3042C10.3401 14.8314 11.1949 14.8314 11.7221 14.3042L10.6614 13.2436C10.72 13.185 10.815 13.185 10.8736 13.2436L9.81292 14.3042Z\"\n fill=\"white\"\n />\n </svg>\n );\n }\n case \"Opportunity\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 17 17\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"4.5\" stroke={color} />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M2 3.5C2 2.11929 3.11929 1 4.5 1H11.5C12.8807 1 14 2.11929 14 3.5V6.34141C13.6784 6.22773 13.3442 6.1407 13 6.08296V3.5C13 2.67157 12.3284 2 11.5 2H4.5C3.67157 2 3 2.67157 3 3.5V12.5C3 13.3284 3.67157 14 4.5 14H6.34141C6.46488 14.3493 6.61977 14.6838 6.80269 15H4.5C3.11929 15 2 13.8807 2 12.5V3.5ZM6.34141 10C6.22773 10.3216 6.1407 10.6558 6.08296 11H5V10H6.34141ZM8.03126 7.5C7.69355 7.79807 7.38965 8.13357 7.12605 8.5H5V7.5H8.03126ZM11 6H5V5H11V6Z\"\n fill={color}\n />\n <path d=\"M12 14L14 12M14 12L12 10M14 12L10 12\" stroke={color} strokeLinejoin=\"round\" />\n </svg>\n );\n }\n case \"3D Printing\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect x=\"6\" y=\"4\" width=\"12\" height=\"3\" stroke={color} strokeWidth=\"1.5\" />\n <path d=\"M9 7H15V12.0909L12 14L9 12.0909V7Z\" stroke={color} strokeWidth=\"1.5\" />\n <path\n d=\"M12 14C12 14 7.66586 16.5897 7.00002 19C5.86446 23.1106 17.5 21.5 17.5 21.5\"\n stroke={color}\n strokeWidth=\"1.5\"\n />\n </svg>\n );\n }\n case \"Packaging\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6 8H18V19.9C18 19.9552 17.9552 20 17.9 20H6.1C6.04477 20 6 19.9552 6 19.9L6 8Z\"\n stroke={color}\n strokeWidth=\"1.5\"\n />\n <path d=\"M6 8L4 4\" stroke={color} strokeWidth=\"1.5\" />\n <path d=\"M20 4L18 8\" stroke={color} strokeWidth=\"1.5\" />\n <path d=\"M12 8V14\" stroke={color} strokeWidth=\"1.5\" />\n </svg>\n );\n }\n case \"Adhesives\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.75 15.25H12C13.1522 15.25 14.2533 15.0269 15.2617 14.6216C14.211 17.3298 11.5793 19.25 8.5 19.25H4.75V15.25Z\"\n stroke={color}\n strokeWidth=\"1.5\"\n />\n <path\n d=\"M18.25 5.36074V9.58923C18.25 12.0416 16.858 14.0868 14.8951 15.1083C14.9642 14.6654 15 14.2117 15 13.75V7.41338L18.25 5.36074Z\"\n stroke={color}\n strokeWidth=\"1.5\"\n />\n </svg>\n );\n }\n case \"Food\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.5 14.4646V9C6.5 7.23676 5.19615 5.77806 3.5 5.53544V11C3.5 12.7632 4.80385 14.2219 6.5 14.4646ZM6.5 15.9753C3.97334 15.7245 2 13.5927 2 11V5.5V4H3C3.16875 4 3.33555 4.00836 3.5 4.02469C6.02666 4.27555 8 6.40733 8 9V14.5V16H7C6.83125 16 6.66445 15.9916 6.5 15.9753ZM13.5 8.02469C13.6645 8.00836 13.8313 8 14 8H15V9.5V11C15 13.5927 13.0267 15.7245 10.5 15.9753C10.3355 15.9916 10.1687 16 10 16H9V14.5V13C9 10.4073 10.9733 8.27555 13.5 8.02469ZM10.5 14.4646V13C10.5 11.2368 11.8039 9.77806 13.5 9.53544V11C13.5 12.7632 12.1961 14.2219 10.5 14.4646ZM20.5 13V18.4646C18.8039 18.2219 17.5 16.7632 17.5 15V9.53544C19.1961 9.77806 20.5 11.2368 20.5 13ZM16 15C16 17.5927 17.9733 19.7245 20.5 19.9753C20.6645 19.9916 20.8312 20 21 20H22V18.5V13C22 10.4073 20.0267 8.27555 17.5 8.02469C17.3355 8.00836 17.1687 8 17 8H16V9.5V15Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Medicine\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M16.652 13.9917L18.2729 11.1843C19.7794 8.57492 18.8853 5.23834 16.276 3.73182C13.6666 2.2253 10.33 3.11934 8.82351 5.7287L7.20266 8.53609L6.77766 9.27221L6.35266 10.0083L4.73182 12.8157C3.2253 15.4251 4.11934 18.7617 6.7287 20.2682C9.33807 21.7747 12.6747 20.8807 14.1812 18.2713L15.802 15.4639L16.227 14.7278L16.652 13.9917ZM15.1798 13.1417L16.8006 10.3343C17.8377 8.53802 17.2222 6.24114 15.426 5.20406C13.6297 4.16699 11.3328 4.78243 10.2958 6.5787L8.67491 9.38609L15.1798 13.1417ZM7.82491 10.8583L14.3298 14.6139L12.7089 17.4213C11.6718 19.2176 9.37497 19.833 7.5787 18.7959C5.78243 17.7589 5.16699 15.462 6.20406 13.6657L7.82491 10.8583Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Private Company\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <mask\n id=\"mask0_1302_40677\"\n style={{ maskType: \"alpha\" }}\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"24\"\n height=\"24\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"12\" fill=\"white\" />\n </mask>\n <g mask=\"url(#mask0_1302_40677)\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M-4.72576 3.56706L-7.03516 4.90039L9.63151 33.7679L11.9409 32.4346L-4.72576 3.56706ZM-0.10694 0.900391L-2.41634 2.23372L14.2503 31.1012L16.5597 29.7679L-0.10694 0.900391ZM2.20247 -0.432943L4.51188 -1.76628L21.1785 27.1012L18.8691 28.4346L2.20247 -0.432943ZM9.13069 -4.43294L6.82129 -3.09961L23.488 25.7679L25.7974 24.4346L9.13069 -4.43294ZM11.4401 -5.76628L13.7495 -7.09961L30.4162 21.7679L28.1068 23.1012L11.4401 -5.76628ZM18.3683 -9.76628L16.0589 -8.43294L32.7256 20.4346L35.035 19.1012L18.3683 -9.76628Z\"\n fill={color}\n />\n </g>\n </svg>\n );\n }\n case \"Easy Apply\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12.65 3.57554V8.8C12.65 9.7665 13.4335 10.55 14.4 10.55H17.6337L11.35 20.4245V15.2C11.35 14.2335 10.5665 13.45 9.6 13.45H6.36626L12.65 3.57554ZM17.976 10.0121L17.9757 10.0126L17.976 10.0121ZM13.2949 2.56218L13.2953 2.56153L13.2949 2.56218Z\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n case \"Attention\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M18.5 12C18.5 15.5899 15.5899 18.5 12 18.5C8.41015 18.5 5.5 15.5899 5.5 12C5.5 8.41015 8.41015 5.5 12 5.5C15.5899 5.5 18.5 8.41015 18.5 12ZM20 12C20 16.4183 16.4183 20 12 20C7.58172 20 4 16.4183 4 12C4 7.58172 7.58172 4 12 4C16.4183 4 20 7.58172 20 12ZM12.75 8V12.5H11.25L11.25 8H12.75ZM11 15C11 14.4477 11.4477 14 12 14C12.5523 14 13 14.4477 13 15C13 15.5523 12.5523 16 12 16C11.4477 16 11 15.5523 11 15Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Idea\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M14.8552 17.499L14.5358 16.8204L14.1052 17.0231V17.499H14.8552ZM10.3552 17.499H11.1052V17.0231L10.6746 16.8204L10.3552 17.499ZM17.1445 12.7107C17.1445 14.526 16.0789 16.094 14.5358 16.8204L15.1746 18.1775C17.2237 17.213 18.6445 15.1286 18.6445 12.7107H17.1445ZM12.6052 8.17139C15.1122 8.17139 17.1445 10.2037 17.1445 12.7107H18.6445C18.6445 9.37528 15.9406 6.67139 12.6052 6.67139V8.17139ZM8.06592 12.7107C8.06592 10.2037 10.0982 8.17139 12.6052 8.17139V6.67139C9.26981 6.67139 6.56592 9.37528 6.56592 12.7107H8.06592ZM10.6746 16.8204C9.13153 16.094 8.06592 14.526 8.06592 12.7107H6.56592C6.56592 15.1286 7.98679 17.213 10.0358 18.1775L10.6746 16.8204ZM11.1052 19.1055V17.499H9.60522V19.1055H11.1052ZM12.6052 20.6055C11.7768 20.6055 11.1052 19.9339 11.1052 19.1055H9.60522C9.60522 20.7623 10.9484 22.1055 12.6052 22.1055V20.6055ZM14.1052 19.1055C14.1052 19.9339 13.4337 20.6055 12.6052 20.6055V22.1055C14.2621 22.1055 15.6052 20.7623 15.6052 19.1055H14.1052ZM14.1052 17.499V19.1055H15.6052V17.499H14.1052Z\"\n fill={color}\n />\n <path d=\"M12.6052 4.26316V3\" stroke={color} strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path\n d=\"M3.76316 13.1055L2.5 13.1055\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n <path\n d=\"M21.4473 13.1055L22.7104 13.1055\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n <path\n d=\"M19.4466 6.98293L20.3552 6.10547\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n <path\n d=\"M5.79393 6.95069L4.85522 6.10547\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n );\n }\n case \"Info\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"8\" cy=\"8\" r=\"8\" fill={color} />\n <path d=\"M7 13V7.5H9V13H7Z\" fill=\"white\" />\n <circle cx=\"8\" cy=\"4.25\" r=\"1.25\" fill=\"white\" />\n </svg>\n );\n }\n case \"Info Small\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"8\" cy=\"8\" r=\"6\" fill={color} />\n <path d=\"M7.25 12V7.5H8.75V12H7.25Z\" fill=\"white\" />\n <circle cx=\"8\" cy=\"5\" r=\"1\" fill=\"white\" />\n </svg>\n );\n }\n case \"Info Inverted\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 25 25\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"12.166\" cy=\"12.5\" r=\"9\" fill=\"#D9EEFF\" />\n <path d=\"M11.041 18.5V11.75H13.291V18.5H11.041Z\" fill=\"#009CEA\" />\n <path\n d=\"M13.666 8C13.666 8.82843 12.9944 9.5 12.166 9.5C11.3376 9.5 10.666 8.82843 10.666 8C10.666 7.17157 11.3376 6.5 12.166 6.5C12.9944 6.5 13.666 7.17157 13.666 8Z\"\n fill=\"#009CEA\"\n />\n </svg>\n );\n }\n case \"Invite\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12 12C14.2091 12 16 10.2091 16 8C16 5.79086 14.2091 4 12 4C9.79086 4 8 5.79086 8 8C8 10.2091 9.79086 12 12 12ZM12 10.5C13.3807 10.5 14.5 9.38071 14.5 8C14.5 6.61929 13.3807 5.5 12 5.5C10.6193 5.5 9.5 6.61929 9.5 8C9.5 9.38071 10.6193 10.5 12 10.5Z\"\n fill={color}\n />\n <path\n d=\"M10 14.5C8.067 14.5 6.5 16.067 6.5 18V18.5H12.0764C12.1572 19.0232 12.3004 19.5258 12.4982 20H5V18C5 15.2386 7.23858 13 10 13H13.8096C13.3832 13.4443 13.0194 13.949 12.7322 14.5H10Z\"\n fill={color}\n />\n <path d=\"M17.5 13H19V22H17.5V13Z\" fill={color} />\n <path d=\"M13.75 18.25V16.75H22.75V18.25H13.75Z\" fill={color} />\n </svg>\n );\n }\n case \"Jewel\": {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 14 12\"\n fill=\"none\"\n >\n <path\n d=\"M0.499512 3.26953L4.09961 4.01172C4.09961 4.01172 9.22169 3.98055 9.36568 4.01172C9.50966 4.04289 13.1662 3.26953 13.1662 3.26953\"\n stroke={color}\n strokeWidth=\"0.989583\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M4.51078 0.921875L4.09961 4.00789L6.73239 10.9968L9.36567 3.94208L8.9545 0.921875\"\n stroke={color}\n strokeWidth=\"0.989583\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M9.1549 9.9632L13.1662 3.26719L11.3765 0.921875H2.28917L0.499512 3.26719L4.51079 9.9632L6.7324 10.9968L9.1549 9.9632Z\"\n stroke={color}\n strokeWidth=\"0.989583\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n case \"Materials\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M4.5 19.5V4.5H19.5V19.5H4.5ZM3 3.5C3 3.22386 3.22386 3 3.5 3H20.5C20.7761 3 21 3.22386 21 3.5V20.5C21 20.7761 20.7761 21 20.5 21H3.5C3.22386 21 3 20.7761 3 20.5V3.5ZM8 9C8.55228 9 9 8.55228 9 8C9 7.44772 8.55228 7 8 7C7.44772 7 7 7.44772 7 8C7 8.55228 7.44772 9 8 9ZM13 8C13 8.55228 12.5523 9 12 9C11.4477 9 11 8.55228 11 8C11 7.44772 11.4477 7 12 7C12.5523 7 13 7.44772 13 8ZM16 9C16.5523 9 17 8.55228 17 8C17 7.44772 16.5523 7 16 7C15.4477 7 15 7.44772 15 8C15 8.55228 15.4477 9 16 9ZM9 12C9 12.5523 8.55228 13 8 13C7.44772 13 7 12.5523 7 12C7 11.4477 7.44772 11 8 11C8.55228 11 9 11.4477 9 12ZM8 17C8.55228 17 9 16.5523 9 16C9 15.4477 8.55228 15 8 15C7.44772 15 7 15.4477 7 16C7 16.5523 7.44772 17 8 17ZM13 12C13 12.5523 12.5523 13 12 13C11.4477 13 11 12.5523 11 12C11 11.4477 11.4477 11 12 11C12.5523 11 13 11.4477 13 12ZM12 17C12.5523 17 13 16.5523 13 16C13 15.4477 12.5523 15 12 15C11.4477 15 11 15.4477 11 16C11 16.5523 11.4477 17 12 17ZM17 12C17 12.5523 16.5523 13 16 13C15.4477 13 15 12.5523 15 12C15 11.4477 15.4477 11 16 11C16.5523 11 17 11.4477 17 12ZM16 17C16.5523 17 17 16.5523 17 16C17 15.4477 16.5523 15 16 15C15.4477 15 15 15.4477 15 16C15 16.5523 15.4477 17 16 17Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Arrow Right\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M14 19L20 13M20 13L14 7M20 13L5 13\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n case \"Attachment\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M17 5V15.25C17 18.0114 14.7614 20.25 12 20.25V20.25C9.23858 20.25 7 18.0114 7 15.25L7 7.25C7 5.317 8.567 3.75 10.5 3.75V3.75C12.433 3.75 14 5.317 14 7.25V14.625C14 15.6605 13.1605 16.5 12.125 16.5V16.5C11.0895 16.5 10.25 15.6605 10.25 14.625V8.5\"\n stroke={color}\n strokeWidth=\"1.5\"\n />\n </svg>\n );\n }\n case \"Help\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <mask id=\"path-1-inside-1_2432_17540\" fill=\"white\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12 21C16.9706 21 21 16.9706 21 12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12C3 14.045 3.68204 15.9307 4.83106 17.442L4.08031 20.2948C3.8586 21.1373 4.74533 21.8407 5.51527 21.4331L8.052 20.0901C9.24398 20.6729 10.5838 21 12 21Z\"\n />\n </mask>\n <path\n d=\"M4.83106 17.442L6.28167 17.8237L6.46781 17.1164L6.02514 16.5341L4.83106 17.442ZM4.08031 20.2948L5.53093 20.6765L4.08031 20.2948ZM5.51527 21.4331L6.21711 22.7588H6.21711L5.51527 21.4331ZM8.052 20.0901L8.71085 18.7426L8.02494 18.4072L7.35017 18.7644L8.052 20.0901ZM19.5 12C19.5 16.1421 16.1421 19.5 12 19.5V22.5C17.799 22.5 22.5 17.799 22.5 12H19.5ZM12 4.5C16.1421 4.5 19.5 7.85786 19.5 12H22.5C22.5 6.20101 17.799 1.5 12 1.5V4.5ZM4.5 12C4.5 7.85786 7.85786 4.5 12 4.5V1.5C6.20101 1.5 1.5 6.20101 1.5 12H4.5ZM6.02514 16.5341C5.06768 15.2748 4.5 13.7058 4.5 12H1.5C1.5 14.3841 2.29641 16.5865 3.63698 18.3498L6.02514 16.5341ZM3.38045 17.0602L2.6297 19.9131L5.53093 20.6765L6.28167 17.8237L3.38045 17.0602ZM2.6297 19.9131C2.07543 22.0193 4.29224 23.7778 6.21711 22.7588L4.81344 20.1074C5.19842 19.9036 5.64178 20.2553 5.53093 20.6765L2.6297 19.9131ZM6.21711 22.7588L8.75384 21.4158L7.35017 18.7644L4.81344 20.1074L6.21711 22.7588ZM12 19.5C10.8171 19.5 9.70218 19.2272 8.71085 18.7426L7.39316 21.4377C8.78578 22.1186 10.3505 22.5 12 22.5V19.5Z\"\n fill={color}\n mask=\"url(#path-1-inside-1_2432_17540)\"\n />\n <path\n d=\"M11.1062 14.0034V13.919C11.1122 13.3683 11.1669 12.9302 11.2706 12.6045C11.3771 12.2789 11.5281 12.0154 11.7235 11.814C11.9189 11.6127 12.1543 11.4292 12.4296 11.2634C12.6072 11.1509 12.7671 11.0251 12.9092 10.8859C13.0513 10.7468 13.1638 10.5869 13.2467 10.4063C13.3296 10.2257 13.3711 10.0259 13.3711 9.80681C13.3711 9.54332 13.3089 9.31536 13.1845 9.12293C13.0602 8.93049 12.8944 8.78247 12.6872 8.67885C12.4829 8.57227 12.2549 8.51898 12.0033 8.51898C11.7753 8.51898 11.5577 8.56635 11.3505 8.66109C11.1433 8.75582 10.9715 8.90385 10.8354 9.10517C10.6992 9.30352 10.6207 9.55961 10.6 9.87342H9.25C9.27072 9.34053 9.40543 8.89053 9.65411 8.52342C9.9028 8.15336 10.2314 7.87359 10.64 7.68411C11.0515 7.49464 11.5059 7.3999 12.0033 7.3999C12.548 7.3999 13.0247 7.50204 13.4332 7.70632C13.8418 7.90763 14.1586 8.19036 14.3836 8.55451C14.6115 8.91569 14.7255 9.33757 14.7255 9.82013C14.7255 10.1517 14.6737 10.4507 14.5701 10.7172C14.4664 10.9807 14.3184 11.216 14.126 11.4233C13.9365 11.6305 13.7086 11.814 13.4421 11.9739C13.1905 12.1308 12.9862 12.2937 12.8293 12.4624C12.6753 12.6312 12.5628 12.831 12.4918 13.0619C12.4207 13.2928 12.3822 13.5785 12.3763 13.919V14.0034H11.1062ZM11.7768 16.7034C11.534 16.7034 11.3253 16.6175 11.1507 16.4458C10.976 16.2711 10.8887 16.0609 10.8887 15.8152C10.8887 15.5724 10.976 15.3652 11.1507 15.1935C11.3253 15.0188 11.534 14.9315 11.7768 14.9315C12.0166 14.9315 12.2238 15.0188 12.3985 15.1935C12.5762 15.3652 12.665 15.5724 12.665 15.8152C12.665 15.978 12.6235 16.1275 12.5406 16.2637C12.4607 16.3969 12.3541 16.5035 12.2209 16.5835C12.0877 16.6634 11.9396 16.7034 11.7768 16.7034Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"History\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M18.5 12C18.5 15.5899 15.5899 18.5 12 18.5C8.41015 18.5 5.5 15.5899 5.5 12C5.5 8.41015 8.41015 5.5 12 5.5C15.5899 5.5 18.5 8.41015 18.5 12ZM20 12C20 16.4183 16.4183 20 12 20C7.58172 20 4 16.4183 4 12C4 7.58172 7.58172 4 12 4C16.4183 4 20 7.58172 20 12ZM11.5833 7.3335V11.8917C11.5833 12.3227 11.3613 12.7232 10.9958 12.9517L9.26916 14.0308L10.0642 15.3028L11.7908 14.2237C12.5949 13.7211 13.0833 12.8398 13.0833 11.8917V7.3335H11.5833Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"USA\": {\n return (\n <svg\n width=\"24\"\n height=\"18\"\n viewBox=\"0 0 24 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect y=\"0.5\" width=\"24\" height=\"17.1429\" rx=\"1.71429\" fill=\"white\" />\n <mask\n id=\"mask0_400_2810\"\n style={{ maskType: \"alpha\" }}\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"24\"\n height=\"18\"\n >\n <rect y=\"0.5\" width=\"24\" height=\"17.1429\" rx=\"1.71429\" fill=\"white\" />\n </mask>\n <g mask=\"url(#mask0_400_2810)\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M24 0.5H0V1.64286H24V0.5ZM24 2.78683H0V3.92969H24V2.78683ZM0 5.07031H24V6.21317H0V5.07031ZM24 7.35714H0V8.5H24V7.35714ZM0 9.64397H24V10.7868H0V9.64397ZM24 11.9275H0V13.0703H24V11.9275ZM0 14.2143H24V15.3571H0V14.2143ZM24 16.5011H0V17.644H24V16.5011Z\"\n fill=\"#D02F44\"\n />\n <rect y=\"0.5\" width=\"10.2857\" height=\"8\" fill=\"#37379A\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M2.28544 2.21401C2.28544 2.5296 2.0296 2.78544 1.71401 2.78544C1.39842 2.78544 1.14258 2.5296 1.14258 2.21401C1.14258 1.89842 1.39842 1.64258 1.71401 1.64258C2.0296 1.64258 2.28544 1.89842 2.28544 2.21401ZM4.57143 2.21401C4.57143 2.5296 4.31559 2.78544 4 2.78544C3.68441 2.78544 3.42857 2.5296 3.42857 2.21401C3.42857 1.89842 3.68441 1.64258 4 1.64258C4.31559 1.64258 4.57143 1.89842 4.57143 2.21401ZM6.28516 2.78544C6.60075 2.78544 6.85659 2.5296 6.85659 2.21401C6.85659 1.89842 6.60075 1.64258 6.28516 1.64258C5.96957 1.64258 5.71373 1.89842 5.71373 2.21401C5.71373 2.5296 5.96957 2.78544 6.28516 2.78544ZM9.14258 2.21401C9.14258 2.5296 8.88674 2.78544 8.57115 2.78544C8.25556 2.78544 7.99972 2.5296 7.99972 2.21401C7.99972 1.89842 8.25556 1.64258 8.57115 1.64258C8.88674 1.64258 9.14258 1.89842 9.14258 2.21401ZM2.85658 3.92718C3.17218 3.92718 3.42801 3.67134 3.42801 3.35575C3.42801 3.04016 3.17218 2.78432 2.85658 2.78432C2.54099 2.78432 2.28516 3.04016 2.28516 3.35575C2.28516 3.67134 2.54099 3.92718 2.85658 3.92718ZM5.71401 3.35575C5.71401 3.67134 5.45817 3.92718 5.14258 3.92718C4.82699 3.92718 4.57115 3.67134 4.57115 3.35575C4.57115 3.04016 4.82699 2.78432 5.14258 2.78432C5.45817 2.78432 5.71401 3.04016 5.71401 3.35575ZM7.42857 3.92718C7.74416 3.92718 8 3.67134 8 3.35575C8 3.04016 7.74416 2.78432 7.42857 2.78432C7.11298 2.78432 6.85714 3.04016 6.85714 3.35575C6.85714 3.67134 7.11298 3.92718 7.42857 3.92718ZM9.14258 4.50084C9.14258 4.81643 8.88674 5.07227 8.57115 5.07227C8.25556 5.07227 7.99972 4.81643 7.99972 4.50084C7.99972 4.18525 8.25556 3.92941 8.57115 3.92941C8.88674 3.92941 9.14258 4.18525 9.14258 4.50084ZM6.28516 5.07227C6.60075 5.07227 6.85659 4.81643 6.85659 4.50084C6.85659 4.18525 6.60075 3.92941 6.28516 3.92941C5.96957 3.92941 5.71373 4.18525 5.71373 4.50084C5.71373 4.81643 5.96957 5.07227 6.28516 5.07227ZM4.57143 4.50084C4.57143 4.81643 4.31559 5.07227 4 5.07227C3.68441 5.07227 3.42857 4.81643 3.42857 4.50084C3.42857 4.18525 3.68441 3.92941 4 3.92941C4.31559 3.92941 4.57143 4.18525 4.57143 4.50084ZM1.71401 5.07227C2.0296 5.07227 2.28544 4.81643 2.28544 4.50084C2.28544 4.18525 2.0296 3.92941 1.71401 3.92941C1.39842 3.92941 1.14258 4.18525 1.14258 4.50084C1.14258 4.81643 1.39842 5.07227 1.71401 5.07227ZM3.42801 5.64258C3.42801 5.95817 3.17218 6.21401 2.85658 6.21401C2.54099 6.21401 2.28516 5.95817 2.28516 5.64258C2.28516 5.32699 2.54099 5.07115 2.85658 5.07115C3.17218 5.07115 3.42801 5.32699 3.42801 5.64258ZM5.14258 6.21401C5.45817 6.21401 5.71401 5.95817 5.71401 5.64258C5.71401 5.32699 5.45817 5.07115 5.14258 5.07115C4.82699 5.07115 4.57115 5.32699 4.57115 5.64258C4.57115 5.95817 4.82699 6.21401 5.14258 6.21401ZM8 5.64258C8 5.95817 7.74416 6.21401 7.42857 6.21401C7.11298 6.21401 6.85714 5.95817 6.85714 5.64258C6.85714 5.32699 7.11298 5.07115 7.42857 5.07115C7.74416 5.07115 8 5.32699 8 5.64258ZM8.57115 7.35575C8.88674 7.35575 9.14258 7.09991 9.14258 6.78432C9.14258 6.46873 8.88674 6.21289 8.57115 6.21289C8.25556 6.21289 7.99972 6.46873 7.99972 6.78432C7.99972 7.09991 8.25556 7.35575 8.57115 7.35575ZM6.85659 6.78432C6.85659 7.09991 6.60075 7.35575 6.28516 7.35575C5.96957 7.35575 5.71373 7.09991 5.71373 6.78432C5.71373 6.46873 5.96957 6.21289 6.28516 6.21289C6.60075 6.21289 6.85659 6.46873 6.85659 6.78432ZM4 7.35575C4.31559 7.35575 4.57143 7.09991 4.57143 6.78432C4.57143 6.46873 4.31559 6.21289 4 6.21289C3.68441 6.21289 3.42857 6.46873 3.42857 6.78432C3.42857 7.09991 3.68441 7.35575 4 7.35575ZM2.28544 6.78432C2.28544 7.09991 2.0296 7.35575 1.71401 7.35575C1.39842 7.35575 1.14258 7.09991 1.14258 6.78432C1.14258 6.46873 1.39842 6.21289 1.71401 6.21289C2.0296 6.21289 2.28544 6.46873 2.28544 6.78432Z\"\n fill=\"url(#paint0_linear_400_2810)\"\n />\n </g>\n <defs>\n <linearGradient\n id=\"paint0_linear_400_2810\"\n x1=\"1.14258\"\n y1=\"1.64258\"\n x2=\"1.14258\"\n y2=\"7.35575\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"white\" />\n <stop offset=\"1\" stopColor=\"#F0F0F0\" />\n </linearGradient>\n </defs>\n </svg>\n );\n }\n case \"Australia\": {\n return (\n <svg\n width=\"24\"\n height=\"18\"\n viewBox=\"0 0 24 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect width=\"24\" height=\"17.1429\" rx=\"2\" fill=\"white\" />\n <mask\n id=\"mask0_400_1624\"\n style={{ maskType: \"alpha\" }}\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"24\"\n height=\"18\"\n >\n <path\n d=\"M0 2C0 0.895429 0.895431 0 2 0H22C23.1046 0 24 0.895431 24 2V15.1429C24 16.2474 23.1046 17.1429 22 17.1429H2C0.89543 17.1429 0 16.2474 0 15.1429V2Z\"\n fill=\"white\"\n />\n </mask>\n <g mask=\"url(#mask0_400_1624)\">\n <rect width=\"24\" height=\"17.1429\" fill=\"#0A17A7\" />\n <path\n d=\"M0 -0.333333H-0.901086L-0.216931 0.253085L3.66667 3.58188V4.39989L-0.193746 7.15733L-0.333333 7.25703V7.42857V8V8.60142L0.176666 8.28267L4.66703 5.47619H5.60746L9.47126 8.23604C9.55984 8.29932 9.66599 8.33333 9.77485 8.33333C10.2598 8.33333 10.4829 7.73003 10.1148 7.41445L6.61905 4.41812V3.60011L10.3399 0.942378C10.5151 0.817237 10.619 0.61519 10.619 0.399889V0V-0.601416L10.109 -0.282666L5.61869 2.52381H4.67825L0.765175 -0.271244L0.67825 -0.333333H0.571429H0Z\"\n fill=\"#FF2E3B\"\n stroke=\"white\"\n strokeWidth=\"0.666667\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M0 2.85714V5.14286H4V7.90476C4 8.27295 4.29848 8.57143 4.66667 8.57143H5.61905C5.98724 8.57143 6.28571 8.27295 6.28571 7.90476V5.14286H10.1905C10.5587 5.14286 10.8571 4.84438 10.8571 4.47619V3.52381C10.8571 3.15562 10.5587 2.85714 10.1905 2.85714H6.28571V0H4V2.85714H0Z\"\n fill=\"url(#paint0_linear_400_1624)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M0 3.42857H4.57143V2.85714V0H5.71428V2.85714V3.42857H10.2857V4.57143H5.71428V5.14286V8H4.57143V5.14286V4.57143H0V3.42857Z\"\n fill=\"url(#paint1_linear_400_1624)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.14286 13.9992L4.13523 14.5289L4.32767 13.4069L3.51248 12.6123L4.63904 12.4486L5.14286 11.4277L5.64668 12.4486L6.77324 12.6123L5.95805 13.4069L6.15049 14.5289L5.14286 13.9992Z\"\n fill=\"white\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M17.1427 14.8569L16.3346 15.0936L16.5713 14.2854L16.3346 13.4773L17.1427 13.714L17.9508 13.4773L17.7141 14.2854L17.9508 15.0936L17.1427 14.8569Z\"\n fill=\"white\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M17.1427 3.99944L16.3346 4.23614L16.5713 3.42801L16.3346 2.61989L17.1427 2.85658L17.9508 2.61989L17.7141 3.42801L17.9508 4.23614L17.1427 3.99944Z\"\n fill=\"white\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M20.5713 7.42913L19.7632 7.66582L19.9999 6.8577L19.7632 6.04958L20.5713 6.28627L21.3794 6.04958L21.1427 6.8577L21.3794 7.66582L20.5713 7.42913Z\"\n fill=\"white\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M13.7141 8.57171L12.906 8.8084L13.1427 8.00028L12.906 7.19216L13.7141 7.42885L14.5223 7.19216L14.2856 8.00028L14.5223 8.8084L13.7141 8.57171Z\"\n fill=\"white\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M18.8573 9.99972L18.4532 10.1181L18.5716 9.71401L18.4532 9.30995L18.8573 9.42829L19.2613 9.30995L19.143 9.71401L19.2613 10.1181L18.8573 9.99972Z\"\n fill=\"white\"\n />\n </g>\n <defs>\n <linearGradient\n id=\"paint0_linear_400_1624\"\n x1=\"0\"\n y1=\"0\"\n x2=\"0\"\n y2=\"8.57143\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"white\" />\n <stop offset=\"1\" stopColor=\"#F0F0F0\" />\n </linearGradient>\n <linearGradient\n id=\"paint1_linear_400_1624\"\n x1=\"0\"\n y1=\"0\"\n x2=\"0\"\n y2=\"8\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#FF2E3B\" />\n <stop offset=\"1\" stopColor=\"#FC0D1B\" />\n </linearGradient>\n </defs>\n </svg>\n );\n }\n case \"China\": {\n return (\n <svg\n width=\"24\"\n height=\"18\"\n viewBox=\"0 0 24 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect y=\"0.5\" width=\"24\" height=\"17.1429\" rx=\"2\" fill=\"white\" />\n <mask\n id=\"mask0_400_1682\"\n style={{ maskType: \"alpha\" }}\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"24\"\n height=\"18\"\n >\n <path\n d=\"M0 2.5C0 1.39543 0.895431 0.5 2 0.5H22C23.1046 0.5 24 1.39543 24 2.5V15.6429C24 16.7474 23.1046 17.6429 22 17.6429H2C0.89543 17.6429 0 16.7474 0 15.6429V2.5Z\"\n fill=\"white\"\n />\n </mask>\n <g mask=\"url(#mask0_400_1682)\">\n <rect y=\"0.5\" width=\"24\" height=\"17.1429\" fill=\"#F1361D\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.63409 3.15775L9.46419 3.29927L10.0868 3.86626L10.2283 3.03617L10.7953 2.41359L9.96518 2.27207L9.34261 1.70508L9.20109 2.53517L8.63409 3.15775ZM10.8576 6.06316L11.5769 5.62537L12.4188 5.64485L11.981 4.92552L12.0004 4.08367L11.2811 4.52146L10.4393 4.50199L10.8771 5.22131L10.8576 6.06316ZM9.88125 10.7619L9.17764 11.2246L9.16772 10.3826L8.7051 9.67894L9.54711 9.66902L10.2507 9.2064L10.2606 10.0484L10.7233 10.752L9.88125 10.7619ZM10.4928 8.5846L11.3298 8.49184L12.0845 8.86526L11.9918 8.02832L12.3652 7.27357L11.5282 7.36634L10.7735 6.99291L10.8663 7.82986L10.4928 8.5846Z\"\n fill=\"#FFDC42\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.7147 7.55087L3.69944 8.9875L4.44301 6.62693L2.45394 5.15424L4.92875 5.13196L5.7147 2.78516L6.50066 5.13196L8.97547 5.15424L6.9864 6.62693L7.72997 8.9875L5.7147 7.55087Z\"\n fill=\"#FFDC42\"\n />\n </g>\n </svg>\n );\n }\n case \"India\": {\n return (\n <svg\n width=\"24\"\n height=\"18\"\n viewBox=\"0 0 24 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect y=\"0.427734\" width=\"24\" height=\"17.1429\" rx=\"1.71429\" fill=\"white\" />\n <mask\n id=\"mask0_5809_55470\"\n style={{ maskType: \"luminance\" }}\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"24\"\n height=\"18\"\n >\n <rect y=\"0.427734\" width=\"24\" height=\"17.1429\" rx=\"1.71429\" fill=\"white\" />\n </mask>\n <g mask=\"url(#mask0_5809_55470)\">\n <rect width=\"24\" height=\"6\" fill=\"#FC6E51\" />\n <rect y=\"12\" width=\"24\" height=\"6\" fill=\"#57A863\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12 11C13.1046 11 14 10.1046 14 9C14 7.89543 13.1046 7 12 7C10.8954 7 10 7.89543 10 9C10 10.1046 10.8954 11 12 11Z\"\n stroke=\"#4C5DAB\"\n />\n </g>\n </svg>\n );\n }\n case \"Canada\": {\n return (\n <svg\n width=\"24\"\n height=\"18\"\n viewBox=\"0 0 24 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect y=\"0.572266\" width=\"24\" height=\"17.1429\" rx=\"2\" fill=\"white\" />\n <mask\n id=\"mask0_5809_55505\"\n style={{ maskType: \"luminance\" }}\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"24\"\n height=\"18\"\n >\n <path\n d=\"M0 2.57226C0 1.46769 0.895431 0.572266 2 0.572266H22C23.1046 0.572266 24 1.4677 24 2.57227V15.7151C24 16.8197 23.1046 17.7151 22 17.7151H2C0.89543 17.7151 0 16.8197 0 15.7151V2.57226Z\"\n fill=\"white\"\n />\n </mask>\n <g mask=\"url(#mask0_5809_55505)\">\n <rect x=\"18\" width=\"8\" height=\"18\" fill=\"#D02F44\" />\n <rect x=\"-2\" width=\"8\" height=\"18\" fill=\"#D02F44\" />\n <path\n d=\"M11.9203 4L10.9503 5.66633L10.0967 5.37608L10.532 8.51339L9.27567 6.85352L8.95563 7.60917L7.37969 7.48055L7.72161 9.07253L7 9.51141L8.86869 10.9491C8.97364 11.0944 9.53207 11.5616 9.59708 11.8075C9.6353 12.0461 9.415 12.4279 9.415 12.4279L9.83607 12.2966C10.4808 12.1483 10.8203 12.0752 11.5 12.0403V14H12.5V12.0367C13.1285 12.0502 13.5168 12.1825 14.0351 12.2966L14.4562 12.4279C14.4562 12.4279 14.2359 12.0461 14.2741 11.8075C14.3391 11.5616 14.8975 11.0944 15.0025 10.9491L16.0815 10.1189L17 9.51141L16.2784 9.07253L16.6203 7.48055L15.0444 7.60917L14.7243 6.85352L13.2941 8.74313L13.7613 5.37608L12.9543 5.65046L11.9203 4Z\"\n fill=\"#D02F44\"\n />\n </g>\n </svg>\n );\n }\n case \"Malaysia\": {\n return (\n <svg\n width=\"24\"\n height=\"18\"\n viewBox=\"0 0 24 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect y=\"0.714844\" width=\"24\" height=\"17.1429\" rx=\"2\" fill=\"white\" />\n <mask\n id=\"mask0_5809_55529\"\n style={{ maskType: \"luminance\" }}\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"24\"\n height=\"18\"\n >\n <path\n d=\"M0 2.71484C0 1.61027 0.895431 0.714844 2 0.714844H22C23.1046 0.714844 24 1.61027 24 2.71484V15.8577C24 16.9623 23.1046 17.8577 22 17.8577H2C0.89543 17.8577 0 16.9623 0 15.8577V2.71484Z\"\n fill=\"white\"\n />\n </mask>\n <g mask=\"url(#mask0_5809_55529)\">\n <path d=\"M28 0.667969H-2V1.91602H28V0.667969Z\" fill=\"#D81E34\" />\n <path d=\"M28 1.91797H-2V3.16602H28V1.91797Z\" fill=\"white\" />\n <path d=\"M28 3.16406H-2V4.41211H28V3.16406Z\" fill=\"#D81E34\" />\n <path d=\"M28 4.41797H-2V5.66602H28V4.41797Z\" fill=\"white\" />\n <path d=\"M28 5.66797H-2V6.91602H28V5.66797Z\" fill=\"#D81E34\" />\n <path d=\"M28 6.91406H-2V8.16211H28V6.91406Z\" fill=\"white\" />\n <path d=\"M28 8.16797H-2V9.41602H28V8.16797Z\" fill=\"#D81E34\" />\n <path d=\"M28 9.41797H-2V10.666H28V9.41797Z\" fill=\"white\" />\n <path d=\"M28 10.6641H-2V11.9121H28V10.6641Z\" fill=\"#D81E34\" />\n <path d=\"M28 11.918H-2V13.166H28V11.918Z\" fill=\"white\" />\n <path d=\"M28 13.168H-2V14.416H28V13.168Z\" fill=\"#D81E34\" />\n <path d=\"M28 14.418H-2V15.666H28V14.418Z\" fill=\"white\" />\n <path d=\"M28 15.668H-2V16.916H28V15.668Z\" fill=\"#D81E34\" />\n <path d=\"M28 16.918H-2V18.166H28V16.918Z\" fill=\"white\" />\n <path d=\"M12.502 0.667969H-5V10.6699H12.502V0.667969Z\" fill=\"#31409A\" />\n <path\n d=\"M2.6875 5.66797C2.6875 3.85742 4.1582 2.38672 5.96875 2.38672C6.5957 2.38672 7.18164 2.5625 7.68555 2.87305C7.02344 2.27539 6.14453 1.91797 5.18945 1.91797C3.12109 1.91797 1.43945 3.59961 1.43945 5.66797C1.43945 7.73633 3.12109 9.41797 5.18945 9.41797C6.15039 9.41797 7.02344 9.06055 7.68555 8.46289C7.1875 8.76758 6.60156 8.94922 5.96875 8.94922C4.1582 8.94922 2.6875 7.47852 2.6875 5.66797Z\"\n fill=\"#F5D02C\"\n />\n <path\n d=\"M10.1875 5.66602L11.9863 4.96875L10.0645 5.12109L11.3828 3.71484L9.71875 4.6875L10.293 2.84766L9.21484 4.44727L8.93945 2.54297L8.74023 3.9082L8.68164 4.30078L8.6582 4.44727L7.58008 2.84766L8.16016 4.6875L6.49609 3.71484L7.80859 5.12109L5.89258 4.96875L7.68555 5.66602L5.89258 6.36328L7.80859 6.21094L6.49609 7.61719L8.16016 6.64453L7.58008 8.48438L8.6582 6.88477L8.68164 7.03125L8.74023 7.42383L8.93945 8.78906L9.21484 6.88477L10.293 8.48438L9.71875 6.64453L11.3828 7.61719L10.0645 6.21094L11.9863 6.36328L10.1875 5.66602Z\"\n fill=\"#F5D02C\"\n />\n </g>\n </svg>\n );\n }\n case \"Mexico\": {\n return (\n <svg\n width=\"24\"\n height=\"18\"\n viewBox=\"0 0 24 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect y=\"0.572266\" width=\"24\" height=\"17.1429\" rx=\"2\" fill=\"white\" />\n <mask\n id=\"mask0_5831_55490\"\n style={{ maskType: \"luminance\" }}\n maskUnits=\"userSpaceOnUse\"\n x=\"0\"\n y=\"0\"\n width=\"24\"\n height=\"18\"\n >\n <path\n d=\"M0 2.57226C0 1.46769 0.895431 0.572266 2 0.572266H22C23.1046 0.572266 24 1.4677 24 2.57227V15.7151C24 16.8197 23.1046 17.7151 22 17.7151H2C0.89543 17.7151 0 16.8197 0 15.7151V2.57226Z\"\n fill=\"white\"\n />\n </mask>\n <g mask=\"url(#mask0_5831_55490)\">\n <rect x=\"18\" width=\"8\" height=\"18\" fill=\"#D02F44\" />\n <rect x=\"-2\" width=\"8\" height=\"18\" fill=\"#57A863\" />\n <path\n d=\"M15 9.5C15 11.1569 13.6569 12.5 12 12.5C10.3431 12.5 9 11.1569 9 9.5\"\n stroke=\"#57A863\"\n strokeWidth=\"0.5\"\n strokeLinecap=\"round\"\n />\n <path\n d=\"M14 9.5C14 10.6046 13.1046 11.5 12 11.5C10.8954 11.5 10 10.6046 10 9.5\"\n stroke=\"#478B8E\"\n strokeWidth=\"0.5\"\n strokeLinecap=\"round\"\n />\n <path\n d=\"M11.6619 6.49989C11.257 6.76685 11 7.55077 11 7.55077H11.9929V9.5L13 10.5C13.5 10 13.5 8.99989 13.5 8.99989C13.5 8.99989 13.5926 6.90857 13.3168 6.49989C13.3168 6.49989 12.2015 6.14418 11.6619 6.49989Z\"\n fill=\"#98603B\"\n />\n <path\n d=\"M10.5398 6.56841C10.2327 6.74309 9.75556 7.1647 10.3046 7.45374C10.9908 7.81505 10.9908 7.81505 10.7124 8.27398C10.434 8.73292 10.7127 8.27395 11.0774 8.6678C11.4422 9.06165 11.1641 9.52056 10.8422 9.55313\"\n stroke=\"#57A863\"\n strokeWidth=\"0.5\"\n strokeLinecap=\"round\"\n />\n <path d=\"M14.5 8.56527C14.5 8.56527 15 6 12.5 6L13.5 8.56527H14.5Z\" fill=\"#98603B\" />\n </g>\n </svg>\n );\n }\n case \"Burger\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <line\n x1=\"2\"\n y1=\"5\"\n x2=\"22\"\n y2=\"5\"\n stroke={color}\n strokeWidth=\"2\"\n strokeLinejoin=\"round\"\n />\n <line\n x1=\"2\"\n y1=\"12\"\n x2=\"22\"\n y2=\"12\"\n stroke={color}\n strokeWidth=\"2\"\n strokeLinejoin=\"round\"\n />\n <line\n x1=\"2\"\n y1=\"19\"\n x2=\"22\"\n y2=\"19\"\n stroke={color}\n strokeWidth=\"2\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n case \"Technology\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.75 5V3H10.25V5H13.75V3H15.25V5H17C18.1046 5 19 5.89543 19 7V8.75H21V10.25H19V13.75H21V15.25H19V17C19 18.1046 18.1046 19 17 19H15.25V21H13.75V19H10.25V21H8.75V19H7C5.89543 19 5 18.1046 5 17V15.25H3V13.75H5V10.25H3V8.75H5V7C5 5.89543 5.89543 5 7 5H8.75ZM17 6.5H7C6.72386 6.5 6.5 6.72386 6.5 7V17C6.5 17.2761 6.72386 17.5 7 17.5H17C17.2761 17.5 17.5 17.2761 17.5 17V7C17.5 6.72386 17.2761 6.5 17 6.5ZM10 9.75H14V11.25H10V9.75ZM15 12.75H9V14.25H15V12.75Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Funding\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12 16C15.0376 16 17.5 13.5376 17.5 10.5C17.5 7.46243 15.0376 5 12 5C8.96243 5 6.5 7.46243 6.5 10.5C6.5 13.5376 8.96243 16 12 16ZM12 17.5C15.866 17.5 19 14.366 19 10.5C19 6.63401 15.866 3.5 12 3.5C8.13401 3.5 5 6.63401 5 10.5C5 14.366 8.13401 17.5 12 17.5ZM5 21.5V20H19V21.5H5ZM11.6906 13.6989V14.4001H12.2031V13.6987C12.5927 13.6749 12.9323 13.5962 13.2219 13.4626C13.576 13.3001 13.8458 13.0782 14.0313 12.797C14.2188 12.5157 14.3125 12.1938 14.3125 11.8313C14.3125 11.5438 14.2552 11.297 14.1406 11.0907C14.0281 10.8845 13.8802 10.7116 13.6969 10.572C13.5135 10.4324 13.3146 10.3199 13.1 10.2345C12.8854 10.1491 12.676 10.0813 12.4719 10.0313L12.2031 9.96147V7.95908C12.4671 7.98745 12.6931 8.06571 12.8813 8.19385C13.1229 8.35635 13.2604 8.58551 13.2938 8.88135H14.225C14.2167 8.5376 14.1167 8.23343 13.925 7.96885C13.7333 7.70218 13.4708 7.49281 13.1375 7.34072C12.8615 7.214 12.55 7.14007 12.2031 7.11894V6.4001H11.6906V7.12579C11.3799 7.15381 11.0944 7.2265 10.8344 7.34385C10.4927 7.49593 10.2219 7.70947 10.0219 7.98447C9.82188 8.25947 9.72188 8.58135 9.72188 8.9501C9.72188 9.39593 9.87084 9.75426 10.1688 10.0251C10.4688 10.2959 10.875 10.5011 11.3875 10.6407L11.6906 10.7234V12.8467C11.5362 12.8303 11.3904 12.7981 11.2531 12.7501C11.0469 12.6751 10.8771 12.5616 10.7438 12.4095C10.6125 12.2553 10.5375 12.0626 10.5188 11.8313H9.55001C9.57084 12.2168 9.68021 12.5501 9.87813 12.8313C10.076 13.1105 10.35 13.3261 10.7 13.4782C10.9868 13.6029 11.317 13.6764 11.6906 13.6989ZM12.2031 12.8449C12.3706 12.8258 12.5247 12.788 12.6656 12.7313C12.8802 12.6438 13.049 12.523 13.1719 12.3688C13.2948 12.2126 13.3563 12.0303 13.3563 11.822C13.3563 11.6324 13.3021 11.4772 13.1938 11.3563C13.0875 11.2355 12.9427 11.1355 12.7594 11.0563C12.5939 10.9841 12.4085 10.9196 12.2031 10.863V12.8449ZM11.6906 9.82624V7.96425C11.5423 7.98372 11.4079 8.01962 11.2875 8.07197C11.0958 8.15322 10.9469 8.26572 10.8406 8.40947C10.7365 8.55114 10.6844 8.7126 10.6844 8.89385C10.6844 9.04593 10.7198 9.17718 10.7906 9.2876C10.8635 9.39801 10.9583 9.49072 11.075 9.56572C11.1938 9.63864 11.3208 9.7001 11.4563 9.7501C11.5362 9.77838 11.6143 9.80377 11.6906 9.82624Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Expertise\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M11.7709 3.25C11.4142 3.25 10.9367 3.33959 10.4646 3.51017C9.99834 3.67861 9.47519 3.94828 9.04766 4.3561C7.51888 3.83174 6.04217 4.27123 5.29126 4.8326C4.43384 5.46401 4.21382 6.34943 4.17565 6.93786L4.17578 6.93524L4.17535 6.93656C4.17363 6.94251 4.16615 6.96841 4.13869 7.0075C4.1026 7.05887 4.06066 7.09144 4.03852 7.10313C3.71545 7.27372 3.35514 7.54648 3.0178 7.97525L3.01755 7.97557C1.89036 9.40985 1.953 10.9671 2.6725 12.1023C3.34029 13.1559 4.60411 13.8669 5.88665 13.6565L5.94563 13.7366C6.22194 14.1122 6.5907 14.6135 7.08948 15.0137C7.72572 15.5242 8.56009 15.875 9.72537 15.875H11.9968C13.3646 15.875 14.6539 17.203 14.6539 19.0999V19.18C14.6539 19.8704 15.2135 20.43 15.9039 20.43H16.0603C16.7301 20.43 17.2809 19.902 17.3092 19.2328L17.3796 17.5664C17.9452 17.5348 18.8095 17.3763 19.4614 16.7259C19.8558 16.3345 20.0892 15.9315 20.2067 15.5022C20.3054 15.1415 20.3112 14.7963 20.304 14.509C20.6599 14.3817 21.1242 14.1518 21.5008 13.7596C21.91 13.3333 22.1988 12.7285 22.1352 11.9504C22.0483 10.8766 21.6005 10.1174 20.8679 9.59301C20.8374 9.57116 20.8064 9.54978 20.7751 9.52886C20.9817 9.07868 21.0796 8.53329 20.8785 7.95863C20.6718 7.36802 20.1952 6.88069 19.5146 6.47782C19.1041 5.26338 18.2848 4.52582 17.1231 4.07654C16.6821 3.90393 16.2038 3.90385 15.7946 3.96236C15.4029 4.01835 15.0171 4.13616 14.6824 4.27694C13.9112 3.58663 12.8572 3.25 11.7709 3.25ZM19.4627 8.45408C19.492 8.53781 19.4994 8.63401 19.467 8.75476L18.3613 8.63377C18.1703 8.61286 17.9873 8.6658 17.8418 8.77047L16.5161 8.7833C16.503 8.69194 16.4834 8.60152 16.4572 8.51207C16.3166 8.03261 16.012 7.67853 15.756 7.42255C15.6426 7.3092 15.5224 7.19965 15.4176 7.10408L15.4176 7.10407L15.3741 7.06438C15.2533 6.95401 15.1533 6.86078 15.0672 6.769C14.8999 6.59076 14.8436 6.47813 14.827 6.39467L14.8271 6.39118C14.8273 6.37947 14.8282 6.34223 14.8386 6.2753C14.8527 6.1848 14.8786 6.0762 14.9142 5.96733C14.941 5.88541 14.9701 5.81303 14.998 5.75473C15.0716 5.73639 15.1445 5.71164 15.2161 5.68018C15.4643 5.57115 15.745 5.4847 16.0069 5.44726C16.278 5.4085 16.4679 5.43075 16.5767 5.47352L16.5767 5.47353L16.5807 5.47505C17.4086 5.79492 17.8643 6.24368 18.1082 7.00246C18.2076 7.31185 18.4192 7.57801 18.7061 7.74275C19.246 8.05281 19.4128 8.3115 19.4627 8.45408ZM17.8417 8.77051L17.8418 8.77047L19.467 8.75476L17.8417 8.77051ZM11.4429 14.375H11.9968C13.8436 14.375 15.305 15.6868 15.8842 17.4272L15.8885 17.3249C15.9208 16.5599 16.5865 16.0878 17.2064 16.0723C17.6379 16.0615 18.109 15.957 18.4028 15.6632L18.4048 15.6611L18.4178 15.6482C17.7553 15.5128 17.1755 15.2362 16.7197 14.7803C16.0294 14.0901 15.75 13.1156 15.75 12H17.25C17.25 12.8844 17.4706 13.4099 17.7803 13.7197C18.0001 13.9395 18.3287 14.1144 18.817 14.1974C18.908 13.6334 19.3649 13.2468 19.7784 13.1038C20.0076 13.0246 20.2511 12.8954 20.4187 12.7207C20.5662 12.5671 20.6649 12.3732 20.6402 12.0722L20.6401 12.0715C20.5866 11.4112 20.3475 11.0652 19.9948 10.8127C19.5838 10.5185 18.9751 10.3201 18.1027 10.1081C17.7185 10.0148 17.4727 9.63916 17.541 9.24972C17.5762 9.04961 17.688 8.88116 17.8417 8.77051L16.5161 8.78336C16.577 9.21151 16.4932 9.66021 16.2683 10.1266L14.9173 9.47483C15.0626 9.17364 15.0425 9.01823 15.0178 8.93411C15.0056 8.89265 14.9862 8.84812 14.9565 8.79847L10.7042 8.83968C10.603 8.87055 10.4988 8.9105 10.3939 8.9612C9.98319 9.15959 9.57849 9.5152 9.33315 10.1215C9.60413 10.7113 9.64517 11.4382 9.28215 12.1609L7.94176 11.4876C8.12419 11.1244 8.04564 10.796 7.85146 10.5572C7.63017 10.2851 7.35553 10.2299 7.21232 10.2722L6.80065 8.87752L4.19667 8.90275C3.46393 9.83536 3.55912 10.6993 3.93945 11.2993C4.35597 11.9565 5.09042 12.2864 5.68548 12.1688C6.07309 12.0922 6.63377 12.1581 6.99093 12.6284C7.05982 12.7192 7.12488 12.8069 7.18777 12.8917L7.18785 12.8918L7.18786 12.8918C7.46259 13.2624 7.69611 13.5773 8.02823 13.8438C8.39483 14.1379 8.89707 14.375 9.72537 14.375H9.81121C9.72525 13.9683 9.77751 13.5456 10.0107 13.1526C10.4546 12.4044 11.3736 12.0882 12.3664 12.1489C12.7647 12.1732 12.9918 11.911 13.0262 11.6421C13.0426 11.5134 13.0072 11.4306 12.9674 11.3856C12.9345 11.3483 12.8223 11.25 12.5 11.25V9.75C13.1512 9.75 13.7132 9.96419 14.0916 10.3925C14.463 10.813 14.5759 11.3489 14.514 11.8324C14.3918 12.7879 13.5557 13.7244 12.275 13.6461C11.5888 13.6042 11.3474 13.8393 11.3007 13.918C11.285 13.9445 11.2078 14.0958 11.4429 14.375ZM8.23218 8.98162C8.25682 8.94127 8.28203 8.9017 8.30777 8.86291L7.95761 8.8663C8.05185 8.89853 8.14358 8.93725 8.23218 8.98162ZM8.30792 8.86268L7.95693 8.86607C7.59281 8.7417 7.19124 8.71441 6.78766 8.83354L6.80057 8.87725L4.19693 8.90243C4.40084 8.64335 4.59645 8.5048 4.73893 8.42956C5.20654 8.18265 5.63272 7.6483 5.6725 7.03496C5.6943 6.69897 5.80849 6.31383 6.18217 6.03937L6.18219 6.0394L6.1882 6.03489C6.57839 5.74225 7.56234 5.41543 8.60142 5.78915C9.14003 5.98288 9.70689 5.809 10.0686 5.4554C10.3017 5.2275 10.6289 5.04569 10.9743 4.92091C11.3238 4.79461 11.6268 4.75 11.7709 4.75C12.4957 4.75 13.1206 4.95595 13.5627 5.29574C13.5354 5.36437 13.5107 5.43326 13.4886 5.50096C13.4303 5.67907 13.3841 5.86661 13.3564 6.04477C13.3306 6.21039 13.3125 6.4189 13.3435 6.61849L13.3435 6.6185L13.3443 6.62374C13.4283 7.1406 13.7167 7.52204 13.9735 7.79556C14.1032 7.9338 14.2417 8.06158 14.3624 8.17186L14.4083 8.21373C14.5157 8.3117 14.6083 8.39617 14.6953 8.48321C14.8229 8.6108 14.905 8.71228 14.9564 8.79838L10.7048 8.8395C11.0745 8.72681 11.4031 8.73543 11.575 8.78435L11.9857 7.34167C11.3681 7.16587 10.5166 7.23604 9.74137 7.61055C9.20733 7.86854 8.69686 8.2766 8.30792 8.86268Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Organization\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.1 5C7.40964 5 6.85 5.55964 6.85 6.25V19.5002H17.15V6.25C17.15 5.55965 16.5904 5 15.9 5H8.1ZM18.65 19.5002V6.25C18.65 4.73122 17.4188 3.5 15.9 3.5H8.1C6.58122 3.5 5.35 4.73122 5.35 6.25V19.5002H4V21.0002H20V19.5002H18.65ZM11 16H9V14.5H11V16ZM13 16H15V14.5H13V16ZM11 13H9V11.5H11V13ZM13 13H15V11.5H13V13ZM11 10H9V8.5H11V10ZM13 10H15V8.5H13V10Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Compounds\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M10 3.75V10L4.88108 18.7448C4.49085 19.4115 4.97163 20.25 5.74409 20.25H18.2559C19.0284 20.25 19.5092 19.4115 19.1189 18.7448L14 10V3.75M10 3.75H14M10 3.75H8M14 3.75H16\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n case \"Checkmark\": {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 25 25\"\n fill=\"none\"\n >\n <path\n d=\"M22.25 12.5V11.75H20.75V12.5H22.25ZM15.2501 4.71925L15.9572 4.96918L16.4571 3.55492L15.7499 3.30499L15.2501 4.71925ZM11.222 14.6588L11.7523 14.1284H11.7523L11.222 14.6588ZM12.3534 14.6588L11.823 14.1284H11.823L12.3534 14.6588ZM20.2876 6.72452L19.7573 6.19419V6.19419L20.2876 6.72452ZM20.75 12.5C20.75 17.0563 17.0563 20.75 12.5 20.75V22.25C17.8848 22.25 22.25 17.8848 22.25 12.5H20.75ZM12.5 20.75C7.94365 20.75 4.25 17.0563 4.25 12.5H2.75C2.75 17.8848 7.11522 22.25 12.5 22.25V20.75ZM4.25 12.5C4.25 7.94365 7.94365 4.25 12.5 4.25V2.75C7.11522 2.75 2.75 7.11522 2.75 12.5H4.25ZM12.5 4.25C13.4656 4.25 14.3909 4.41557 15.2501 4.71925L15.7499 3.30499C14.7324 2.94535 13.6382 2.75 12.5 2.75V4.25ZM7.96967 12.4671L10.6917 15.1891L11.7523 14.1284L9.03033 11.4064L7.96967 12.4671ZM10.6917 15.1891C11.297 15.7944 12.2784 15.7944 12.8837 15.1891L11.823 14.1284C11.8035 14.148 11.7718 14.148 11.7523 14.1284L10.6917 15.1891ZM12.8837 15.1891L20.8179 7.25485L19.7573 6.19419L11.823 14.1284L12.8837 15.1891ZM20.8179 7.25485L21.0424 7.03033L19.9818 5.96967L19.7573 6.19419L20.8179 7.25485Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Checkup\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 56 56\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"28\" cy=\"28\" r=\"27.5\" fill=\"#DEF0FF\" stroke=\"#D9EEFF\" />\n <path\n d=\"M23.6841 34.2648L23.4209 33.8396H23.4209L23.6841 34.2648ZM29.1311 12.3092L29.2781 11.8313L29.1311 12.3092ZM21.312 34.2648L21.0488 34.6899L21.312 34.2648ZM42.498 37.999V32.999H41.498V37.999H42.498ZM32.498 32.999V40.749H33.498V32.999H32.498ZM22.998 40.749V34.999H21.998V40.749H22.998ZM22.7612 34.5739L21.5751 33.8396L21.0488 34.6899L22.2349 35.4242L22.7612 34.5739ZM16.012 12.7871L18.6451 11.9769L18.351 11.0211L15.7179 11.8313L16.012 12.7871ZM22.7612 35.4242L23.9473 34.6899L23.4209 33.8396L22.2349 34.5739L22.7612 35.4242ZM29.2781 11.8313L26.6451 11.0211L26.351 11.9769L28.9841 12.7871L29.2781 11.8313ZM33.498 17.5449C33.498 14.9205 31.7864 12.6031 29.2781 11.8313L28.9841 12.7871C31.0728 13.4298 32.498 15.3595 32.498 17.5449H33.498ZM23.9473 34.6899C29.8849 31.0142 33.498 24.5281 33.498 17.5449H32.498C32.498 24.1818 29.0641 30.3463 23.4209 33.8396L23.9473 34.6899ZM12.498 17.5449C12.498 15.3595 13.9233 13.4298 16.012 12.7871L15.7179 11.8313C13.2097 12.6031 11.498 14.9205 11.498 17.5449H12.498ZM27.748 45.499C25.1247 45.499 22.998 43.3724 22.998 40.749H21.998C21.998 43.9247 24.5724 46.499 27.748 46.499V45.499ZM32.498 40.749C32.498 43.3724 30.3714 45.499 27.748 45.499V46.499C30.9237 46.499 33.498 43.9247 33.498 40.749H32.498ZM37.498 27.999C34.7366 27.999 32.498 30.2376 32.498 32.999H33.498C33.498 30.7899 35.2889 28.999 37.498 28.999V27.999ZM21.5751 33.8396C15.932 30.3463 12.498 24.1818 12.498 17.5449H11.498C11.498 24.5281 15.1112 31.0142 21.0488 34.6899L21.5751 33.8396ZM42.498 32.999C42.498 30.2376 40.2595 27.999 37.498 27.999V28.999C39.7072 28.999 41.498 30.7899 41.498 32.999H42.498Z\"\n fill=\"#009CEA\"\n />\n <circle cx=\"18.498\" cy=\"11.499\" r=\"2\" fill=\"white\" stroke=\"#009CEA\" />\n <circle cx=\"26.498\" cy=\"11.499\" r=\"2\" fill=\"white\" stroke=\"#009CEA\" />\n <circle cx=\"41.998\" cy=\"40.999\" r=\"3.5\" fill=\"white\" stroke=\"#009CEA\" />\n <path\n d=\"M24.0793 34.9025L23.7221 35.1236C23.4276 35.3059 23.2484 35.6276 23.2484 35.9739V36.25C23.2484 36.6642 22.9127 37 22.4984 37C22.0842 37 21.7484 36.6642 21.7484 36.25V35.9739C21.7484 35.6276 21.5693 35.3059 21.2748 35.1236L20.9176 34.9025C18.485 33.3966 16.4378 31.4248 14.8625 29.1423C14.5225 28.6497 14.8881 28 15.4867 28C15.7452 28 15.9856 28.1302 16.1332 28.3424C17.5879 30.4351 19.4719 32.2434 21.7071 33.6271L21.9721 33.7911C22.2946 33.9908 22.7023 33.9908 23.0248 33.7911L23.2898 33.6271C25.525 32.2434 27.409 30.4351 28.8637 28.3424C29.0113 28.1302 29.2517 28 29.5102 28C30.1087 28 30.4744 28.6497 30.1344 29.1423C28.5591 31.4248 26.5119 33.3966 24.0793 34.9025Z\"\n fill=\"#009CEA\"\n stroke=\"#009CEA\"\n />\n </svg>\n );\n }\n case \"Publication\": {\n // Have to use unoptimized SVG otherwise the middle bar of the book disappears at small sizes\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <mask id=\"path-2-inside-1_1_7\" fill=\"white\">\n <path d=\"M21 7.28555V19.6665C18.3722 17.5531 14.6278 17.5531 12 19.6665C9.37219 17.5531 5.62781 17.5531 3 19.6665V7.28555C5.62781 5.17218 9.37219 5.17218 12 7.28555C14.6278 5.17218 18.3722 5.17218 21 7.28555Z\" />\n </mask>\n <path\n d=\"M11.25 7.28555V19.6665H12.75V7.28555H11.25ZM21 7.28555H22.5C22.5 6.83123 22.2941 6.40139 21.9401 6.11667L21 7.28555ZM21 19.6665L20.0599 20.8354C20.5098 21.1972 21.1274 21.2687 21.648 21.0193C22.1687 20.7699 22.5 20.2438 22.5 19.6665H21ZM3 19.6665H1.5C1.5 20.2438 1.83131 20.7699 2.35196 21.0193C2.87261 21.2687 3.49019 21.1972 3.94006 20.8354L3 19.6665ZM3 7.28555L2.05994 6.11667C1.70591 6.40139 1.5 6.83123 1.5 7.28555H3ZM12 7.28555L11.0599 8.45444C11.6089 8.89592 12.3911 8.89592 12.9401 8.45444L12 7.28555ZM12 19.6665L11.0599 20.8354C11.6089 21.2769 12.3911 21.2769 12.9401 20.8354L12 19.6665ZM19.5 7.28555V19.6665H22.5V7.28555H19.5ZM4.5 19.6665V7.28555H1.5V19.6665H4.5ZM21.9401 18.4976C18.7633 15.9428 14.2367 15.9428 11.0599 18.4976L12.9401 20.8354C15.0189 19.1635 17.9811 19.1635 20.0599 20.8354L21.9401 18.4976ZM12.9401 8.45444C15.0189 6.78255 17.9811 6.78256 20.0599 8.45444L21.9401 6.11667C18.7633 3.56181 14.2367 3.56181 11.0599 6.11667L12.9401 8.45444ZM3.94006 8.45444C6.01891 6.78256 8.98109 6.78256 11.0599 8.45444L12.9401 6.11667C9.7633 3.56181 5.2367 3.56181 2.05994 6.11667L3.94006 8.45444ZM12.9401 18.4976C9.7633 15.9428 5.2367 15.9428 2.05994 18.4976L3.94006 20.8354C6.01891 19.1635 8.98109 19.1635 11.0599 20.8354L12.9401 18.4976Z\"\n fill={color}\n mask=\"url(#path-2-inside-1_1_7)\"\n />\n </svg>\n );\n }\n case \"Star\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M7.70109 2.35566C7.82336 2.10791 8.17664 2.10791 8.29891 2.35566L9.75927 5.31467C9.80783 5.41306 9.90168 5.48125 10.0103 5.49702L13.2757 5.97152C13.5491 6.01125 13.6583 6.34724 13.4605 6.54009L11.0975 8.84336C11.019 8.91993 10.9831 9.03027 11.0017 9.1384L11.5595 12.3907C11.6062 12.663 11.3204 12.8706 11.0758 12.7421L8.15511 11.2065C8.05801 11.1555 7.94199 11.1555 7.84489 11.2065L4.92417 12.7421C4.67962 12.8706 4.39381 12.663 4.44052 12.3907L4.99832 9.1384C5.01687 9.03027 4.98102 8.91994 4.90246 8.84336L2.53955 6.54009C2.34171 6.34724 2.45088 6.01125 2.72428 5.97152L5.98975 5.49702C6.09832 5.48125 6.19217 5.41306 6.24073 5.31467L7.70109 2.35566Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Status\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M3.75 6.75H16.25L20.25 12L16.25 17.25H3.75V6.75Z\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n case \"Edit\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11 6C11 6 6.12619 6 4 6V20H18V13\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M17.1791 4.48399C17.489 4.1741 17.9093 4 18.3476 4C18.7858 4 19.2061 4.1741 19.516 4.48399C19.8259 4.79388 20 5.21418 20 5.65243C20 6.09068 19.8259 6.51099 19.516 6.82088L12.1159 14.221L9 15L9.77896 11.8841L17.1791 4.48399Z\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n case \"RFP\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.125 2C3.95139 2 3 2.95139 3 4.125V17.375C3 18.5486 3.9514 19.5 5.125 19.5H9.00337C8.77471 19.1047 8.58109 18.6866 8.42676 18.25H5.125C4.64175 18.25 4.25 17.8582 4.25 17.375V4.125C4.25 3.64175 4.64175 3.25 5.125 3.25H15.875C16.3582 3.25 16.75 3.64175 16.75 4.125V8.3537C17.1802 8.42587 17.598 8.53466 18 8.67676V4.125C18 2.95139 17.0486 2 15.875 2H5.125ZM8.1037 14.5C8.17587 14.0698 8.28466 13.652 8.42676 13.25H6.75V14.5H8.1037ZM9.40756 11.375C9.73706 10.917 10.1169 10.4976 10.5391 10.125H6.75V11.375H9.40756ZM6.75 8.25H14.25V7H6.75V8.25ZM20.5 15.75C20.5 18.5114 18.2614 20.75 15.5 20.75C12.7386 20.75 10.5 18.5114 10.5 15.75C10.5 12.9886 12.7386 10.75 15.5 10.75C18.2614 10.75 20.5 12.9886 20.5 15.75ZM21.75 15.75C21.75 19.2018 18.9518 22 15.5 22C12.0482 22 9.25 19.2018 9.25 15.75C9.25 12.2982 12.0482 9.5 15.5 9.5C18.9518 9.5 21.75 12.2982 21.75 15.75ZM15.5 18.1538C16.8276 18.1538 17.9038 17.0776 17.9038 15.75C17.9038 14.4224 16.8276 13.3462 15.5 13.3462C14.1724 13.3462 13.0962 14.4224 13.0962 15.75C13.0962 17.0776 14.1724 18.1538 15.5 18.1538ZM15.5 19.5C17.5711 19.5 19.25 17.8211 19.25 15.75C19.25 13.6789 17.5711 12 15.5 12C13.4289 12 11.75 13.6789 11.75 15.75C11.75 17.8211 13.4289 19.5 15.5 19.5ZM15.5 16.75C16.0523 16.75 16.5 16.3023 16.5 15.75C16.5 15.1977 16.0523 14.75 15.5 14.75C14.9477 14.75 14.5 15.1977 14.5 15.75C14.5 16.3023 14.9477 16.75 15.5 16.75Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"RFP Complete\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.625 1.875C4.38236 1.875 3.375 2.88236 3.375 4.125V17.375C3.375 18.6176 4.38236 19.625 5.625 19.625H9.5773C9.29379 19.1561 9.06018 18.6536 8.88383 18.125H5.625C5.21079 18.125 4.875 17.7892 4.875 17.375V4.125C4.875 3.71079 5.21079 3.375 5.625 3.375H16.375C16.7892 3.375 17.125 3.71079 17.125 4.125V8.33381C17.6444 8.41194 18.1463 8.54331 18.625 8.72221V4.125C18.625 2.88236 17.6176 1.875 16.375 1.875H5.625ZM8.6037 14.5C8.69096 13.9799 8.83174 13.4779 9.0202 13H7.25V14.5H8.6037ZM9.90756 11.375C10.313 10.8114 10.7947 10.3064 11.3375 9.875H7.25V11.375H9.90756ZM7.25 8.25H14.75V6.75H7.25V8.25ZM15.9416 17.7337L21.3925 12.2829L20.1096 11L14.787 16.3225L12.4461 13.9816L11.1632 15.2645L13.6324 17.7337C14.2701 18.3714 15.304 18.3714 15.9416 17.7337Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"RFP Filled\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 40 41\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M0 33C0 34.6569 1.34315 36 3 36H17V30C17 28.3431 18.3431 27 20 27H26V3C26 1.34315 24.6569 0 23 0H3C1.34315 0 0 1.34315 0 3V33Z\"\n fill={color}\n />\n <path d=\"M26 27H20C18.3431 27 17 28.3431 17 30V36L26 27Z\" fill={color} />\n <rect width=\"8\" height=\"2\" transform=\"matrix(1 0 0 -1 6 23)\" fill=\"white\" />\n <rect width=\"14\" height=\"2\" transform=\"matrix(1 0 0 -1 6 17)\" fill=\"white\" />\n <rect width=\"14\" height=\"2\" transform=\"matrix(1 0 0 -1 6 11)\" fill=\"white\" />\n <circle\n r=\"8.25\"\n transform=\"matrix(1 0 0 -1 22.5 31.5)\"\n fill={color}\n stroke=\"white\"\n strokeWidth=\"1.5\"\n />\n <circle\n r=\"4.5\"\n transform=\"matrix(1 0 0 -1 22.5 31.5)\"\n fill={color}\n stroke=\"white\"\n strokeWidth=\"1.5\"\n />\n <circle r=\"1.5\" transform=\"matrix(1 0 0 -1 22.5 31.5)\" fill=\"white\" />\n </svg>\n );\n }\n case \"Row height\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M20.2803 5.21772C19.9874 4.92482 19.5126 4.92482 19.2197 5.21772L16.9697 7.46772L18.0303 8.52838L19 7.5587V17.4235L18.0303 16.4538L16.9697 17.5145L19.2197 19.7645C19.5126 20.0574 19.9874 20.0574 20.2803 19.7645L22.5303 17.5145L21.4697 16.4539L20.5 17.4235V7.55871L21.4716 8.53033L22.5323 7.46967L20.2803 5.21772ZM4 7.5H12C12.2761 7.5 12.5 7.72386 12.5 8V16C12.5 16.2761 12.2761 16.5 12 16.5H4C3.72386 16.5 3.5 16.2761 3.5 16V8C3.5 7.72386 3.72386 7.5 4 7.5ZM2 8C2 6.89543 2.89543 6 4 6H12C13.1046 6 14 6.89543 14 8V16C14 17.1046 13.1046 18 12 18H4C2.89543 18 2 17.1046 2 16V8Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Row height - short\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M19.2197 5.21772C19.5126 4.92482 19.9874 4.92482 20.2803 5.21772L22.5323 7.46967L21.4716 8.53033L20.5 7.55871V17.4235L21.4697 16.4539L22.5303 17.5145L20.2803 19.7645C19.9874 20.0574 19.5126 20.0574 19.2197 19.7645L16.9697 17.5145L18.0303 16.4538L19 17.4235V7.5587L18.0303 8.52838L16.9697 7.46772L19.2197 5.21772ZM2 6H14V7.5H2V6ZM14 16.5H2V18H14V16.5ZM2 13H14V14.5H2V13ZM14 9.5H2V11H14V9.5Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Row height - medium\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <mask id=\"path-1-inside-1_3576_9133\" fill=\"white\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M20.2803 5.21772C19.9874 4.92482 19.5126 4.92482 19.2197 5.21772L16.9697 7.46772L18.0303 8.52838L19 7.5587V17.4235L18.0303 16.4538L16.9697 17.5145L19.2197 19.7645C19.5126 20.0574 19.9874 20.0574 20.2803 19.7645L22.5303 17.5145L21.4697 16.4539L20.5 17.4235V7.55871L21.4716 8.53033L22.5323 7.46967L20.2803 5.21772ZM4 7.5H12C12.2761 7.5 12.5 7.72386 12.5 8V9C12.5 9.27614 12.2761 9.5 12 9.5H4C3.72386 9.5 3.5 9.27614 3.5 9V8C3.5 7.72386 3.72386 7.5 4 7.5ZM2 8C2 6.89543 2.89543 6 4 6H12C13.1046 6 14 6.89543 14 8V9C14 10.1046 13.1046 11 12 11H4C2.89543 11 2 10.1046 2 9V8ZM2 16.5H14V18H2V16.5ZM14 13H2V14.5H14V13Z\"\n />\n </mask>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M20.2803 5.21772C19.9874 4.92482 19.5126 4.92482 19.2197 5.21772L16.9697 7.46772L18.0303 8.52838L19 7.5587V17.4235L18.0303 16.4538L16.9697 17.5145L19.2197 19.7645C19.5126 20.0574 19.9874 20.0574 20.2803 19.7645L22.5303 17.5145L21.4697 16.4539L20.5 17.4235V7.55871L21.4716 8.53033L22.5323 7.46967L20.2803 5.21772ZM4 7.5H12C12.2761 7.5 12.5 7.72386 12.5 8V9C12.5 9.27614 12.2761 9.5 12 9.5H4C3.72386 9.5 3.5 9.27614 3.5 9V8C3.5 7.72386 3.72386 7.5 4 7.5ZM2 8C2 6.89543 2.89543 6 4 6H12C13.1046 6 14 6.89543 14 8V9C14 10.1046 13.1046 11 12 11H4C2.89543 11 2 10.1046 2 9V8ZM2 16.5H14V18H2V16.5ZM14 13H2V14.5H14V13Z\"\n fill={color}\n />\n <path\n d=\"M19.2197 5.21772L19.9268 5.92482L19.9268 5.92482L19.2197 5.21772ZM20.2803 5.21772L19.5732 5.92482V5.92482L20.2803 5.21772ZM16.9697 7.46772L16.2626 6.76061L15.5555 7.46772L16.2626 8.17483L16.9697 7.46772ZM18.0303 8.52838L17.3232 9.23549L18.0303 9.94259L18.7374 9.23549L18.0303 8.52838ZM19 7.5587H20V5.1445L18.2929 6.8516L19 7.5587ZM19 17.4235L18.2929 18.1306L20 19.8377V17.4235H19ZM18.0303 16.4538L18.7374 15.7467L18.0303 15.0396L17.3232 15.7467L18.0303 16.4538ZM16.9697 17.5145L16.2626 16.8074L15.5555 17.5145L16.2626 18.2216L16.9697 17.5145ZM19.2197 19.7645L19.9268 19.0574V19.0574L19.2197 19.7645ZM20.2803 19.7645L19.5732 19.0574V19.0574L20.2803 19.7645ZM22.5303 17.5145L23.2374 18.2216L23.9445 17.5145L23.2374 16.8074L22.5303 17.5145ZM21.4697 16.4539L22.1768 15.7467L21.4697 15.0396L20.7626 15.7467L21.4697 16.4539ZM20.5 17.4235H19.5V19.8377L21.2071 18.1306L20.5 17.4235ZM20.5 7.55871L21.2071 6.8516L19.5 5.14449V7.55871H20.5ZM21.4716 8.53033L20.7645 9.23744L21.4716 9.94454L22.1787 9.23744L21.4716 8.53033ZM22.5323 7.46967L23.2394 8.17678L23.9465 7.46967L23.2394 6.76256L22.5323 7.46967ZM14 16.5H15V15.5H14V16.5ZM2 16.5V15.5H1V16.5H2ZM14 18V19H15V18H14ZM2 18H1V19H2V18ZM2 13V12H1V13H2ZM14 13H15V12H14V13ZM2 14.5H1V15.5H2V14.5ZM14 14.5V15.5H15V14.5H14ZM19.9268 5.92482C19.8292 6.02246 19.6709 6.02245 19.5732 5.92482L20.9874 4.51061C20.304 3.82719 19.196 3.82719 18.5126 4.51061L19.9268 5.92482ZM17.6768 8.17483L19.9268 5.92482L18.5126 4.51061L16.2626 6.76061L17.6768 8.17483ZM18.7374 7.82127L17.6768 6.76061L16.2626 8.17483L17.3232 9.23549L18.7374 7.82127ZM18.2929 6.8516L17.3232 7.82127L18.7374 9.23549L19.7071 8.26581L18.2929 6.8516ZM20 17.4235V7.5587H18V17.4235H20ZM17.3232 17.1609L18.2929 18.1306L19.7071 16.7164L18.7374 15.7467L17.3232 17.1609ZM17.6768 18.2216L18.7374 17.1609L17.3232 15.7467L16.2626 16.8074L17.6768 18.2216ZM19.9268 19.0574L17.6768 16.8074L16.2626 18.2216L18.5126 20.4716L19.9268 19.0574ZM19.5732 19.0574C19.6709 18.9598 19.8292 18.9598 19.9268 19.0574L18.5126 20.4716C19.196 21.155 20.304 21.155 20.9874 20.4716L19.5732 19.0574ZM21.8232 16.8074L19.5732 19.0574L20.9874 20.4716L23.2374 18.2216L21.8232 16.8074ZM20.7626 17.161L21.8232 18.2216L23.2374 16.8074L22.1768 15.7467L20.7626 17.161ZM21.2071 18.1306L22.1768 17.161L20.7626 15.7467L19.7929 16.7164L21.2071 18.1306ZM19.5 7.55871V17.4235H21.5V7.55871H19.5ZM22.1787 7.82322L21.2071 6.8516L19.7929 8.26581L20.7645 9.23744L22.1787 7.82322ZM21.8252 6.76256L20.7645 7.82322L22.1787 9.23744L23.2394 8.17678L21.8252 6.76256ZM19.5732 5.92482L21.8252 8.17678L23.2394 6.76256L20.9874 4.51061L19.5732 5.92482ZM12 6.5H4V8.5H12V6.5ZM13.5 8C13.5 7.17157 12.8284 6.5 12 6.5V8.5C11.7239 8.5 11.5 8.27614 11.5 8H13.5ZM13.5 9V8H11.5V9H13.5ZM12 10.5C12.8284 10.5 13.5 9.82843 13.5 9H11.5C11.5 8.72386 11.7239 8.5 12 8.5V10.5ZM4 10.5H12V8.5H4V10.5ZM2.5 9C2.5 9.82843 3.17157 10.5 4 10.5V8.5C4.27614 8.5 4.5 8.72386 4.5 9H2.5ZM2.5 8V9H4.5V8H2.5ZM4 6.5C3.17157 6.5 2.5 7.17157 2.5 8H4.5C4.5 8.27614 4.27614 8.5 4 8.5V6.5ZM4 5C2.34315 5 1 6.34315 1 8H3C3 7.44772 3.44772 7 4 7V5ZM12 5H4V7H12V5ZM15 8C15 6.34315 13.6569 5 12 5V7C12.5523 7 13 7.44772 13 8H15ZM15 9V8H13V9H15ZM12 12C13.6569 12 15 10.6569 15 9H13C13 9.55228 12.5523 10 12 10V12ZM4 12H12V10H4V12ZM1 9C1 10.6569 2.34315 12 4 12V10C3.44772 10 3 9.55228 3 9H1ZM1 8V9H3V8H1ZM14 15.5H2V17.5H14V15.5ZM15 18V16.5H13V18H15ZM2 19H14V17H2V19ZM1 16.5V18H3V16.5H1ZM2 14H14V12H2V14ZM3 14.5V13H1V14.5H3ZM14 13.5H2V15.5H14V13.5ZM13 13V14.5H15V13H13Z\"\n fill={color}\n mask=\"url(#path-1-inside-1_3576_9133)\"\n />\n </svg>\n );\n }\n case \"Row height - full\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M19.2197 5.21772C19.5126 4.92482 19.9874 4.92482 20.2803 5.21772L22.5323 7.46967L21.4716 8.53033L20.5 7.55871V17.4235L21.4697 16.4539L22.5303 17.5145L20.2803 19.7645C19.9874 20.0574 19.5126 20.0574 19.2197 19.7645L16.9697 17.5145L18.0303 16.4538L19 17.4235V7.5587L18.0303 8.52838L16.9697 7.46772L19.2197 5.21772ZM12 7.5H4C3.72386 7.5 3.5 7.72386 3.5 8V12.5C3.5 12.7761 3.72386 13 4 13H12C12.2761 13 12.5 12.7761 12.5 12.5V8C12.5 7.72386 12.2761 7.5 12 7.5ZM4 6C2.89543 6 2 6.89543 2 8V12.5C2 13.6046 2.89543 14.5 4 14.5H12C13.1046 14.5 14 13.6046 14 12.5V8C14 6.89543 13.1046 6 12 6H4ZM14 16.5H2V18H14V16.5Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Save\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M16.5833 20.25V12.9167H7.41667V20.25M7.41667 3.75V8.33333H14.75M18.4167 20.25H5.58333C5.0971 20.25 4.63079 20.0568 4.28697 19.713C3.94315 19.3692 3.75 18.9029 3.75 18.4167V5.58333C3.75 5.0971 3.94315 4.63079 4.28697 4.28697C4.63079 3.94315 5.0971 3.75 5.58333 3.75H15.6667L20.25 8.33333V18.4167C20.25 18.9029 20.0568 19.3692 19.713 19.713C19.3692 20.0568 18.9029 20.25 18.4167 20.25Z\"\n stroke={color}\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n case \"Sort\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.5858 5H4.41421C3.52331 5 3.07714 6.07714 3.70711 6.70711L7.29289 10.2929C7.68342 10.6834 8.31658 10.6834 8.70711 10.2929L12.2929 6.70711C12.9229 6.07714 12.4767 5 11.5858 5Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Public\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.1432 18.5C13.3337 20.0686 12.4961 20.5 12 20.5C11.5039 20.5 10.6663 20.0686 9.85678 18.5H14.1432ZM14.7619 17H9.23815C8.84277 15.7908 8.5787 14.3418 8.51495 12.75H15.4851C15.4213 14.3418 15.1572 15.7908 14.7619 17ZM15.7998 18.5C15.5724 19.0313 15.3176 19.5143 15.0398 19.9403C15.935 19.5974 16.7574 19.1074 17.4775 18.5H15.7998ZM18.8746 17H16.3311C16.6976 15.7329 16.9291 14.29 16.9861 12.75L20.4674 12.75C20.3292 14.3303 19.7586 15.7866 18.8746 17ZM20.4674 11.25C20.3292 9.6697 19.7586 8.21336 18.8746 7H16.3311C16.6976 8.26713 16.9291 9.71003 16.9861 11.25L20.4674 11.25ZM15.4851 11.25H8.51495C8.5787 9.65819 8.84277 8.20916 9.23815 7L14.7619 7C15.1572 8.20916 15.4213 9.65819 15.4851 11.25ZM14.1432 5.5L9.85678 5.5C10.6663 3.93136 11.5039 3.5 12 3.5C12.4961 3.5 13.3337 3.93136 14.1432 5.5ZM15.7998 5.5H17.4775C16.7574 4.89256 15.935 4.40261 15.0398 4.05969C15.3176 4.48571 15.5724 4.96873 15.7998 5.5ZM8.20021 5.5C8.42762 4.96873 8.68241 4.48571 8.9602 4.05969C8.06499 4.40261 7.24257 4.89256 6.52248 5.5H8.20021ZM5.1254 7C4.24138 8.21336 3.67079 9.6697 3.53263 11.25H7.01385C7.07094 9.71003 7.30241 8.26713 7.66891 7H5.1254ZM7.01385 12.75H3.53263C3.67079 14.3303 4.24138 15.7866 5.1254 17H7.66891C7.30241 15.7329 7.07094 14.29 7.01385 12.75ZM8.20021 18.5H6.52248C7.24257 19.1074 8.06499 19.5974 8.9602 19.9403C8.68241 19.5143 8.42762 19.0313 8.20021 18.5ZM22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Quota-Based RFP\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M4.3916 1.98438C3.61495 1.98438 2.98535 2.61398 2.98535 3.39063V14.5586C2.98535 15.3353 3.61495 15.9649 4.3916 15.9649H7.75213C7.58251 15.6673 7.43753 15.3539 7.31998 15.0274H4.3916C4.13272 15.0274 3.92285 14.8175 3.92285 14.5586V3.39063C3.92285 3.13174 4.13272 2.92188 4.3916 2.92188H13.553C13.8119 2.92188 14.0217 3.13174 14.0217 3.39062V7.05697C14.3437 7.11283 14.657 7.19427 14.9592 7.29913V3.39062C14.9592 2.61397 14.3296 1.98438 13.553 1.98438H4.3916ZM7.04897 11.9847C7.10297 11.6628 7.18252 11.3496 7.28545 11.0472H5.96225V11.9847H7.04897ZM8.09551 9.47641C8.34076 9.13549 8.62077 8.82126 8.93037 8.53891H5.96225V9.47641H8.09551ZM5.96225 6.96813H11.9821V6.03063H5.96225V6.96813ZM13.0004 16.9995C15.2095 16.9995 17.0004 15.2087 17.0004 12.9995C17.0004 10.7904 15.2095 8.99951 13.0004 8.99951C10.7912 8.99951 9.00037 10.7904 9.00037 12.9995C9.00037 15.2087 10.7912 16.9995 13.0004 16.9995ZM13.0004 17.9995C15.7618 17.9995 18.0004 15.7609 18.0004 12.9995C18.0004 10.2381 15.7618 7.99951 13.0004 7.99951C10.2389 7.99951 8.00037 10.2381 8.00037 12.9995C8.00037 15.7609 10.2389 17.9995 13.0004 17.9995ZM12.7087 12.5162V10.083H13.7087V12.5162C13.7087 13.3782 13.2646 14.1793 12.5337 14.6362L11.807 15.0903L11.277 14.2423L12.0037 13.7882C12.4422 13.5141 12.7087 13.0334 12.7087 12.5162Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Hide\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M18.47 19.5304L16.0848 17.1452C14.822 17.6616 13.4436 18.0003 12.0003 18.0003C8.09978 18.0003 4.67344 15.527 2.72027 13.7563C1.65978 12.7949 1.66151 11.2039 2.7221 10.2426C3.66738 9.38586 4.95732 8.3649 6.47884 7.53927L4.46995 5.53039L5.53061 4.46973L13.8732 12.8123L15.3106 14.2462L15.3093 14.2482L16.412 15.3489L17.5247 16.4597L17.522 16.4611L19.5306 18.4697L18.47 19.5304ZM14.9211 15.9816L14.2486 15.309C13.6078 15.7452 12.8338 16.0002 12.0003 16.0002C9.79114 16.0002 8.00028 14.2093 8.00028 12.0002C8.00028 11.1692 8.25365 10.3975 8.68735 9.75793L8.68756 9.75763L7.5826 8.65462C6.03862 9.43097 4.70567 10.4692 3.72945 11.354C3.32426 11.7213 3.32543 12.2803 3.72774 12.645C5.62079 14.3611 8.68609 16.5003 12.0003 16.5003C12.9985 16.5003 13.9796 16.3064 14.9211 15.9816ZM9.78042 10.8486L13.1558 14.218C12.8099 14.3986 12.4169 14.5002 12.0003 14.5002C10.6196 14.5002 9.50028 13.3809 9.50028 12.0002C9.50028 11.5851 9.60112 11.1935 9.78042 10.8486ZM9.40543 6.3515L10.6667 7.61178L18.7719 15.7104C19.7555 15.0628 20.6047 14.3684 21.2787 13.7574C22.3393 12.7961 22.3408 11.2055 21.2803 10.2441C19.3271 8.47338 15.9008 6.00006 12.0003 6.00006C11.7343 6.00006 11.4706 6.01155 11.2094 6.03354C10.5926 6.08546 9.98993 6.19586 9.40543 6.3515ZM20.2714 12.646C19.8834 12.9977 19.4356 13.3768 18.9375 13.7553L12.7092 7.53213C15.7481 7.80474 18.5155 9.76229 20.2728 11.3554C20.6754 11.7203 20.6763 12.279 20.2714 12.646Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Followers\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12 10.5C13.3807 10.5 14.5 9.38071 14.5 8C14.5 6.61929 13.3807 5.5 12 5.5C10.6193 5.5 9.5 6.61929 9.5 8C9.5 9.38071 10.6193 10.5 12 10.5ZM12 12C14.2091 12 16 10.2091 16 8C16 5.79086 14.2091 4 12 4C9.79086 4 8 5.79086 8 8C8 10.2091 9.79086 12 12 12ZM10 14.5C8.067 14.5 6.5 16.067 6.5 18V18.5H12.0764C12.1572 19.0232 12.3004 19.5258 12.4982 20H6.5H5V18.5V18C5 15.2386 7.23858 13 10 13H13.8096C13.3832 13.4443 13.0194 13.949 12.7322 14.5H10Z\"\n fill={color}\n />\n <path\n d=\"M18.5 20.5L22 17M22 17L18.5 13.5M22 17L15 17\"\n stroke={color}\n strokeWidth=\"1.25\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n case \"Reorder\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.50012 16.4995L12.0001 19.9995M12.0001 19.9995L15.5001 16.4995M12.0001 19.9995V4.99951M12.0001 4.99951L8.50012 8.49951M12.0001 4.99951L15.5001 8.49951\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n case \"Sort By\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.56066 3.96967C8.26777 3.67678 7.7929 3.67678 7.5 3.96967L4 7.46967L5.06066 8.53033L7.28033 6.31066V19.5H8.78033V6.31066L11 8.53033L12.0607 7.46967L8.56066 3.96967ZM17.7803 17.6893V4.5H16.2803V17.6893L14.0607 15.4697L13 16.5303L16.5 20.0303C16.7929 20.3232 17.2678 20.3232 17.5607 20.0303L21.0607 16.5303L20 15.4697L17.7803 17.6893Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Thumb Up\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M9.73473 2.25C9.18957 2.25 8.70416 2.59512 8.5251 3.11004L5.43371 12H5.35742H3.85742H2.35742V13.5V20.25V21.75H3.85742H5.35742H6.09997C6.10245 21.75 6.10494 21.75 6.10742 21.75H16.0013C17.73 21.75 19.2348 20.5683 19.6445 18.8889L21.0097 13.2928C21.0746 13.0269 21.1074 12.7541 21.1074 12.4803C21.1074 10.5871 19.5726 9.05228 17.6794 9.05228H12.6074V5.12269C12.6074 3.53615 11.3213 2.25 9.73473 2.25ZM5.35742 20.25V15V13.5H3.85742V20.25H5.35742ZM6.85742 20.25H16.0013C17.0386 20.25 17.9414 19.541 18.1872 18.5333L19.5525 12.9373C19.589 12.7877 19.6074 12.6343 19.6074 12.4803C19.6074 11.4155 18.7442 10.5523 17.6794 10.5523H11.8574C11.4432 10.5523 11.1074 10.2165 11.1074 9.80228V5.12269C11.1074 4.4163 10.5738 3.83452 9.88774 3.75843L6.85743 12.4727V15L6.85742 15.004V20.25V20.25Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Thumb Up Filled\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.5251 3.11004C8.70416 2.59512 9.18957 2.25 9.73473 2.25C11.3213 2.25 12.6074 3.53615 12.6074 5.12269V9.05228H17.6794C19.5726 9.05228 21.1074 10.5871 21.1074 12.4803C21.1074 12.7541 21.0746 13.0269 21.0097 13.2928L19.6445 18.8889C19.2348 20.5683 17.73 21.75 16.0013 21.75H6.10742C5.90851 21.75 5.71774 21.671 5.57709 21.5304C5.43644 21.3897 5.35742 21.1989 5.35742 21L5.35743 12.346C5.35743 12.2622 5.3715 12.1789 5.39904 12.0997L8.5251 3.11004Z\"\n fill={color}\n />\n <path d=\"M3.10742 12.75H6.10742V21H3.10742V12.75Z\" stroke={color} strokeWidth=\"1.5\" />\n </svg>\n );\n }\n case \"Thumb Down\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10.7347 21.5C10.1896 21.5 9.70416 21.1549 9.5251 20.64L6.43371 11.75H6.35742H4.85742H3.35742V10.25V3.5V2H4.85742H6.35742H7.09997C7.10245 1.99998 7.10494 1.99996 7.10742 1.99996H17.0013C18.73 1.99996 20.2348 3.1817 20.6445 4.86115L22.0097 10.4572C22.0746 10.7231 22.1074 10.9959 22.1074 11.2697C22.1074 13.1629 20.5726 14.6977 18.6794 14.6977H13.6074V18.6273C13.6074 20.2139 12.3213 21.5 10.7347 21.5ZM6.35742 3.5V8.74996V10.25H4.85742V3.5H6.35742ZM7.85742 3.49996H17.0013C18.0386 3.49996 18.9414 4.20901 19.1872 5.21667L20.5525 10.8127C20.589 10.9623 20.6074 11.1157 20.6074 11.2697C20.6074 12.3345 19.7442 13.1977 18.6794 13.1977H12.8574C12.4432 13.1977 12.1074 13.5335 12.1074 13.9477V18.6273C12.1074 19.3337 11.5738 19.9155 10.8877 19.9916L7.85743 11.2773V8.75L7.85742 8.74599V3.5V3.49996Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Thumb Down Filled\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6.57709 2.21967C6.71774 2.07902 6.90851 2 7.10742 2H17.0013C18.73 2 20.2348 3.18174 20.6445 4.86118L22.0097 10.4572C22.0746 10.7232 22.1074 10.9959 22.1074 11.2697C22.1074 13.163 20.5726 14.6978 18.6794 14.6978H13.6074V18.6273C13.6074 20.2139 12.3213 21.5 10.7347 21.5C10.1896 21.5 9.70416 21.1549 9.5251 20.64L6.39904 11.6503C6.3715 11.5711 6.35743 11.4879 6.35743 11.404L6.35742 2.75C6.35742 2.55109 6.43644 2.36032 6.57709 2.21967Z\"\n fill={color}\n />\n <path d=\"M4.10742 11H7.10742V2.75H4.10742V11Z\" stroke={color} strokeWidth=\"1.5\" />\n </svg>\n );\n }\n case \"Attention Filled\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 40 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"20\" cy=\"20\" r=\"16\" fill={color} />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M21.25 20L21.25 13H18.75L18.75 20H21.25ZM20 22C18.8954 22 18 22.8954 18 24C18 25.1046 18.8954 26 20 26C21.1046 26 22 25.1046 22 24C22 22.8954 21.1046 22 20 22Z\"\n fill=\"white\"\n />\n </svg>\n );\n }\n case \"Audio Mute\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M13.6205 20.5484C13.4828 20.5481 13.3486 20.5057 13.2357 20.4269L6.48416 15.7008C6.39473 15.6388 6.32162 15.556 6.27107 15.4596C6.22052 15.3632 6.19403 15.256 6.19385 15.1472V8.39567C6.19403 8.28683 6.22052 8.17963 6.27107 8.08324C6.32162 7.98684 6.39473 7.90409 6.48416 7.84205L13.2357 3.11599C13.3341 3.04939 13.4484 3.00995 13.5669 3.00165C13.6855 2.99335 13.8041 3.01649 13.9108 3.06873C14.0247 3.12295 14.1211 3.20797 14.1891 3.31418C14.2571 3.42038 14.294 3.54351 14.2957 3.66961V19.8732C14.2959 19.9972 14.262 20.1189 14.1977 20.2249C14.1334 20.3309 14.0412 20.4171 13.9311 20.4741C13.835 20.5234 13.7285 20.5488 13.6205 20.5484ZM7.54415 14.7961L12.9454 18.577V4.9659L7.54415 8.74675V14.7961Z\"\n fill={color}\n />\n <path\n d=\"M6.86901 15.822H4.1684C3.63122 15.822 3.11603 15.6086 2.73619 15.2288C2.35634 14.8489 2.14294 14.3338 2.14294 13.7966V9.74567C2.14294 9.20849 2.35634 8.6933 2.73619 8.31346C3.11603 7.93361 3.63122 7.72021 4.1684 7.72021H6.86901C7.04807 7.72021 7.21979 7.79135 7.34641 7.91796C7.47302 8.04458 7.54416 8.21631 7.54416 8.39537V15.1469C7.54416 15.3259 7.47302 15.4977 7.34641 15.6243C7.21979 15.7509 7.04807 15.822 6.86901 15.822ZM4.1684 9.07052C3.98934 9.07052 3.81761 9.14165 3.69099 9.26827C3.56438 9.39488 3.49325 9.56661 3.49325 9.74567V13.7966C3.49325 13.9756 3.56438 14.1474 3.69099 14.274C3.81761 14.4006 3.98934 14.4717 4.1684 14.4717H6.19385V9.07052H4.1684Z\"\n fill={color}\n />\n <path\n d=\"M16.4718 8.42849L15.517 9.3833L21.2458 15.1122L22.2006 14.1573L16.4718 8.42849Z\"\n fill={color}\n />\n <path\n d=\"M21.2458 8.42886L15.517 14.1577L16.4718 15.1125L22.2006 9.38367L21.2458 8.42886Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Audio Unmute\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M13.6288 20.5484C13.4911 20.5481 13.3569 20.5057 13.244 20.4269L6.49246 15.7008C6.40303 15.6388 6.32992 15.556 6.27937 15.4596C6.22882 15.3632 6.20233 15.256 6.20215 15.1472V8.39567C6.20233 8.28683 6.22882 8.17963 6.27937 8.08324C6.32992 7.98684 6.40303 7.90409 6.49246 7.84205L13.244 3.11599C13.3424 3.04939 13.4567 3.00995 13.5752 3.00165C13.6938 2.99335 13.8124 3.01649 13.9191 3.06873C14.033 3.12295 14.1294 3.20797 14.1974 3.31418C14.2654 3.42038 14.3023 3.54351 14.304 3.66961V19.8732C14.3042 19.9972 14.2703 20.1189 14.206 20.2249C14.1417 20.3309 14.0495 20.4171 13.9394 20.4741C13.8433 20.5234 13.7368 20.5488 13.6288 20.5484ZM7.55245 14.7961L12.9537 18.577V4.9659L7.55245 8.74675V14.7961Z\"\n fill={color}\n />\n <path\n d=\"M6.87731 15.822H4.1767C3.63952 15.822 3.12433 15.6086 2.74449 15.2288C2.36464 14.8489 2.15125 14.3338 2.15125 13.7966V9.74567C2.15125 9.20849 2.36464 8.6933 2.74449 8.31346C3.12433 7.93361 3.63952 7.72021 4.1767 7.72021H6.87731C7.05637 7.72021 7.2281 7.79135 7.35471 7.91796C7.48133 8.04458 7.55246 8.21631 7.55246 8.39537V15.1469C7.55246 15.3259 7.48133 15.4977 7.35471 15.6243C7.2281 15.7509 7.05637 15.822 6.87731 15.822ZM4.1767 9.07052C3.99764 9.07052 3.82591 9.14165 3.6993 9.26827C3.57268 9.39488 3.50155 9.56661 3.50155 9.74567V13.7966C3.50155 13.9756 3.57268 14.1474 3.6993 14.274C3.82591 14.4006 3.99764 14.4717 4.1767 14.4717H6.20215V9.07052H4.1767Z\"\n fill={color}\n />\n <path d=\"M19.6599 7.48874H18.3096V16.4656H19.6599V7.48874Z\" fill={color} />\n <path d=\"M16.9669 10.1818H15.6166V13.7726H16.9669V10.1818Z\" fill={color} />\n <path d=\"M22.353 5.69336H21.0027V18.261H22.353V5.69336Z\" fill={color} />\n </svg>\n );\n }\n case \"Lock\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6.10718 11.9997C6.10718 10.836 7.05058 9.89258 8.21432 9.89258H16.7857C17.9495 9.89258 18.8929 10.836 18.8929 11.9997V21.2497H6.10718V11.9997Z\"\n stroke={color}\n strokeWidth=\"1.5\"\n />\n <path\n d=\"M16.75 9.87988L8.25 9.87988L8.25 7.05845C8.25 4.71124 10.1528 2.80845 12.5 2.80846C14.8472 2.80846 16.75 4.71125 16.75 7.05846L16.75 9.87988Z\"\n stroke={color}\n strokeWidth=\"1.5\"\n />\n <circle cx=\"12.5\" cy=\"14.25\" r=\"1.5\" fill={color} />\n <path d=\"M11.75 15H13.25V18H11.75V15Z\" fill={color} />\n </svg>\n );\n }\n case \"Unlocked\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M3.5 8C3.5 7.17157 4.17157 6.5 5 6.5H11C11.8284 6.5 12.5 7.17157 12.5 8V14.5H3.5V8Z\"\n stroke={color}\n />\n <path\n d=\"M6 6.5C5.5 6 5 5.5 5 4.5C5 2.84315 6.34315 1.5 8 1.5C9.01946 1.5 9.92016 2.00851 10.4623 2.78571\"\n stroke={color}\n />\n <circle cx=\"8\" cy=\"9.5\" r=\"1\" fill={color} />\n <path d=\"M7.5 10H8.5V12H7.5V10Z\" fill={color} />\n </svg>\n );\n }\n case \"Unsave\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.25 3C6.73122 3 5.5 4.23122 5.5 5.75V20.2318C5.5 20.8318 6.16272 21.1952 6.66863 20.8726L12 17.4728L17.3314 20.8726C17.8373 21.1952 18.5 20.8318 18.5 20.2318V5.75C18.5 4.23122 17.2688 3 15.75 3H8.25Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Crown\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M5 6L8 2L11 6L14 4L13 10H3L2 4L5 6Z\" fill={color} />\n <path d=\"M3 11H13V12.5H3V11Z\" fill={color} />\n </svg>\n );\n }\n case \"Magic\": {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path\n d=\"M6.33337 1.33301L6.51362 1.82012C7.25638 3.82739 8.83899 5.41 10.8463 6.15276L11.3334 6.33301L10.8463 6.51325C8.83899 7.25601 7.25638 8.83863 6.51362 10.8459L6.33337 11.333L6.15313 10.8459C5.41037 8.83863 3.82776 7.25601 1.82048 6.51325L1.33337 6.33301L1.82048 6.15276C3.82776 5.41 5.41037 3.82739 6.15313 1.82012L6.33337 1.33301Z\"\n fill={color}\n />\n <path\n d=\"M11.6667 8.66634C12.181 10.0562 13.2768 11.152 14.6667 11.6663C13.2768 12.1806 12.181 13.2765 11.6667 14.6663C11.1524 13.2765 10.0566 12.1806 8.66671 11.6663C10.0566 11.152 11.1524 10.0562 11.6667 8.66634Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Magic Full\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M9.5 2L9.77037 2.73066C10.8845 5.74157 13.2584 8.11549 16.2693 9.22963L17 9.5L16.2693 9.77037C13.2584 10.8845 10.8845 13.2584 9.77037 16.2693L9.5 17L9.22963 16.2693C8.11549 13.2584 5.74157 10.8845 2.73066 9.77037L2 9.5L2.73066 9.22963C5.74157 8.11549 8.11549 5.74157 9.22963 2.73066L9.5 2Z\"\n fill={color}\n />\n <path\n d=\"M17.5 13C18.2714 15.0848 19.9152 16.7286 22 17.5C19.9152 18.2714 18.2714 19.9152 17.5 22C16.7286 19.9152 15.0848 18.2714 13 17.5C15.0848 16.7286 16.7286 15.0848 17.5 13Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Magic Refresh\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M1.375 3.13428V9.63428C1.375 10.0485 1.71079 10.3843 2.125 10.3843H8.625V8.88428H3.93214C5.14274 7.03715 7.23044 5.81885 9.60157 5.81885C10.0836 5.81885 10.5538 5.86919 11.0073 5.96491C11.3868 5.50762 11.8328 5.10753 12.3305 4.77947C11.4761 4.48106 10.5578 4.31885 9.60157 4.31885C6.82884 4.31885 4.37571 5.68288 2.875 7.77446V3.13428H1.375ZM17.3252 15.5643C16.7883 15.7217 16.2201 15.8062 15.6323 15.8062C15.6101 15.8062 15.5879 15.806 15.5657 15.8058C14.4212 17.9255 12.1796 19.3657 9.60157 19.3657C6.76013 19.3657 4.32558 17.6159 3.3202 15.1322L1.9298 15.695C3.15658 18.7257 6.12826 20.8657 9.60157 20.8657C13.1233 20.8657 16.1311 18.6653 17.3252 15.5643Z\"\n fill={color}\n />\n <path\n d=\"M15.4545 4.78369L15.6096 5.20282C16.2487 6.92996 17.6105 8.2917 19.3376 8.9308L19.7567 9.08589L19.3376 9.24098C17.6105 9.88008 16.2487 11.2418 15.6096 12.969L15.4545 13.3881L15.2995 12.969C14.6604 11.2418 13.2986 9.88008 11.5715 9.24098L11.1523 9.08589L11.5715 8.9308C13.2986 8.2917 14.6604 6.92996 15.2995 5.20282L15.4545 4.78369Z\"\n fill={color}\n />\n <path\n d=\"M20.0436 11.0936C20.4861 12.2895 21.429 13.2324 22.6249 13.6749C21.429 14.1174 20.4861 15.0603 20.0436 16.2562C19.601 15.0603 18.6581 14.1174 17.4622 13.6749C18.6581 13.2324 19.601 12.2895 20.0436 11.0936Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Diamond\": {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <rect x=\"7\" y=\"2.5\" width=\"9\" height=\"9\" transform=\"rotate(45 8 3.24414)\" fill={color} />\n </svg>\n );\n }\n case \"Evaluate\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.625 0.875C4.38236 0.875 3.375 1.88236 3.375 3.125V16.375C3.375 17.6176 4.38236 18.625 5.625 18.625H9.03477C8.89455 18.1415 8.79645 17.6401 8.74473 17.125H5.625C5.21079 17.125 4.875 16.7892 4.875 16.375V3.125C4.875 2.71079 5.21079 2.375 5.625 2.375H16.375C16.7892 2.375 17.125 2.71079 17.125 3.125V11.6023H18.625V3.125C18.625 1.88236 17.6176 0.875 16.375 0.875H5.625ZM9.18716 13.4476C9.37422 12.9215 9.61203 12.4196 9.89471 11.9476H7.25V13.4476H9.18716ZM11.1086 10.375C11.6882 9.7831 12.3544 9.27627 13.0866 8.875H7.25V10.375H11.1086ZM7.25 7.25H14.75V5.75H7.25V7.25ZM20.6898 20.6662C20.4411 21.6857 19.5277 22.4031 18.4783 22.4031L9.77722 22.4028V15.4221H11.1148L13.068 9.80522C13.2089 9.39994 13.591 9.1283 14.0201 9.1283C15.1612 9.1283 16.0863 10.0534 16.0863 11.1945L16.0863 13.6495L19.4597 13.6495C20.7169 13.6495 21.7361 14.6687 21.7361 15.9259V16.104C21.7361 16.2858 21.7143 16.4669 21.6712 16.6435L20.6898 20.6662ZM18.4783 21.0925C18.9235 21.0925 19.3111 20.7882 19.4166 20.3556L20.398 16.3329C20.4163 16.258 20.4255 16.1811 20.4255 16.104V15.9259C20.4255 15.3925 19.9931 14.9601 19.4597 14.9601L15.431 14.9601C15.2572 14.9601 15.0905 14.891 14.9676 14.7682C14.8448 14.6453 14.7757 14.4786 14.7757 14.3048V11.1945C14.7757 10.8483 14.5429 10.5565 14.2254 10.467L12.2864 16.0428L12.2864 21.0925H18.4783Z\"\n fill={color}\n />\n </svg>\n );\n }\n case \"Avatar Edit\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M7.57821 2.1407C7.92816 1.44437 8.64088 1.00488 9.42022 1.00488H14.5936C15.3746 1.00488 16.0885 1.44614 16.4376 2.14465L17.2416 3.7528H19.5641C21.4617 3.7528 23 5.29112 23 7.18872V10.2058C22.5876 9.85011 22.1191 9.59379 21.6257 9.43686V7.18872C21.6257 6.05015 20.7026 5.12717 19.5641 5.12717H16.8167C16.5564 5.12717 16.3185 4.98008 16.2021 4.74724L15.2083 2.75917C15.0919 2.52634 14.8539 2.37925 14.5936 2.37925H9.42022C9.16045 2.37925 8.92288 2.52575 8.80622 2.75786L7.80576 4.74856C7.68912 4.98067 7.45154 5.12717 7.19176 5.12717H4.44606C3.30749 5.12717 2.3845 6.05015 2.3845 7.18872V18.1845C2.3845 19.323 3.30749 20.2461 4.44606 20.2461H9.55399L9.32954 21.1439C9.28941 21.3045 9.26493 21.4636 9.25491 21.6204H4.44606C2.54844 21.6204 1.01013 20.0821 1.01013 18.1845V7.18872C1.01013 5.2911 2.54845 3.7528 4.44606 3.7528H6.76803L7.57821 2.1407Z\"\n fill={color}\n />\n <path\n d=\"M17.3421 10.7024C16.7587 8.29266 14.5877 6.50293 11.9987 6.50293C8.96253 6.50293 6.50122 8.96423 6.50122 12.0004C6.50122 14.5974 8.30185 16.7737 10.7227 17.349C10.8101 17.2435 10.9026 17.1419 11 17.0444L11.9216 16.1228C9.68007 16.0817 7.87559 14.2519 7.87559 12.0004C7.87559 9.72328 9.72156 7.8773 11.9987 7.8773C14.25 7.8773 16.08 9.68178 16.1211 11.9234L17.3421 10.7024Z\"\n fill={color}\n />\n <path\n d=\"M19.1396 11.9091L19.1396 11.9091C19.8504 11.1983 21.003 11.1983 21.7138 11.9091L22.2416 11.3813L21.7138 11.9091C22.4246 12.62 22.4247 13.7725 21.7138 14.4835L15.0765 21.1208C14.7856 21.4117 14.4211 21.618 14.022 21.7178L11.9635 22.2325C11.6173 22.319 11.304 22.0055 11.3905 21.6596L11.3905 21.6596L11.9051 19.601C11.9051 19.601 11.9051 19.601 11.9051 19.601C12.0049 19.2019 12.2112 18.8375 12.5021 18.5466C12.5021 18.5466 12.5021 18.5466 12.5021 18.5465L19.1396 11.9091Z\"\n stroke={color}\n strokeWidth=\"1.5\"\n />\n </svg>\n );\n }\n case \"X Filled\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 40 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"20\" cy=\"20\" r=\"16\" fill={color} />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M18.4831 19.9142L12.0453 26.352L13.4595 27.7662L19.9355 21.2901C21.8843 23.1389 23.8721 25.0571 26.3461 27.7373L27.8157 26.3808C25.3139 23.6705 23.2979 21.7234 21.3502 19.8754L27.788 13.4377L26.3738 12.0234L19.8978 18.4995C17.949 16.6508 15.9612 14.7325 13.4872 12.0523L12.0176 13.4088C14.5193 16.1191 16.5354 18.0662 18.4831 19.9142Z\"\n fill=\"white\"\n />\n </svg>\n );\n }\n case \"Arrow Right Filled\": {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 40 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"20\" cy=\"20\" r=\"16\" fill={color} />\n <path\n d=\"M21 26L27 20M27 20L21 14M27 20L12 20\"\n stroke=\"white\"\n strokeWidth=\"2\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n case \"Frame\": {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 20 19\"\n fill=\"none\"\n >\n <g clipPath=\"url(#clip0_967_29047)\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.80215 6.50781H1.51504C1.18367 6.50781 0.915039 6.77644 0.915039 7.10781V10.6312V14.1547V17.0905C0.915039 17.4054 1.04012 17.7074 1.26277 17.93C1.48541 18.1527 1.78739 18.2778 2.10226 18.2778H5.61317L5.62539 18.2779L5.63762 18.2778H15.0211C15.336 18.2778 15.6379 18.1527 15.8606 17.93C16.0832 17.7074 16.2083 17.4054 16.2083 17.0905V14.1547V11.8773H15.0083V13.5547H6.22539V11.2312H8.80215V10.0312H5.62539H2.11504V7.70781H8.80215V6.50781ZM2.11504 13.5547V11.2312H5.02539V13.5547H2.11504ZM6.22539 14.7547H15.0083V17.0778H6.22539V14.7547ZM5.02539 14.7547V17.0778H2.11504V14.7547H5.02539Z\"\n fill={color}\n />\n <path\n d=\"M17.4947 8.67136L17.4947 3.72161M17.4947 3.72161L12.5449 3.72161M17.4947 3.72161L10.191 11.0249\"\n stroke={color}\n strokeWidth=\"1.2\"\n strokeLinejoin=\"round\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_967_29047\">\n <rect width=\"19\" height=\"19\" fill=\"white\" transform=\"translate(0.166016)\" />\n </clipPath>\n </defs>\n </svg>\n );\n }\n default: {\n return null;\n }\n }\n};\n","import { ChipCheckbox, RemovableInputWrapper } from \"@components/library\";\nimport { ChangeEvent, useState } from \"react\";\nimport styled from \"styled-components\";\n\ninterface Props {\n label?: string;\n options: { value: string; label: string }[];\n selectedValues: string[] | null;\n disabledValues?: string[];\n onChange: (values: string[] | null) => void;\n gap?: string;\n hideAll?: boolean;\n \"data-testid\"?: string;\n}\n\nconst ChipsInput = ({\n label,\n options,\n selectedValues,\n disabledValues = [],\n onChange,\n gap = \"16px 8px\",\n hideAll = false,\n \"data-testid\": dataTestId,\n}: Props) => {\n const [isExpanded, setIsExpanded] = useState(Number(selectedValues?.length) > 0);\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>, value: string) => {\n let newValues: string[];\n if (e.target.checked) {\n newValues = [...(selectedValues ?? []), value];\n } else {\n newValues = (selectedValues ?? []).filter((selectedValue) => selectedValue !== value);\n }\n onChange(newValues);\n };\n\n const areAllSelected = selectedValues?.length === options.length - disabledValues.length;\n\n const handleAllChange = () => {\n if (areAllSelected) {\n onChange([]);\n } else {\n const nonDisabledValues = options\n .map((option) => option.value)\n .filter((value) => !disabledValues.includes(value));\n onChange(nonDisabledValues);\n }\n };\n\n const chips = (\n <Chips gap={gap}>\n {!hideAll && <ChipCheckbox label=\"All\" checked={areAllSelected} onChange={handleAllChange} />}\n {options.map((option) => (\n <ChipCheckbox\n key={option.value}\n label={option.label}\n checked={Boolean(selectedValues?.includes(option.value))}\n disabled={disabledValues.includes(option.value)}\n onChange={(e) => handleChange(e, option.value)}\n />\n ))}\n </Chips>\n );\n\n return (\n <div data-testid={dataTestId}>\n {label ? (\n <RemovableInputWrapper\n label={label}\n onRemove={() => onChange(null)}\n isExpanded={isExpanded}\n setIsExpanded={setIsExpanded}\n data-testid={`${dataTestId}-wrapper`}\n >\n {chips}\n </RemovableInputWrapper>\n ) : (\n chips\n )}\n </div>\n );\n};\n\nexport default ChipsInput;\n\nconst Chips = styled.div`\n display: flex;\n flex-wrap: wrap;\n gap: ${({ gap }) => gap};\n`;\n","import { Icon } from \"@components/library\";\nimport { COLORS, FONTS } from \"@constants\";\nimport resizeGrabber from \"@images/icons/resize_grabber.svg\";\nimport { t } from \"@utils/i18n\";\nimport { ChangeEvent, ForwardedRef, ReactNode, forwardRef } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport FormLabel from \"../Texts/FormLabel\";\n\nexport type TextInputError = { hasError: boolean; errorMessage: string };\n\ninterface Props {\n id?: string;\n value: string;\n onChange:\n | ((e: ChangeEvent<HTMLInputElement>) => void)\n | ((e: ChangeEvent<HTMLTextAreaElement>) => void);\n name?: string;\n label?: ReactNode;\n labelFont?: string;\n placeholder?: string;\n placeholderColor?: string;\n onBlur?: (...args: any[]) => void;\n optional?: boolean;\n characterLimit?: number;\n warningLimit?: number;\n errors?: TextInputError[];\n textarea?: boolean;\n rows?: number; // applicable if textarea\n type?: string;\n hideClearButton?: boolean;\n resize?: string;\n disabled?: boolean;\n startingHeight?: string;\n min?: number;\n max?: number;\n hasPassedStep?: boolean; // used for showing error states in forms\n \"data-testid\"?: string;\n}\n\nconst TextInput = (\n {\n id,\n value,\n onChange,\n name,\n label,\n labelFont = FONTS.SEMIBOLD_2,\n placeholder,\n placeholderColor = COLORS.NEUTRAL_500,\n type = \"text\",\n onBlur,\n optional = false,\n characterLimit,\n warningLimit,\n errors,\n hideClearButton = false,\n textarea = false,\n rows,\n resize = \"vertical\",\n disabled,\n startingHeight = \"84px\",\n min,\n max,\n hasPassedStep,\n \"data-testid\": dataTestId,\n }: Props,\n ref: ForwardedRef<HTMLTextAreaElement | HTMLInputElement>\n) => {\n const hasMissingRequiredError = Boolean(!optional && hasPassedStep && value.trim().length === 0);\n const hasExceededCharacterLimit = Boolean(characterLimit && value.length > characterLimit);\n const hasExceededWarningLimit = warningLimit && value.length > warningLimit;\n const hasAnyError =\n Boolean(errors?.map((error) => error.hasError).includes(true)) ||\n hasMissingRequiredError ||\n hasExceededCharacterLimit;\n\n const handleClear = (e) => {\n const newEvent = {\n ...e,\n target: {\n ...e.target,\n value: type === \"number\" ? undefined : \"\",\n },\n };\n\n onChange(newEvent);\n };\n\n const input = textarea ? (\n <TextArea\n id={id}\n autoComplete=\"off\"\n name={name}\n placeholder={placeholder}\n placeholderColor={placeholderColor}\n value={value}\n onChange={(e: ChangeEvent<HTMLTextAreaElement>) =>\n (onChange as (e: ChangeEvent<HTMLTextAreaElement>) => void)(e)\n }\n onBlur={onBlur}\n ref={ref}\n startingHeight={startingHeight}\n rows={rows}\n disabled={disabled}\n resize={resize}\n hasError={hasAnyError}\n data-testid={dataTestId}\n />\n ) : (\n <InputContainer hasError={hasAnyError}>\n <Input\n id={id}\n type={type}\n autoComplete=\"off\"\n name={name}\n placeholder={placeholder}\n placeholderColor={placeholderColor}\n value={value}\n onChange={(e: ChangeEvent<HTMLInputElement>) =>\n (onChange as (e: ChangeEvent<HTMLInputElement>) => void)(e)\n }\n onBlur={onBlur}\n disabled={disabled}\n ref={ref}\n hasError={hasAnyError}\n hideClearButton={hideClearButton}\n min={min}\n max={max}\n data-testid={dataTestId}\n />\n {value && !hideClearButton && (\n <ClearButton type=\"button\" onClick={(e) => handleClear(e)}>\n <Icon name=\"X\" size=\"xs\" />\n </ClearButton>\n )}\n </InputContainer>\n );\n\n let labelGap = 8; // px\n if (labelFont.includes(\"font-size: 16px;\")) {\n labelGap = 16; // px\n }\n\n const errorsWithRequiredError = [\n ...(errors ?? []),\n {\n hasError: hasMissingRequiredError,\n errorMessage: t(\"error.required_field\"),\n },\n ];\n\n const errorIcon = <Icon name=\"Attention\" size=\"sm\" margin=\"0 4px 0 0\" color={COLORS.RED_500} />;\n\n return (\n <Container>\n {label ? (\n <Label gap={labelGap}>\n <FormLabel label={label} font={labelFont} hasError={hasAnyError} isOptional={optional} />\n {input}\n </Label>\n ) : (\n input\n )}\n {characterLimit && (\n <CharacterLimit hasError={hasExceededCharacterLimit} hasWarning={hasExceededWarningLimit}>\n {hasExceededCharacterLimit && errorIcon}\n {value?.length} of {characterLimit} characters including spaces\n </CharacterLimit>\n )}\n {errorsWithRequiredError.map(\n (error) =>\n error.hasError && (\n <ErrorRow key={error.errorMessage} data-testid={`${dataTestId}-error`}>\n {errorIcon}\n {error.errorMessage}\n </ErrorRow>\n )\n )}\n </Container>\n );\n};\n\nexport default forwardRef(TextInput);\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 8px;\n width: 100%;\n`;\n// These styles are also used in MultiTextInput and FundingEditModal\nexport const Label = styled.label`\n display: flex;\n flex-direction: column;\n gap: ${({ gap }) => gap}px;\n margin: 0;\n`;\nconst inputStyles = css`\n ${FONTS.REGULAR_2};\n border: 1px solid ${({ hasError }) => (hasError ? COLORS.RED_500 : COLORS.NEUTRAL_300)};\n border-radius: 6px;\n width: 100%;\n ${({ hasError }) => hasError && `background-color: ${COLORS.RED_50}`};\n &::placeholder {\n ${FONTS.REGULAR_2};\n ${({ placeholderColor }) =>\n placeholderColor\n ? `\n opacity: 1;\n color: ${placeholderColor};\n `\n : `\n color: COLORS.NEUTRAL_400;\n `}\n }\n &:focus {\n border: 1px solid ${({ hasError }) => (hasError ? COLORS.RED_500 : COLORS.HALO_BLUE)};\n }\n`;\nconst TextArea = styled.textarea`\n ${inputStyles};\n padding: 6px 10px;\n ${({ rows, startingHeight }) => typeof rows === \"undefined\" && `height: ${startingHeight}`};\n min-height: 38px;\n resize: ${({ disabled, resize }) => (disabled ? \"none\" : resize)};\n &::-webkit-resizer {\n background-image: url(${resizeGrabber});\n background-repeat: no-repeat;\n background-size: 100%;\n background-position: bottom right;\n }\n &::-webkit-scrollbar-corner {\n height: unset;\n }\n &:hover:not(:focus) {\n border: 1px solid ${({ hasError }) => (hasError ? COLORS.RED_500 : COLORS.NEUTRAL_500)};\n }\n ${({ disabled }) =>\n disabled &&\n `\n color: ${COLORS.NEUTRAL_500};\n background-color: ${COLORS.NEUTRAL_50};\n &:hover, &:hover:not(:focus) {\n border: 1px solid ${COLORS.NEUTRAL_300};\n }\n `}\n`;\nconst InputContainer = styled.div`\n position: relative;\n &:hover input:not(:focus) {\n border: 1px solid ${({ hasError }) => (hasError ? COLORS.RED_500 : COLORS.NEUTRAL_500)};\n }\n`;\nconst Input = styled.input`\n ${inputStyles};\n height: 36px;\n padding: ${({ hideClearButton }) => (hideClearButton ? \"6px 10px\" : \"6px 36px 6px 10px\")};\n`;\nconst ClearButton = styled.button`\n position: absolute;\n top: calc(50% - 8px);\n right: 15px;\n border: none;\n background: none;\n padding: 0;\n &:hover {\n opacity: 0.5;\n }\n &:focus {\n outline: none;\n }\n`;\nconst CharacterLimit = styled.div`\n display: flex;\n ${({ hasError, hasWarning }) => (hasError || hasWarning ? FONTS.MEDIUM_3 : FONTS.REGULAR_3)};\n color: ${({ hasError, hasWarning }) => {\n if (hasError) return COLORS.RED_500;\n else if (hasWarning) return COLORS.ORANGE;\n return COLORS.NEUTRAL_500;\n }};\n`;\nconst ErrorRow = styled.div`\n display: flex;\n ${FONTS.MEDIUM_3};\n color: ${COLORS.RED_500};\n`;\n","import { InfoTag } from \"@components/library\";\nimport { COLORS, FONTS, WINDOW_DIMENSIONS } from \"@constants\";\nimport { ReactNode, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\n\nexport interface TabsProps {\n activeTab: string;\n setActiveTab: (newTab: string) => void;\n tabs: {\n key: string;\n label: string | ReactNode;\n count?: number;\n withNewTag?: boolean;\n onClick?: () => void;\n \"data-testid\"?: string;\n }[];\n variant?: \"normal\" | \"attention\";\n activeColor?: string;\n font?: string;\n tabDistance?: string;\n margin?: string | 0;\n}\n\nconst Tabs = ({\n activeTab,\n setActiveTab,\n tabs,\n variant = \"normal\",\n activeColor,\n font = FONTS.SEMIBOLD_2,\n tabDistance = \"24px\",\n margin,\n}: TabsProps) => {\n const [hoveredTab, setHoveredTab] = useState<string | null>();\n\n return (\n <Container>\n <Shadow />\n <TabsContainer margin={margin} tabDistance={tabDistance}>\n {tabs.map((tab) => {\n const isActive = activeTab === tab.key;\n return (\n <TabWrapper key={tab.key}>\n <Tab\n type=\"button\"\n isActive={isActive}\n onClick={() => {\n setActiveTab(tab.key);\n if (tab.onClick) tab.onClick();\n }}\n onMouseEnter={() => setHoveredTab(tab.key)}\n onMouseLeave={() => setHoveredTab(null)}\n variant={variant}\n activeColor={activeColor}\n font={font}\n data-testid={tab[\"data-testid\"]}\n >\n {tab.label}\n {typeof tab.count === \"number\" && (\n <InfoTag\n backgroundColor={(() => {\n if (isActive) {\n return (\n activeColor ?? (variant === \"normal\" ? COLORS.BLACK : COLORS.ORANGE_900)\n );\n } else if (hoveredTab === tab.key) {\n return variant === \"normal\" ? COLORS.NEUTRAL_500 : COLORS.ORANGE_900;\n }\n return variant === \"normal\" ? COLORS.NEUTRAL_400 : COLORS.ORANGE;\n })()}\n >\n {tab.count}\n </InfoTag>\n )}\n </Tab>\n {tab.withNewTag && (\n <NewTagContainer>\n <InfoTag accent>NEW</InfoTag>\n </NewTagContainer>\n )}\n </TabWrapper>\n );\n })}\n </TabsContainer>\n </Container>\n );\n};\n\nexport default Tabs;\n\nconst Container = styled.div`\n position: relative;\n`;\n\nconst TabsContainer = styled.div`\n display: flex;\n gap: ${({ tabDistance }) => tabDistance};\n ${({ margin }) => margin && `margin: ${margin}`};\n overflow-x: auto;\n min-height: 16px;\n\n ${WINDOW_DIMENSIONS.TABLET_LANDSCAPE_MEDIA_QUERY} {\n padding-right: 40px;\n\n /* Hide horizontal scrollbar for mobile */\n ::-webkit-scrollbar {\n display: none;\n }\n }\n`;\nconst TabWrapper = styled.div`\n display: flex;\n white-space: nowrap;\n`;\nconst Tab = styled.button`\n flex-shrink: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 0 0 5px;\n border: none;\n border-bottom: ${({ isActive, variant, activeColor }) =>\n `2px solid ${(() => {\n if (isActive) {\n if (activeColor) return activeColor;\n if (variant === \"normal\") return COLORS.BLACK;\n if (variant === \"attention\") return COLORS.ORANGE_900;\n } else {\n return \"transparent\";\n }\n })()}`};\n background-color: transparent;\n ${({ font }) => font};\n color: ${({ isActive, variant, activeColor }) => {\n if (isActive) {\n if (activeColor) return activeColor;\n if (variant === \"normal\") return COLORS.BLACK;\n if (variant === \"attention\") return COLORS.ORANGE_900;\n }\n return variant === \"normal\" ? COLORS.NEUTRAL_400 : COLORS.ORANGE;\n }};\n ${({ isActive, variant }) =>\n !isActive &&\n css`\n &:hover {\n color: ${variant === \"normal\" ? COLORS.NEUTRAL_500 : COLORS.ORANGE_900};\n border-bottom: 2px solid ${variant === \"normal\" ? COLORS.NEUTRAL_500 : COLORS.ORANGE_900};\n }\n `}\n &:active {\n outline: none;\n }\n`;\nconst NewTagContainer = styled.div`\n display: flex;\n margin: 4px 0 0 0;\n`;\n\nconst Shadow = styled.div`\n display: none;\n ${WINDOW_DIMENSIONS.TABLET_LANDSCAPE_MEDIA_QUERY} {\n display: block;\n\n pointer-events: none;\n\n position: absolute;\n top: 0;\n bottom: 0;\n right: -1px; // hack because 1px of the content under the shadow is visible on the right side\n\n width: 100%;\n height: 101%; // hack because 1px of the content under the shadow is visible on the bottom\n\n background: linear-gradient(90deg, rgba(255, 255, 255, 0) 83%, rgb(255, 255, 255) 93%);\n }\n`;\n","import Icon from \"@components/library/Icon\";\nimport { COLORS, FONTS, STYLES, WINDOW_DIMENSIONS } from \"@constants\";\nimport { MouseEvent, ReactElement, ReactNode, useEffect } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport styled from \"styled-components\";\nimport IconButton from \"../Buttons/IconButton\";\nimport { IconName } from \"../Icon/Icon\";\n\nexport interface BlankModalProps {\n isOpen: boolean;\n onClose: () => void;\n closeOnDimmerClick?: boolean;\n headerText?: string | ReactElement;\n headerIconName?: IconName;\n subHeaderText?: string;\n subHeaderIconName?: IconName;\n hideCloseButton?: boolean;\n disableBackgroundScroll?: boolean;\n width?: string;\n height?: string;\n backgroundMode?: \"dim\" | \"blur\";\n children?: ReactNode;\n zIndexBase?: number;\n}\n\nconst BlankModal = ({\n isOpen,\n onClose,\n closeOnDimmerClick = true,\n headerText,\n headerIconName,\n subHeaderText,\n subHeaderIconName,\n hideCloseButton = false,\n disableBackgroundScroll = true,\n width,\n height,\n backgroundMode = \"dim\",\n children,\n zIndexBase = 500,\n}: BlankModalProps) => {\n const handleDimmerClick = (e: MouseEvent<HTMLDivElement>) => {\n e.preventDefault();\n e.stopPropagation();\n if (closeOnDimmerClick) {\n onClose();\n }\n };\n\n const handleOnClose = (e: MouseEvent<HTMLDivElement>) => {\n e.preventDefault();\n e.stopPropagation();\n onClose();\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.code === \"Escape\" && isOpen) {\n if (closeOnDimmerClick) {\n onClose();\n }\n }\n };\n\n useEffect(() => {\n // Close on Escape\n document.addEventListener(\"keydown\", onKeyDown, false);\n\n // Disable background scroll of anchor\n // Targets the top modal (not including the current one) if it exists\n // Targets html element otherwise\n const modals = document.querySelectorAll(\"[role=dialog]\");\n const anchor = (modals[modals.length - (isOpen ? 2 : 1)] ||\n document.querySelector(\"html\")) as HTMLElement;\n if (disableBackgroundScroll && isOpen) anchor.style.overflow = \"hidden\";\n\n return () => {\n document.removeEventListener(\"keydown\", onKeyDown, false);\n\n if (disableBackgroundScroll) anchor.style.overflow = \"unset\";\n };\n }, [isOpen]);\n\n const modal = (\n <>\n <Background onClick={handleDimmerClick} mode={backgroundMode} zIndexBase={zIndexBase} />\n <Wrapper\n aria-modal\n aria-labelledby={headerText ?? \"Modal Title\"}\n tabIndex={-1}\n role=\"dialog\"\n zIndexBase={zIndexBase}\n >\n <StyledModal width={width} height={height} zIndexBase={zIndexBase}>\n {!hideCloseButton && (\n <CloseButton data-testid=\"modal-close-button\">\n <IconButton iconName=\"Close\" size=\"sm\" variant=\"fourth\" onClick={handleOnClose} />\n </CloseButton>\n )}\n {headerText && (\n <>\n <Header>\n {headerIconName && <Icon name={headerIconName} size=\"xxl\" margin=\"0 16px 0 0\" />}\n <HeaderContent>\n <HeaderText>{headerText}</HeaderText>\n {subHeaderText && (\n <SubHeader>\n {subHeaderIconName && (\n <Icon name={subHeaderIconName} size=\"xs\" color={COLORS.BLACK} />\n )}\n <div>{subHeaderText}</div>\n </SubHeader>\n )}\n </HeaderContent>\n </Header>\n <Divider />\n </>\n )}\n <Content hasHeader={headerText}>{children}</Content>\n </StyledModal>\n </Wrapper>\n </>\n );\n\n return isOpen ? ReactDOM.createPortal(modal, document.body) : null;\n};\n\nconst Background = styled.div`\n position: fixed;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n ${({ mode }) =>\n (mode === \"blur\" && \"backdrop-filter: blur(6px);\") ||\n (mode === \"dim\" &&\n `\n background-color: ${COLORS.BLACK};\n opacity: 0.7;\n `)}\n z-index: ${({ zIndexBase }) => zIndexBase + 1};\n`;\n\nconst Wrapper = styled.div`\n z-index: ${({ zIndexBase }) => zIndexBase + 2};\n position: fixed;\n top: 50%;\n right: 50%;\n transform: translate(50%, -50%);\n display: flex;\n justify-content: center;\n align-items: center;\n\n ${WINDOW_DIMENSIONS.TABLET_LANDSCAPE_MEDIA_QUERY} {\n align-items: flex-start;\n }\n\n ${WINDOW_DIMENSIONS.TABLET_MEDIA_QUERY} {\n width: 90%;\n }\n\n ${WINDOW_DIMENSIONS.MOBILE_MEDIA_QUERY} {\n width: 100%;\n }\n`;\n\nconst StyledModal = styled.div`\n z-index: ${({ zIndexBase }) => zIndexBase + 3};\n background: white;\n position: relative;\n border-radius: 12px;\n width: ${(props) => props.width};\n height: ${(props) => props.height};\n display: flex;\n flex-direction: column;\n box-shadow: ${STYLES.SHADOW_D};\n\n max-height: 90vh;\n overflow: visible;\n\n ${WINDOW_DIMENSIONS.TABLET_LANDSCAPE_MEDIA_QUERY} {\n width: 90%;\n }\n`;\n\nconst Header = styled.div`\n border-radius: 8px 8px 0 0;\n padding: 24px 20px;\n display: flex;\n align-items: center;\n`;\n\nconst HeaderContent = styled.div`\n width: 100%;\n`;\n\nconst SubHeader = styled.div`\n display: flex;\n padding-top: 4px;\n max-width: 90%;\n ${FONTS.REGULAR_3};\n align-items: center;\n gap: 8px;\n > div:last-child {\n ${STYLES.ONE_LINE_ALT};\n }\n flex-direction: row;\n`;\n\nconst HeaderText = styled.div`\n ${FONTS.HEADING_4_SEMIBOLD}\n color: ${COLORS.BLACK};\n align-self: center;\n display: flex;\n justify-content: space-between;\n`;\n\nconst Divider = styled.hr`\n margin: 0;\n border-color: ${COLORS.NEUTRAL_300};\n`;\n\nconst Content = styled.div`\n max-height: ${({ hasHeader }) => (hasHeader ? \"calc(100% - 76px)\" : \"100%\")};\n overflow-y: auto;\n overflow-x: hidden;\n`;\n\nconst CloseButton = styled.div`\n width: fit-content;\n position: absolute;\n top: 20px;\n right: 20px;\n cursor: pointer;\n`;\n\nexport default BlankModal;\n","import { IconButton } from \"@components/library\";\nimport { COLORS, STYLES } from \"@constants\";\nimport { setMessengerOffsetRight } from \"@redux/actions/messengerActions\";\nimport { DEFAULT_MESSENGER_OFFSET_RIGHT } from \"@redux/reducers/messengerReducer\";\nimport { ReactNode, useEffect, useState } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { useDispatch } from \"react-redux\";\nimport styled, { css } from \"styled-components\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nexport interface SlideModalBaseProps {\n isOpen: boolean;\n onClose: () => void;\n direction?: \"bottom\" | \"right\";\n hideCloseButton?: boolean;\n customCloseButton?: ReactNode;\n closeOnDimmerClick?: boolean;\n hideBackdrop?: boolean;\n children?: ReactNode;\n}\n\nconst SlideModalBase = ({\n isOpen,\n onClose,\n direction = \"right\",\n hideCloseButton = false,\n customCloseButton,\n closeOnDimmerClick = true,\n hideBackdrop = false,\n children,\n}: SlideModalBaseProps) => {\n // Used for the slide in/out animation\n const [shouldShowModal, setShouldShowModal] = useState(false);\n\n const dispatch = useDispatch();\n\n const handleClose = () => {\n setShouldShowModal(false);\n setTimeout(() => onClose(), 300);\n dispatch(setMessengerOffsetRight(DEFAULT_MESSENGER_OFFSET_RIGHT));\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.code === \"Escape\" && isOpen) {\n if (closeOnDimmerClick) {\n handleClose();\n }\n }\n };\n\n useEffect(() => {\n if (isOpen) {\n setTimeout(() => setShouldShowModal(true), 0);\n\n document.querySelector(\"html\")!.style.overflow = \"hidden\";\n\n if (direction === \"right\") {\n const modalEl = document.getElementById(id);\n dispatch(setMessengerOffsetRight(modalEl?.clientWidth));\n }\n }\n\n // Close on Escape\n document.addEventListener(\"keydown\", onKeyDown, false);\n\n return () => {\n document.querySelector(\"html\")!.style.overflow = \"unset\";\n\n document.removeEventListener(\"keydown\", onKeyDown, false);\n };\n }, [isOpen]);\n\n const id = uuidv4();\n\n const modal = (\n <>\n {!hideBackdrop && <Background onClick={closeOnDimmerClick ? handleClose : null} />}\n <Modal\n id={id}\n aria-modal\n tabIndex={-1}\n role=\"dialog\"\n isOpen={shouldShowModal}\n direction={direction}\n hideBackdrop={hideBackdrop}\n >\n {!hideCloseButton && (\n <CloseButton>\n {customCloseButton ?? (\n <IconButton\n iconName=\"Close\"\n size=\"sm\"\n variant=\"fourth\"\n onClick={handleClose}\n tooltipPosition=\"bottom\"\n data-testid=\"close-button\"\n />\n )}\n </CloseButton>\n )}\n <Content>{children}</Content>\n </Modal>\n </>\n );\n\n return isOpen ? ReactDOM.createPortal(modal, document.body) : null;\n};\n\nexport default SlideModalBase;\n\nconst Background = styled.div`\n position: fixed;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n background-color: ${COLORS.BLACK};\n opacity: 0.7;\n z-index: 400;\n`;\nconst Modal = styled.div`\n position: fixed;\n ${({ direction }) =>\n direction === \"right\"\n ? css`\n top: 0;\n right: ${({ isOpen }) => (isOpen ? 0 : \"-100%\")};\n height: 100vh;\n border-radius: 12px 0px 0px 12px;\n `\n : css`\n left: 0;\n bottom: ${({ isOpen }) => (isOpen ? 0 : \"-100%\")};\n width: 100vw;\n max-height: calc(100vh - 54px);\n border-radius: 12px 12px 0px 0px;\n `};\n z-index: 401;\n background: white;\n ${({ hideBackdrop }) => hideBackdrop && `box-shadow: ${STYLES.SHADOW_D}`};\n margin: auto;\n transition: ${({ direction }) => direction} 0.25s ease-out;\n max-width: 100%;\n`;\nconst CloseButton = styled.div`\n position: absolute;\n top: 20px;\n right: 20px;\n z-index: 1;\n`;\nconst Content = styled.div`\n height: 100%;\n`;\n","import { COLORS } from \"@constants\";\n\nimport styled from \"styled-components\";\nimport Icon from \"../Icon\";\nimport { PROFILE_PICTURE_SIZE_STYLES, ProfilePictureProps } from \"./ProfilePicture\";\n\ninterface Props {\n size?: ProfilePictureProps[\"size\"];\n}\n\nconst InvitedUserProfilePicture = ({ size = \"sm\" }: Props) => {\n return (\n <Container>\n <Outline size={size}>\n <Icon name=\"Profile\" size=\"sm\" />\n </Outline>\n </Container>\n );\n};\n\nexport default InvitedUserProfilePicture;\n\nconst Container = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nconst Outline = styled.div`\n border: 1px dashed ${COLORS.BLACK};\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n ${PROFILE_PICTURE_SIZE_STYLES}\n`;\n","import { COLORS, FONTS } from \"@constants\";\nimport { getInitials } from \"@utils/textUtils\";\nimport { useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport Icon from \"../Icon\";\n\nexport interface ProfilePictureProps {\n user?: {\n image: {\n medium: {\n url: string | null;\n };\n };\n name: string;\n };\n size: \"xxs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n margin?: string | 0;\n forMulti?: boolean;\n isUserHidden?: boolean;\n color?: string;\n bgColor?: string;\n}\n\nconst ProfilePicture = ({\n user,\n size,\n margin = 0,\n forMulti = false,\n isUserHidden = false,\n color = COLORS.BLACK,\n bgColor,\n}: ProfilePictureProps) => {\n const [didImageError, setDidImageError] = useState(false);\n const defaultBgColor = size === \"lg\" ? COLORS.NEUTRAL_100 : COLORS.NEUTRAL_200;\n\n return (\n <Container\n size={size}\n margin={margin}\n forMulti={forMulti}\n color={color}\n bgColor={bgColor ? bgColor : defaultBgColor}\n >\n {(() => {\n if (isUserHidden || !user)\n return <Icon name=\"Profile\" size={size === \"xxs\" ? \"xs\" : size} />;\n if (user.image?.medium?.url && !didImageError)\n return (\n <Picture\n src={user.image.medium.url}\n alt=\"profile picture\"\n onError={() => {\n setDidImageError(true);\n }}\n />\n );\n return getInitials(user.name);\n })()}\n </Container>\n );\n};\n\nexport default ProfilePicture;\n\nexport const PROFILE_PICTURE_SIZE_STYLES = css`\n ${({ size }) => {\n switch (size) {\n case \"xxs\": {\n return css`\n font-size: 10px;\n height: 20px;\n width: 20px;\n min-width: 20px;\n `;\n }\n case \"xs\": {\n return css`\n font-size: 12px;\n height: 28px;\n width: 28px;\n min-width: 28px;\n `;\n }\n case \"sm\": {\n return css`\n font-size: 16px;\n height: 36px;\n width: 36px;\n min-width: 36px;\n `;\n }\n case \"md\": {\n return css`\n font-size: 23px;\n height: 50px;\n width: 50px;\n min-width: 50px;\n `;\n }\n case \"lg\": {\n return css`\n font-size: 23px;\n font-weight: 600;\n height: 68px;\n width: 68px;\n min-width: 68px;\n `;\n }\n case \"xl\": {\n return css`\n font-size: 32px;\n font-weight: 600;\n height: 96px;\n width: 96px;\n min-width: 96px;\n `;\n }\n }\n }};\n`;\n\nconst Container = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 50%;\n background-color: ${({ bgColor }) => bgColor};\n color: ${({ color }) => color};\n border: ${({ forMulti }) => (forMulti ? `1px solid ${COLORS.WHITE}` : \"none\")};\n margin: ${({ margin }) => margin};\n font-weight: 500;\n ${PROFILE_PICTURE_SIZE_STYLES};\n line-height: 0;\n`;\n\nconst Picture = styled.img`\n height: 100%;\n width: 100%;\n ${FONTS.REGULAR_4};\n border-radius: 50%;\n`;\n","// Note: SearchBarDropdown and MultiSelectDropdown are not using this component, though are styled\n// to look the same, due to the way React-Select handles multi-select tags\n\nimport { Icon } from \"@components/library\";\nimport { COLORS, FONTS, STYLES } from \"@constants\";\nimport { ReactNode } from \"react\";\nimport styled from \"styled-components\";\nimport { IconName } from \"../Icon/Icon\";\n\nexport type TagTheme = \"light\" | \"dark\" | \"neutral\";\n\nexport interface TagProps {\n content: ReactNode;\n iconName?: IconName;\n iconPosition?: \"left\" | \"right\";\n size?: \"xs\" | \"sm\" | \"md\";\n font?: string;\n theme?: TagTheme;\n isValid?: boolean;\n onRemove?: (...args: any[]) => any;\n id?: string;\n \"data-testid\"?: string;\n // Style override props\n backgroundColor?: string;\n color?: string;\n margin?: string | 0;\n padding?: string;\n border?: string;\n width?: string;\n shouldTruncate?: boolean;\n}\n\nconst ICON_SIZE = {\n xs: \"xxs\",\n sm: \"xs\",\n md: \"sm\",\n};\n\nconst LEFT_ICON_MARGIN = {\n xs: \"0 3px 0 -2px\",\n sm: \"0 4px 0 0\",\n md: \"0 6px 0 0\",\n};\n\nconst RIGHT_ICON_MARGIN = {\n xs: \"0 0 0 3px\",\n sm: \"0 0 0 4px\",\n md: \"0 0 0 6px\",\n};\n\nconst Tag = ({\n content,\n iconName,\n iconPosition = \"left\",\n size = \"sm\",\n font,\n theme = \"neutral\",\n isValid = true,\n onRemove,\n id,\n \"data-testid\": dataTestId,\n backgroundColor,\n color,\n margin = 0,\n padding,\n border,\n width,\n shouldTruncate = false,\n}: TagProps) => (\n <StyledTag\n id={id}\n size={size}\n theme={theme}\n isValid={isValid}\n backgroundColor={backgroundColor}\n color={color}\n font={font}\n margin={margin}\n padding={padding}\n border={border}\n width={width}\n data-testid={dataTestId}\n shouldTruncate={shouldTruncate}\n >\n {iconName && iconPosition === \"left\" && (\n <Icon\n name={iconName}\n size={ICON_SIZE[size] as any}\n color={color}\n margin={LEFT_ICON_MARGIN[size]}\n />\n )}\n <Content shouldTruncate={shouldTruncate} title={shouldTruncate ? content : undefined}>\n {content}\n </Content>\n {iconName && iconPosition === \"right\" && (\n <Icon\n name={iconName}\n size={ICON_SIZE[size] as any}\n color={color}\n margin={RIGHT_ICON_MARGIN[size]}\n />\n )}\n {onRemove && (\n <div onClick={onRemove}>\n <Icon name=\"X\" size=\"xs\" color={isValid ? COLORS.BLACK : COLORS.RED} />\n </div>\n )}\n </StyledTag>\n);\n\nconst BACKGROUND_TYPE = {\n light: COLORS.WHITE,\n dark: COLORS.NEUTRAL_200,\n neutral: COLORS.NEUTRAL_100,\n};\n\nconst XS_STYLES = `\n height: 16px;\n padding: 0 8px;\n ${FONTS.TAG_MEDIUM_3}\n`;\n\nconst SM_STYLES = `\n height: 24px;\n padding: 0 14px;\n ${FONTS.TAG_MEDIUM_2}\n`;\n\nconst MD_STYLES = `\n height: 32px;\n padding: 0 16px;\n ${FONTS.TAG_SEMIBOLD_1}\n`;\n\nconst StyledTag = styled.div`\n display: inline-flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n flex-shrink: 0;\n width: ${({ width }) => (width ? width : \"fit-content\")};\n border: none;\n border-radius: 100px;\n background-color: ${({ backgroundColor, theme, isValid }) =>\n (!isValid && COLORS.RED_100) || backgroundColor || BACKGROUND_TYPE[theme]};\n color: ${({ color, isValid }) => (!isValid && COLORS.RED) || color || COLORS.BLACK};\n ${({ size }) => {\n switch (size) {\n case \"xs\":\n return XS_STYLES;\n case \"sm\":\n return SM_STYLES;\n case \"md\":\n return MD_STYLES;\n }\n }}\n white-space: nowrap;\n margin: ${({ margin }) => margin};\n border: ${({ border }) => border};\n ${({ font }) => font && font};\n ${({ shouldTruncate }) =>\n shouldTruncate &&\n `\n max-width: 100%;\n cursor: default;\n `}\n\n ${({ padding }) => padding && `padding: ${padding};`}\n\n &:not(:last-of-type) {\n margin-right: 8px;\n }\n`;\n\nconst Content = styled.div`\n ${({ shouldTruncate }) => (shouldTruncate ? STYLES.ONE_LINE_ALT : \"display: flex\")}\n`;\n\nexport default Tag;\n","import { COLORS } from \"@constants\";\nimport Tag from \"../Tag\";\n\nexport function AdminTag() {\n return (\n <Tag\n content=\"Admin\"\n size=\"xs\"\n backgroundColor={COLORS.BLUE_LIGHT_350}\n color={COLORS.BLUE_650}\n data-testid=\"admin-tag\"\n />\n );\n}\n","import Tooltip from \"@components/library/Tooltips/Tooltip\";\nimport { COLORS } from \"@constants\";\nimport { ReactNode } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport styled from \"styled-components\";\n\ninterface Props {\n content: string;\n width: string;\n children: ReactNode;\n}\nexport function LicenseTagTooltip({ content, children, width = \"190px\" }: Props) {\n return (\n <div>\n <Tooltip shouldFlex tooltipWidth={width} content={content}>\n {children}\n </Tooltip>\n </div>\n );\n}\n\nexport const WhiteLink = styled(Link)`\n color: ${COLORS.WHITE};\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n color: ${COLORS.WHITE};\n }\n`;\n","import { COLORS } from \"@constants\";\nimport { RootState } from \"@redux/store\";\nimport { SponsorLicenseType } from \"@tsTypes/sponsorProfiles\";\nimport { t } from \"@utils/i18n\";\nimport { useSelector } from \"react-redux\";\nimport Tag from \"../Tag\";\nimport { LicenseTagTooltip } from \"./LicenseTagTooltip\";\n\ninterface Props {\n type: SponsorLicenseType;\n}\n\nexport function LicenseTag({ type }: Props) {\n const subscription = useSelector((state: RootState) => state.company.subscription);\n\n if (subscription?.plan !== \"seats_based\") return null;\n\n return (\n <LicenseTagTooltip\n width=\"\"\n content={t([\n \"components.license_tag\",\n type === SponsorLicenseType.PREMIUM ? \"premium_tooltip\" : \"standard_tooltip\",\n ])}\n >\n <Tag\n iconName={type === SponsorLicenseType.PREMIUM ? \"Star\" : \"Diamond\"}\n content={type === SponsorLicenseType.PREMIUM ? \"Premium\" : \"Standard\"}\n size=\"xs\"\n backgroundColor={COLORS.PINK_100}\n color={COLORS.PINK_800}\n data-testid={`${type}-tag`}\n />\n </LicenseTagTooltip>\n );\n}\n","import { Icon, Tooltip } from \"@components/library\";\nimport { COLORS } from \"@constants\";\nimport { t } from \"@utils/i18n\";\n\ninterface Props {\n size?: \"xs\" | \"sm\";\n}\n\nexport function SuperAdminTag({ size = \"xs\" }: Props) {\n return (\n <div data-testid=\"super-admin-tag\">\n <Tooltip content={<>{t(\"components.super_admin_tag.text\")} </>} tooltipWidth=\"290px\">\n <Icon name=\"Crown\" color={COLORS.ORANGE_500} size={size} />\n </Tooltip>\n </div>\n );\n}\n","import { Tag } from \"@components/library\";\nimport { COLORS, FONTS } from \"@constants\";\nimport { ReactNode } from \"react\";\nimport styled from \"styled-components\";\n\ninterface Props {\n label: ReactNode;\n isOptional?: boolean;\n hasError?: boolean;\n hasMissingRequiredError?: boolean;\n font?: string;\n margin?: string | 0;\n withFlexDirectionColumn?: boolean;\n}\n\nconst FormLabel = ({\n label,\n isOptional,\n hasError,\n hasMissingRequiredError,\n font = FONTS.SEMIBOLD_2,\n margin,\n withFlexDirectionColumn,\n}: Props) => (\n <Container margin={margin} withFlexDirectionColumn={withFlexDirectionColumn}>\n <LabelText font={font} hasError={hasError}>\n {label}\n </LabelText>\n {isOptional ? (\n <Tag\n content=\"Optional\"\n backgroundColor={COLORS.ORANGE_100}\n color={COLORS.ORANGE}\n font={FONTS.SEMIBOLD_3}\n margin={withFlexDirectionColumn ? \"8px 0 0\" : \"0 0 0 16px\"}\n />\n ) : (\n hasMissingRequiredError && <Required>Required</Required>\n )}\n </Container>\n);\n\nexport default FormLabel;\n\nconst Container = styled.div`\n display: flex;\n ${({ withFlexDirectionColumn }) =>\n withFlexDirectionColumn ? \"flex-direction: column\" : \"align-items: baseline\"};\n ${({ margin }) => margin && `margin: ${margin}`};\n`;\nconst LabelText = styled.span`\n ${({ font }) => font};\n color: ${({ hasError }) => (hasError ? COLORS.RED_500 : COLORS.BLACK)};\n`;\nconst Required = styled.span`\n margin-left: 16px;\n ${FONTS.MEDIUM_2};\n color: ${COLORS.RED_500};\n`;\n","import { COLORS, STYLES } from \"@constants\";\nimport { SegmentEventName } from \"@tsTypes/__generated__/enums\";\nimport { track } from \"@utils/appUtils\";\nimport { ReactElement, cloneElement, useEffect, useRef, useState } from \"react\";\nimport styled from \"styled-components\";\n\ninterface Props {\n // The element(s) over which the tooltip should show when hovered\n children: ReactElement | ReactElement[];\n tags: ReactElement[];\n}\n\nconst TooltipWrapper = ({ children, tags }: Props) => {\n const [isHovered, setIsHovered] = useState(false);\n const [displayedTags, setDisplayedTags] = useState<ReactElement[]>([]);\n\n // Make sure the proper tag theme is used\n useEffect(() => {\n const updatedTags: ReactElement[] = [];\n\n for (const tag of tags) {\n const updatedTag = cloneElement(tag, {\n theme: \"neutral\",\n });\n\n updatedTags.push(updatedTag);\n\n setDisplayedTags(updatedTags);\n }\n }, [tags]);\n\n // This is used to prevent the tooltip from flashing if a user passes over the child element(s)\n const timeoutRef = useRef<ReturnType<typeof setTimeout>>();\n const toggleShow = (newState) => {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = setTimeout(() => setIsHovered(newState), 100);\n };\n\n const size = tags[0]?.props?.size;\n\n return (\n <Wrapper\n onMouseEnter={() => {\n track(SegmentEventName.View, {\n ui_component: \"TagTooltip\",\n });\n toggleShow(true);\n }}\n onMouseLeave={() => toggleShow(false)}\n >\n {children}\n <Container isHovered={isHovered} size={size} columns={Math.ceil(displayedTags.length / 10)}>\n {displayedTags.map((tag) => (\n <TagContainer key={tag.key} size={size}>\n {tag}\n </TagContainer>\n ))}\n </Container>\n </Wrapper>\n );\n};\n\nexport default TooltipWrapper;\n\nconst Wrapper = styled.div`\n position: relative;\n`;\nconst Container = styled.div`\n position: absolute;\n display: ${({ isHovered }) => (isHovered ? \"grid\" : \"none\")};\n grid-template-columns: repeat(${({ columns }) => columns}, auto);\n gap: 0 20px;\n top: 5%;\n left: 50%;\n transform: translate(-50%, -100%);\n padding: 10px 22px 18px;\n padding: ${({ size }) => (size === \"xs\" ? \"5px 11px 9px\" : \"10px 22px 18px\")};\n border-radius: 8px;\n box-shadow: ${STYLES.SHADOW_B};\n background-color: ${COLORS.WHITE};\n z-index: 1;\n`;\nconst TagContainer = styled.div`\n margin-top: ${({ size }) => (size === \"xs\" ? \"0\" : \"8px\")};\n`;\n","import { COLORS, FONTS } from \"@constants\";\nimport { ReactNode, useEffect, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport styled from \"styled-components\";\n\ninterface Props {\n children: ReactNode;\n content: string | ReactNode;\n tooltipWidth?: string;\n contentWidth?: string;\n position?: \"top\" | \"bottom\" | \"left\" | \"right\";\n arrowOffsetTop?: string | 0;\n remainOnHover?: boolean;\n shouldWrap?: boolean;\n isActive?: boolean;\n shouldFlex?: boolean;\n asPortal?: boolean;\n \"data-testid\"?: string;\n}\n\nconst Tooltip = ({\n children,\n content,\n tooltipWidth,\n contentWidth,\n position = \"top\",\n arrowOffsetTop,\n remainOnHover = true,\n shouldWrap = true,\n isActive = true,\n shouldFlex = false,\n asPortal = false,\n \"data-testid\": dataTestId,\n}: Props) => {\n const [showTooltip, setShowTooltip] = useState(false);\n\n const childrenRef = useRef<HTMLDivElement>(null);\n const timeoutRef = useRef<ReturnType<typeof setTimeout>>();\n const toggleShow = (newState) => {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = setTimeout(() => setShowTooltip(newState), 100);\n };\n\n useEffect(() => {\n return () => {\n clearTimeout(timeoutRef.current);\n };\n }, []);\n\n const childrenHeight = childrenRef.current?.clientHeight ?? 0;\n\n const tooltipContent = (\n <>\n <ContentContainer shouldWrap={shouldWrap}>{content}</ContentContainer>\n <Arrow position={position} arrowOffsetTop={arrowOffsetTop} asPortal={asPortal} />\n </>\n );\n\n if (asPortal) {\n const childrenWidth = childrenRef.current?.clientWidth ?? 0;\n\n const clientRect = childrenRef.current?.getBoundingClientRect();\n\n // position === 'top'\n let tooltipVerticalOffset =\n window.innerHeight - Number(clientRect?.top) - document.documentElement.scrollTop + 12;\n let tooltipHorizontalOffset =\n Number(clientRect?.left) + document.documentElement.scrollLeft + childrenWidth / 2;\n\n if (position === \"bottom\") {\n tooltipVerticalOffset =\n Number(clientRect?.top) + document.documentElement.scrollTop + childrenHeight + 12;\n } else if (position === \"left\" || position === \"right\") {\n tooltipVerticalOffset =\n Number(clientRect?.top) + document.documentElement.scrollTop + childrenHeight / 2;\n\n if (position === \"left\") {\n tooltipHorizontalOffset =\n window.innerWidth - Number(clientRect?.left) + document.documentElement.scrollLeft;\n } else {\n tooltipHorizontalOffset =\n Number(clientRect?.right) - document.documentElement.scrollLeft + 12;\n }\n }\n\n return (\n <>\n <ChildrenContainer\n onMouseEnter={() => toggleShow(true)}\n onMouseLeave={() => toggleShow(false)}\n ref={childrenRef}\n shouldFlex={shouldFlex}\n contentWidth={contentWidth}\n asPortal={asPortal}\n >\n {children}\n </ChildrenContainer>\n {showTooltip &&\n createPortal(\n <PortaledTooltip\n showTooltip={isActive && showTooltip}\n width={tooltipWidth}\n position={position}\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n }}\n onMouseEnter={() => remainOnHover && toggleShow(true)}\n onMouseLeave={() => toggleShow(false)}\n data-testid={dataTestId}\n tooltipVerticalOffset={tooltipVerticalOffset}\n tooltipHorizontalOffset={tooltipHorizontalOffset}\n >\n {tooltipContent}\n </PortaledTooltip>,\n document.body\n )}\n </>\n );\n }\n\n const childrenVerticalCenter = `${childrenHeight / 2 - 8}px`;\n const top = arrowOffsetTop ?? childrenVerticalCenter;\n\n return (\n <Container contentWidth={contentWidth}>\n <ChildrenContainer\n onMouseEnter={() => toggleShow(true)}\n onMouseLeave={() => toggleShow(false)}\n ref={childrenRef}\n shouldFlex={shouldFlex}\n >\n {children}\n </ChildrenContainer>\n {showTooltip && (\n <NonPortaledTooltip\n showTooltip={isActive && showTooltip}\n width={tooltipWidth}\n position={position}\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n }}\n onMouseEnter={() => remainOnHover && toggleShow(true)}\n onMouseLeave={() => toggleShow(false)}\n data-testid={dataTestId}\n >\n {tooltipContent}\n </NonPortaledTooltip>\n )}\n </Container>\n );\n};\n\nexport default Tooltip;\n\nconst Container = styled.div`\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n height: fit-content;\n ${({ contentWidth }) => `width: ${contentWidth}`}\n`;\nconst ChildrenContainer = styled.div`\n ${({ shouldFlex }) => shouldFlex && \"display: flex;\"}\n ${({ contentWidth, asPortal }) =>\n asPortal\n ? `\n height: fit-content;\n width: ${contentWidth ?? \"fit-content\"};\n `\n : `\n width: 100%;\n `}\n`;\nconst StyledTooltip = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n position: absolute;\n background-color: ${COLORS.BLACK};\n color: ${COLORS.WHITE};\n ${({ width }) => width && `width: ${width};`}\n ${({ shouldWrap }) => !shouldWrap && `white-space: nowrap;`}\n border-radius: 6px;\n padding: 12px;\n text-align: left;\n ${FONTS.REGULAR_3};\n cursor: auto;\n`;\nconst PortaledTooltip = styled(StyledTooltip)`\n ${({ position, tooltipVerticalOffset, tooltipHorizontalOffset }) => {\n switch (position) {\n case \"top\":\n return `\n bottom: ${tooltipVerticalOffset}px;\n left: ${tooltipHorizontalOffset}px;\n transform: translate(-50%, 0); \n `;\n case \"bottom\":\n return `\n top: ${tooltipVerticalOffset}px;\n left: ${tooltipHorizontalOffset}px;\n transform: translate(-50%, 0); \n `;\n case \"left\":\n return `\n top: ${tooltipVerticalOffset}px;\n right: ${tooltipHorizontalOffset}px;\n transform: translate(0, -50%);\n `;\n case \"right\":\n return `\n top: ${tooltipVerticalOffset}px;\n left: ${tooltipHorizontalOffset}px;\n transform: translate(0, -50%); \n `;\n }\n }}\n z-index: 510;\n`;\nconst NonPortaledTooltip = styled(StyledTooltip)`\n ${({ position }) => {\n switch (position) {\n case \"top\":\n return `\n bottom: calc(100% + 12px);\n `;\n case \"bottom\":\n return `\n top: calc(100% + 12px);\n `;\n case \"left\":\n return `\n right: calc(100% + 12px);\n `;\n case \"right\":\n return `\n left: calc(100% + 12px);\n `;\n }\n }}\n z-index: 1;\n`;\nconst ContentContainer = styled.div`\n width: 100%;\n white-space: ${({ shouldWrap }) => (shouldWrap ? \"normal\" : \"no-wrap\")};\n \n a {\n color: ${COLORS.WHITE};\n text-decoration: underline;\n cursor: pointer;\n }\n`;\nconst Arrow = styled.div`\n width: 0;\n height: 0;\n position: absolute;\n ${({ position, arrowOffsetTop, isPortal }) => {\n switch (position) {\n case \"top\":\n return `\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n border-top: 8px solid ${COLORS.BLACK};\n bottom: -8px;\n `;\n case \"bottom\":\n return `\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n border-bottom: 8px solid ${COLORS.BLACK};\n top: -8px;\n `;\n case \"left\":\n return `\n border-top: 8px solid transparent;\n border-bottom: 8px solid transparent;\n border-left: 8px solid ${COLORS.BLACK};\n right: -8px;\n ${\n !isPortal || arrowOffsetTop\n ? `top: ${arrowOffsetTop}`\n : `\n top: 50%;\n transform: translateY(-50%);\n `\n }\n `;\n case \"right\":\n return `\n border-top: 8px solid transparent;\n border-bottom: 8px solid transparent;\n border-right: 8px solid ${COLORS.BLACK};\n left: -8px;\n ${\n !isPortal || arrowOffsetTop\n ? `top: ${arrowOffsetTop}`\n : `\n top: 50%;\n transform: translateY(-50%);\n `\n } \n `;\n }\n }}\n`;\n","import { COLORS, FONTS, STYLES } from \"@constants\";\nimport { MessageAttachmentAsJson } from \"@requests/messages\";\nimport { formatBytes, formatMIMEContentType } from \"@utils/textUtils\";\nimport { MouseEvent } from \"react\";\nimport styled from \"styled-components\";\n\nimport { ProposalRequestRequirementAttachmentAsJson } from \"@requests/proposalRequestRequirement\";\nimport IconButton from \"../Buttons/IconButton\";\n\nexport type AttachmentForDisplay = Partial<\n MessageAttachmentAsJson | ProposalRequestRequirementAttachmentAsJson\n>;\n\ninterface Props {\n attachment: AttachmentForDisplay;\n isInbox?: boolean;\n size?: \"sm\" | \"md\" | \"lg\";\n uploadPercentage?: number; // integer within [0, 100]; undefined means the attachment is sent\n onRemove?: () => void;\n onClick?: () => void;\n}\n\nconst MessageAttachment = ({\n attachment,\n isInbox,\n size = \"md\",\n uploadPercentage,\n onRemove,\n onClick,\n}: Props) => {\n const handleRemove = (event: MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n onRemove?.();\n };\n\n const isForUpload = typeof uploadPercentage !== \"undefined\";\n\n const { filename, size_in_bytes, mime_content_type, thumbnail_url } = attachment;\n\n const name = filename;\n const fileSize = formatBytes(size_in_bytes);\n const type = formatMIMEContentType(mime_content_type);\n const isImage = mime_content_type?.startsWith(\"image/\");\n\n return (\n <Container\n isInbox={isInbox}\n size={size}\n isForUpload={isForUpload}\n isImage={isImage}\n onClick={onClick}\n data-testid=\"message-attachment\"\n >\n <Preview>\n {(() => {\n // Display thumbnail if thumbnail exists\n if (thumbnail_url) return <Thumbnail src={thumbnail_url} />;\n // Otherwise, display loading bar (max out at 95% until thumbnail is done loading too)\n return <ProgressBar percentage={Math.min(uploadPercentage ?? 0, 95)} />;\n })()}\n </Preview>\n <div>\n <Name>{name}</Name>\n <Info>\n {type} • {fileSize}\n </Info>\n </div>\n {isForUpload && (\n <RemoveButtonContainer>\n <IconButton\n iconName=\"X\"\n hideTooltip\n variant=\"fifth\"\n size=\"xs\"\n onClick={handleRemove}\n data-testid=\"remove-button\"\n />\n </RemoveButtonContainer>\n )}\n </Container>\n );\n};\n\nconst Preview = styled.div`\n display: flex;\n align-items: center;\n flex: none;\n width: 60px;\n height: 60px;\n background: ${COLORS.NEUTRAL_300};\n border-radius: 4px;\n position: relative;\n overflow-x: hidden;\n`;\n\nconst ProgressBar = styled.div`\n position: absolute;\n bottom: 0;\n display: block;\n background: ${COLORS.HALO_BLUE};\n height: 3px;\n transition: width 0.1s linear;\n width: ${({ percentage }) => percentage}%;\n`;\n\nconst Thumbnail = styled.img`\n background: ${COLORS.WHITE};\n border-radius: 4px;\n width: 100%;\n height: 100%;\n object-fit: cover;\n`;\n\nconst Name = styled.div`\n ${FONTS.MEDIUM_3}\n ${STYLES.ONE_LINE}\n max-width: 188px;\n`;\n\nconst Info = styled.div`\n ${FONTS.REGULAR_3}\n ${STYLES.ONE_LINE}\n color: ${COLORS.NEUTRAL_600};\n`;\n\nconst RemoveButtonContainer = styled.div`\n &&& {\n position: absolute;\n top: -10px;\n right: -10px;\n }\n`;\n\nconst Container = styled.div`\n position: relative;\n width: 280px;\n height: 76px;\n display: flex;\n gap: 12px;\n padding: 0 12px 0 8px;\n align-items: center;\n border-radius: 8px;\n background: ${({ isInbox, isForUpload }) =>\n !isInbox && isForUpload ? COLORS.WHITE : COLORS.NEUTRAL_100};\n\n &:hover {\n cursor: pointer;\n\n & ${Name} {\n text-decoration: underline;\n }\n }\n\n ${({ isForUpload, isImage, size }) =>\n !isForUpload &&\n isImage &&\n `\n height: 255px;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n gap: 8px; \n\n & ${Preview} {\n width: 264px;\n height: 187px;\n }\n\n & ${Name} {\n max-width: 264px;\n }\n `}\n\n ${({ size }) =>\n size === \"sm\" &&\n `\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n gap: 6px;\n height: 28px;\n padding: 2px;\n border-radius: 6px;\n width: initial;\n background: ${COLORS.NEUTRAL_100};\n\n & ${Preview} {\n width: 24px;\n height: 24px;\n }\n\n & ${Info} {\n display: none;\n }\n\n & ${Name} {\n max-width: unset;\n }\n `}\n`;\n\nexport default MessageAttachment;\n","import { MouseEventHandler, useEffect, useState } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport styled from \"styled-components\";\n\nimport { COLORS, FONTS } from \"@constants\";\n\nconst MARGIN_TOP = 110;\nconst MARGIN_TOP_STICKY = 20;\n\nexport interface StandardBannerProps {\n text: string;\n icon?: SVGElement;\n link?: {\n text: string;\n url: string;\n isExternal?: boolean; // Defaults to true, uses React Router if false\n };\n}\n\nconst StandardBanner = ({ text, icon, link }: StandardBannerProps) => {\n const history = useHistory();\n const [isSticky, setIsSticky] = useState<boolean>(false);\n\n const onScrollSticky: EventListener = () => {\n if (window.scrollY >= MARGIN_TOP - MARGIN_TOP_STICKY) {\n setIsSticky(true);\n } else {\n setIsSticky(false);\n }\n };\n\n useEffect(() => {\n window.addEventListener(\"scroll\", onScrollSticky);\n return () => {\n window.removeEventListener(\"scroll\", onScrollSticky);\n };\n });\n\n const handleLinkClick =\n (url: string): MouseEventHandler<HTMLSpanElement> =>\n () => {\n if (link?.isExternal) {\n window.location.href = url;\n } else {\n history.push(url);\n }\n };\n\n return (\n <Banner isSticky={isSticky}>\n {icon && <Icon src={icon} />}\n <Text>{text}</Text>\n {link?.text && link?.url && <Link onClick={handleLinkClick(link.url)}>{link.text}</Link>}\n </Banner>\n );\n};\n\nconst Banner = styled.div`\n ${({ isSticky }) =>\n isSticky\n ? `\n position: fixed;\n margin-top: ${MARGIN_TOP_STICKY}px;\n `\n : `\n position: absolute;\n margin-top: ${MARGIN_TOP}px;\n `}\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n min-width: 60%;\n padding: 15px 20px;\n text-align: center;\n z-index: 999;\n border-radius: 4px;\n box-shadow: 0px 4px 10px -4px rgba(28, 50, 79, 0.28);\n background-color: ${COLORS.HALO_BLUE};\n color: ${COLORS.WHITE};\n`;\n\nconst Icon = styled.img`\n height: 24px;\n margin-top: -2px;\n margin-right: 10px;\n fill: ${COLORS.WHITE};\n`;\n\nconst Text = styled.span`\n ${FONTS.REGULAR_2}\n`;\n\nconst Link = styled.span`\n ${FONTS.SEMIBOLD_2}\n text-decoration: underline;\n margin-left: 15px;\n cursor: pointer;\n`;\n\nexport default StandardBanner;\n","import { COLORS, FONTS, WINDOW_DIMENSIONS } from \"@constants\";\nimport { ReactNode } from \"react\";\nimport styled from \"styled-components\";\n\ninterface Props {\n title?: string | ReactNode | null;\n subtitle?: string | ReactNode | null;\n children: ReactNode;\n}\n\nfunction BlueBox({ title, subtitle, children }: Props) {\n return (\n <Container>\n {title && <Title>{title}</Title>}\n {subtitle && <Subtitle>{subtitle}</Subtitle>}\n {children}\n </Container>\n );\n}\n\nexport default BlueBox;\n\nconst Container = styled.div`\n padding: 64px;\n background-color: ${COLORS.BLUE_LIGHT_100};\n border-radius: 8px;\n ${WINDOW_DIMENSIONS.TABLET_MEDIA_QUERY} {\n padding: 24px;\n }\n`;\n\nconst Title = styled.div`\n ${FONTS.MEDIUM_1}\n color: ${COLORS.NEUTRAL_500};\n margin-bottom: 16px;\n ${WINDOW_DIMENSIONS.TABLET_MEDIA_QUERY} {\n text-align: center;\n }\n`;\nconst Subtitle = styled.div`\n ${FONTS.HEADING_3_REGULAR}\n color: ${COLORS.BLACK};\n margin-bottom: 32px;\n ${WINDOW_DIMENSIONS.TABLET_MEDIA_QUERY} {\n text-align: center;\n }\n`;\n","import { WINDOW_DIMENSIONS } from \"@constants\";\nimport styled from \"styled-components\";\n\nexport default styled.div`\n display: flex;\n flex-direction: row;\n gap: 19px;\n ${WINDOW_DIMENSIONS.TABLET_MEDIA_QUERY} {\n flex-direction: column;\n gap: 16px;\n }\n`;\n","import { COLORS, FONTS } from \"@constants\";\nimport styled from \"styled-components\";\n\ninterface Props {\n children: number | string;\n marginLeft?: string;\n accent?: boolean;\n backgroundColor?: string;\n \"data-testid\"?: string;\n}\n\nconst InfoTag = ({\n children,\n marginLeft = \"12px\",\n accent = false,\n backgroundColor,\n \"data-testid\": dataTestId,\n}: Props) => {\n return (\n <Container\n marginLeft={marginLeft}\n accent={accent}\n backgroundColor={backgroundColor}\n data-testid={dataTestId}\n >\n {children}\n </Container>\n );\n};\n\nexport default InfoTag;\n\nconst Container = styled.div`\n display: inline-flex;\n justify-content: center;\n align-items: center;\n height: 18px;\n min-width: 20px;\n width: auto;\n background: ${({ accent, backgroundColor }) =>\n backgroundColor || (accent && COLORS.BLUE_GRADIENT) || COLORS.NEUTRAL_400};\n color: ${COLORS.WHITE};\n border-radius: 100px;\n padding: ${({ accent }) => (accent ? \"2px 8px\" : \"2px 6px\")};\n margin-left: ${({ marginLeft }) => marginLeft};\n ${({ accent }) => (accent ? FONTS.TAG_ACCENT : FONTS.TAG_BOLD_2)};\n`;\n","import { COLORS, FONTS } from \"@constants\";\n\nimport styled from \"styled-components\";\nimport Icon from \"../Icon\";\nimport InfoTag from \"../Tags/InfoTag\";\n\ninterface Props {\n variant: \"ghost\" | \"fourth\";\n count: number;\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n hideText?: boolean;\n}\n\nfunction FiltersButton({ variant, count, isOpen, setIsOpen, hideText = false }: Props) {\n const hasFilters = count > 0;\n\n let iconColor: string;\n let countTagBackgroundColor: string;\n switch (variant) {\n case \"ghost\": {\n iconColor = COLORS.HALO_BLUE;\n countTagBackgroundColor = COLORS.BLUE_650;\n break;\n }\n case \"fourth\": {\n iconColor = COLORS.BLACK;\n countTagBackgroundColor = COLORS.BLACK;\n break;\n }\n }\n\n return (\n <Button\n variant={variant}\n hasFilters={hasFilters}\n isOpen={isOpen}\n onClick={() => setIsOpen(!isOpen)}\n >\n <Content variant={variant} hasFilters={hasFilters} hideText={hideText}>\n <Icon name=\"Filter\" size=\"md\" color={iconColor} />\n {!hideText && \"Filters\"}\n {hasFilters && (\n <InfoTag backgroundColor={countTagBackgroundColor} marginLeft=\"0\">\n {count}\n </InfoTag>\n )}\n </Content>\n </Button>\n );\n}\n\nexport default FiltersButton;\n\nconst Button = styled.button`\n height: 36px;\n border: none;\n border-radius: 4px;\n padding: 0;\n background-color: ${({ hasFilters, variant }) => {\n if (!hasFilters) return \"transparent\";\n switch (variant) {\n case \"ghost\": {\n return COLORS.BLUE_LIGHT_300;\n }\n case \"fourth\": {\n return COLORS.NEUTRAL_200;\n }\n }\n }};\n outline: 1px solid\n ${({ hasFilters, isOpen, variant }) => {\n if (!(hasFilters || isOpen)) return \"transparent\";\n switch (variant) {\n case \"ghost\": {\n return COLORS.HALO_BLUE;\n }\n case \"fourth\": {\n return COLORS.BLACK;\n }\n }\n }};\n\n &:hover > div {\n background-color: ${({ variant, hasFilters }) => {\n switch (variant) {\n case \"ghost\": {\n return hasFilters ? COLORS.BLUE_LIGHT_500 : COLORS.BLUE_LIGHT_300;\n }\n case \"fourth\": {\n return hasFilters ? COLORS.NEUTRAL_350 : COLORS.NEUTRAL_200;\n }\n }\n }};\n }\n\n &:active {\n & > div {\n background-color: ${({ variant, hasFilters }) => {\n switch (variant) {\n case \"ghost\": {\n return hasFilters ? COLORS.BLUE_LIGHT_600 : COLORS.BLUE_LIGHT_400;\n }\n case \"fourth\": {\n return hasFilters ? COLORS.NEUTRAL_400 : COLORS.NEUTRAL_300;\n }\n }\n }};\n }\n }\n`;\n\nconst Content = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 4px;\n\n width: 100%;\n height: 100%;\n\n ${FONTS.BUTTON_2}\n border-radius: 4px;\n color: ${({ variant }) => {\n switch (variant) {\n case \"ghost\": {\n return COLORS.HALO_BLUE;\n }\n case \"fourth\": {\n return COLORS.BLACK;\n }\n }\n }};\n padding: ${({ hideText }) => (hideText ? \"0 8px\" : \"0 20px 0 12px\")};\n transition: background-color 0.1s ease;\n`;\n","import { COLORS, FONTS } from \"@constants\";\nimport { ReactElement } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport styled, { css } from \"styled-components\";\nimport { BaseButtonProps } from \"./Button\";\n\ninterface Props extends BaseButtonProps {\n size?: \"md\" | \"lg\";\n // This sets a min-width in case the button is intended to extend past its contents. A minimum padding will be maintained\n width?: string;\n maxHeight?: string;\n icon?: HTMLImageElement | ReactElement<any, any> | null;\n iconPosition?: \"left\" | \"right\";\n children: any;\n to?: string;\n className?: string;\n}\n\nconst GradientButton = ({\n size = \"lg\",\n width,\n maxHeight,\n to,\n margin = 0,\n icon,\n iconPosition = \"left\",\n children,\n id,\n disabled,\n type = \"button\",\n onClick,\n \"data-testid\": dataTestId,\n className,\n}: Props) => {\n const StyledComponent = to ? StyledLink : StyledButton;\n\n return (\n <StyledComponent\n to={to}\n size={size}\n width={width}\n height={maxHeight}\n margin={margin}\n iconPosition={iconPosition}\n id={id}\n disabled={disabled}\n type={type}\n onClick={onClick}\n data-testid={dataTestId}\n className={className}\n >\n {icon ? <IconContainer iconPosition={iconPosition}>{icon}</IconContainer> : null}\n {children}\n </StyledComponent>\n );\n};\n\nexport default GradientButton;\n\nconst BaseStyles = css`\n display: flex;\n flex-direction: ${({ iconPosition }) => (iconPosition === \"left\" ? \"row\" : \"row-reverse\")};\n justify-content: center;\n align-items: center;\n height: ${({ size }) => (size === \"md\" ? \"42px\" : \"64px\")};\n min-width: ${({ width }) => width ?? \"initial\"};\n max-height: ${({ maxHeight }) => maxHeight ?? \"initial\"};\n background: ${COLORS.BLUE_GRADIENT};\n color: ${COLORS.WHITE};\n font-size: ${({ size }) => (size === \"md\" ? \"16px\" : \"18px\")};\n font-weight: 500;\n line-height: ${({ size }) => (size === \"md\" ? \"16px\" : \"18px\")};\n border: none;\n border-radius: ${({ size }) => (size === \"md\" ? \"4px\" : \"6px\")};\n box-shadow: 0px 10px ${({ size }) => (size === \"md\" ? 16 : 32)}px -4px #016aaa54;\n padding: 0 24px;\n margin: ${({ margin }) => margin};\n &:hover {\n background: linear-gradient(92.65deg, #004980 0%, #0085cc 92%);\n }\n &:focus:not(:active) {\n outline: none;\n }\n &:disabled {\n opacity: 0.4;\n pointer-events: none;\n }\n`;\n\nconst StyledLink = styled(Link)`\n display: inline-block;\n ${BaseStyles}\n ${FONTS.HEADING_5_MEDIUM}\n &:hover {\n color: white;\n text-decoration: none;\n }\n`;\n\nconst StyledButton = styled.button`\n ${BaseStyles}\n`;\nconst IconContainer = styled.div`\n margin: ${({ iconPosition }) => (iconPosition === \"left\" ? \"0 4px 0 0\" : \"0 0 0 4px\")};\n width: 24px;\n height: 24px;\n`;\n","import Icon, { IconName } from \"@components/library/Icon/Icon\";\nimport { COLORS, FONTS, STYLES } from \"@constants\";\nimport { Size } from \"@tsTypes/ui\";\nimport styled from \"styled-components\";\nimport { BaseButtonProps } from \"./Button\";\n\ninterface Props extends BaseButtonProps {\n text: string;\n size?: \"xs\" | \"sm\" | \"md\";\n color?: string;\n iconName?: IconName | null;\n iconPosition?: \"right\" | \"left\";\n iconSize?: Size;\n width?: string;\n}\n\nconst TextButton = ({\n text,\n size = \"md\",\n color = COLORS.HALO_BLUE,\n iconName = \"Chevron Down\",\n iconPosition = \"right\",\n iconSize,\n margin,\n id,\n name,\n type = \"button\",\n disabled,\n width,\n onClick,\n onMouseEnter,\n onMouseLeave,\n onFocus,\n onBlur,\n \"data-testid\": dataTestId,\n}: Props) => {\n return (\n <Button\n size={size}\n color={color}\n margin={margin}\n iconPosition={iconPosition}\n id={id}\n name={name}\n type={type}\n disabled={disabled}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onFocus={onFocus}\n onBlur={onBlur}\n data-testid={dataTestId}\n width={width}\n >\n <span>{text}</span>\n {iconName && (\n <Icon\n name={iconName}\n size={iconSize ?? (size === \"md\" ? \"md\" : \"xs\")}\n color={color}\n margin={iconPosition === \"right\" ? \"0 0 0 4px\" : \"0 4px 0 0\"}\n />\n )}\n </Button>\n );\n};\n\nexport default TextButton;\n\nconst Button = styled.button`\n display: flex;\n flex-direction: ${({ iconPosition }) => (iconPosition === \"right\" ? \"row\" : \"row-reverse\")};\n align-items: center;\n height: ${({ size }) => (size === \"sm\" ? 16 : 24)}px;\n ${({ width }) =>\n width\n ? `\n width: ${width};\n span {\n ${STYLES.ONE_LINE_ALT};\n }\n `\n : \"fit-content\"};\n ${({ margin }) => margin && `margin: ${margin}`};\n padding: 0;\n ${({ size }) => {\n if (size === \"xs\") return FONTS.BUTTON_4;\n if (size === \"sm\") return FONTS.BUTTON_3;\n return FONTS.BUTTON_2;\n }};\n color: ${({ color }) => (color ? color : COLORS.HALO_BLUE)};\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 4px;\n &:hover {\n text-decoration: underline ${({ color }) => color};\n text-underline-offset: 4px;\n }\n &:focus {\n outline: none;\n }\n &:disabled {\n opacity: 0.4;\n }\n`;\n","import { COLORS, FONTS } from \"@constants\";\nimport { Link } from \"react-router-dom\";\nimport styled from \"styled-components\";\n\ninterface Props {\n to: string | { pathname: string };\n children: any;\n color?: string;\n font?: string;\n underline?: boolean;\n newTab?: boolean;\n onClick?: () => void;\n margin?: string | 0;\n}\n\nconst TextLink = ({\n to,\n children,\n color = COLORS.BLACK,\n font = FONTS.MEDIUM_2,\n underline = false,\n newTab = false,\n onClick,\n margin,\n}: Props) => {\n return (\n <StyledLink\n to={to}\n color={color}\n font={font}\n $underline={underline}\n target={newTab ? \"_blank\" : \"\"}\n rel={newTab ? \"noreferrer\" : \"\"}\n onClick={onClick}\n margin={margin}\n >\n {children}\n </StyledLink>\n );\n};\n\nexport default TextLink;\n\nconst StyledLink = styled(Link)`\n display: inline-flex;\n align-items: center;\n width: fit-content;\n ${({ margin }) => margin && `margin: ${margin}`};\n color: ${({ color }) => color};\n ${({ font }) => font};\n ${({ $underline }) => $underline && `text-decoration: underline;`};\n &:hover,\n &:focus {\n color: ${({ color }) => color};\n }\n`;\n","import { COLORS, STYLES, WINDOW_DIMENSIONS } from \"@constants\";\nimport { ReactNode } from \"react\";\nimport styled from \"styled-components\";\n\ninterface Props {\n children?: ReactNode;\n minHeight?: string;\n showHoverBorder?: boolean;\n padding?: string | 0;\n onClick?: (...args: any[]) => any;\n onMouseEnter?: (...args: any[]) => any;\n onMouseLeave?: (...args: any[]) => any;\n \"data-testid\"?: string;\n}\n\nconst Card = ({\n children,\n minHeight,\n showHoverBorder = true,\n padding,\n onClick,\n onMouseEnter,\n onMouseLeave,\n \"data-testid\": dataTestId,\n}: Props) => {\n return (\n <Container\n minHeight={minHeight}\n showHoverBorder={showHoverBorder}\n padding={padding}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n data-testid={dataTestId}\n >\n {children}\n </Container>\n );\n};\n\nexport default Card;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n min-width: 0;\n outline: 1px solid ${COLORS.NEUTRAL_250};\n border: none;\n background-color: ${COLORS.WHITE};\n text-align: left;\n border-radius: ${({ showHoverBorder }) => (showHoverBorder ? \"4px\" : \"12px 12px 4px 4px\")};\n box-shadow: ${STYLES.SHADOW_CARD};\n cursor: pointer;\n\n ${({ showHoverBorder }) => showHoverBorder && \"border-top: 4px solid transparent;\"}\n padding: ${({ padding }) => padding || \"16px\"};\n ${({ minHeight }) => minHeight && `min-height: ${minHeight};`}\n\n transition: box-shadow 0.2s ease;\n &:hover {\n box-shadow: ${STYLES.SHADOW_A};\n }\n\n &:nth-of-type(3n) .Select__menu {\n right: 0;\n }\n ${WINDOW_DIMENSIONS.EXTRA_WIDE_MEDIA_QUERY} {\n &:nth-of-type(3n) .Select__menu {\n right: auto;\n }\n &:nth-of-type(4n) .Select__menu {\n right: 0;\n }\n }\n ${WINDOW_DIMENSIONS.DESKTOP_MEDIA_QUERY} {\n &:nth-of-type(3n) .Select__menu {\n right: auto;\n }\n &:nth-of-type(2n) .Select__menu {\n right: 0;\n }\n }\n ${WINDOW_DIMENSIONS.TABLET_LANDSCAPE_MEDIA_QUERY} {\n &:nth-of-type(3n) .Select__menu {\n right: 0;\n }\n & .Select__menu {\n right: 0;\n }\n }\n ${WINDOW_DIMENSIONS.TABLET_MEDIA_QUERY} {\n &:nth-of-type(3n) .Select__menu {\n right: 0;\n }\n & .Select__menu {\n right: 0;\n }\n }\n`;\n","import { Icon } from \"@components/library\";\nimport { COLORS } from \"@constants\";\nimport { Size } from \"@tsTypes/index\";\nimport { useState } from \"react\";\nimport styled from \"styled-components\";\n\ninterface Props {\n imageUrl?: string | null;\n isPrivate?: boolean;\n size?: Extract<Size, \"xs\" | \"sm\" | \"md\" | \"lg\">;\n}\n\nconst CompanyAvatar = ({ imageUrl, isPrivate = false, size = \"lg\" }: Props) => {\n const [hasError, setHasError] = useState(false);\n\n return (\n <Container size={size}>\n {(() => {\n if (isPrivate) return <Icon name=\"Private Company\" size={size === \"lg\" ? \"lg\" : \"md\"} />;\n if (imageUrl && !hasError)\n return <Avatar src={imageUrl} alt=\"\" size={size} onError={() => setHasError(true)} />;\n return <Icon name=\"Organization\" size={size} color={COLORS.NEUTRAL_400} />;\n })()}\n </Container>\n );\n};\n\nexport default CompanyAvatar;\n\nconst Container = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n border: 1px solid ${COLORS.NEUTRAL_250};\n background-color: ${COLORS.WHITE};\n padding: 0 8px;\n ${({ size }) => {\n if (size === \"xs\") {\n return `\n width: 24px;\n height: 24px;\n border-radius: 4px;\n `;\n } else if (size === \"sm\") {\n return `\n width: 40px;\n height: 40px;\n border-radius: 4px;\n `;\n } else if (size === \"md\") {\n return `\n width: 48px;\n height: 48px;\n border-radius: 12px;\n `;\n }\n return `\n width: 64px;\n height: 64px;\n border-radius: 12px;\n `;\n }}\n`;\nconst Avatar = styled.img`\n ${({ size }) => {\n if (size === \"xs\") {\n return `\n max-width: 18px;\n max-height: 18px;\n `;\n } else if (size === \"sm\") {\n return `\n max-width: 34px;\n max-height: 34px;\n `;\n } else if (size === \"md\") {\n return `\n max-width: 36px;\n max-height: 36px;\n `;\n }\n return `\n max-width: 48px;\n max-height: 48px;\n `;\n }}\n`;\n","import { TextButton } from \"@components/library\";\nimport { COLORS, FONTS } from \"@constants\";\nimport { ReactNode, useEffect, useState } from \"react\";\nimport Select, { components } from \"react-select\";\nimport styled from \"styled-components\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { DropdownOption, ExtendedDropdownOption, OptionLabel } from \"./DropdownOption\";\nimport DROPDOWN_STYLES from \"./dropdownStyles\";\n\ninterface Props {\n children?: ReactNode; // Trigger component. Defaults to a TextButton with the value label\n options: readonly ExtendedDropdownOption[];\n value: DropdownOption;\n onChange: (...args: any[]) => any;\n isSearchable?: boolean;\n menuWidth?: string;\n maxMenuHeight?: string;\n menuHorizontalPosition?: \"right\" | \"left\";\n // Portal the menu with width if using within a scrollable overflow\n isPortal?: boolean;\n portalMenuWidth?: string;\n isDisabled?: boolean;\n}\n\nconst DropdownIndicator = (props) => {\n const { children, value } = props.selectProps;\n\n return (\n // eslint-disable-next-line react/jsx-props-no-spreading\n <DropdownIndicatorComponent {...props}>\n {children ?? <TextButton text={value.label} color={COLORS.BLACK} />}\n </DropdownIndicatorComponent>\n );\n};\n\n/**\n * This dropdown is used when a selected option becomes the value of the dropdown. Often times, the\n * display will directly reflect the selected option. A typical use case would be a \"sort by\" menu\n *\n * menuWidth: When specified, the component will not bleed through the right edge of the screen.\n */\nconst SelectableDropdown = ({\n children,\n options,\n value,\n onChange,\n isSearchable = false,\n menuWidth,\n maxMenuHeight,\n menuHorizontalPosition,\n isPortal,\n portalMenuWidth = \"300px\",\n isDisabled = false,\n}: Props) => {\n const [portalOffsetRight, setPortalOffsetRight] = useState(0);\n\n useEffect(() => {\n if (!isPortal) return;\n\n const element = document.getElementById(id);\n\n setPortalOffsetRight(window.innerWidth - Number(element?.getBoundingClientRect().right));\n }, [isPortal]);\n\n const id = uuidv4();\n\n return (\n <Dropdown\n id={id}\n classNamePrefix=\"Select\"\n components={{ DropdownIndicator }}\n options={options}\n formatOptionLabel={OptionLabel}\n value={value}\n onChange={(e: ExtendedDropdownOption) => onChange(e)}\n isSearchable={isSearchable}\n isDisabled={isDisabled}\n menuWidth={menuWidth}\n maxMenuHeight={maxMenuHeight}\n menuHorizontalPosition={menuHorizontalPosition}\n menuPosition={isPortal ? \"fixed\" : \"absolute\"}\n menuPortalTarget={isPortal && document.body}\n styles={\n isPortal && {\n menu: (base) => ({\n ...base,\n padding: \"8px 0\",\n width: menuWidth,\n ...(menuHorizontalPosition === \"right\" && { right: 0 }),\n }),\n menuList: (base) => ({\n ...base,\n display: \"flex\",\n flexDirection: \"column\",\n }),\n menuPortal: (base) => ({\n ...base,\n zIndex: 9999,\n width: portalMenuWidth,\n ...(menuHorizontalPosition === \"right\" && { right: portalOffsetRight, left: \"unset\" }),\n }),\n option: (base, { isSelected }) => ({\n ...base,\n width: \"unset\",\n margin: \"0 12px\",\n cursor: \"pointer\",\n ...(isSelected && { backgroundColor: COLORS.BLUE_LIGHT_400, color: COLORS.HALO_BLUE }),\n }),\n }\n }\n menuShouldBlockScroll={isPortal}\n >\n {children}\n </Dropdown>\n );\n};\n\nexport default SelectableDropdown;\n\nconst Dropdown = styled(Select)`\n ${DROPDOWN_STYLES};\n\n ${({ menuWidth }) =>\n menuWidth &&\n `\n .Select__menu {\n white-space: normal;\n width: ${menuWidth};\n\n position: absolute;\n right: 0;\n }\n `}\n .Select__control {\n padding: 0 2px 0 4px;\n min-height: unset;\n border: none;\n &:hover {\n &:not(.Select__control--is-focused) {\n border: none;\n }\n &.Select__control--is-focused {\n border: none;\n }\n }\n }\n .Select__control--is-disabled {\n ${({ isDisabled }) => isDisabled && \"background-color: transparent;\"}\n }\n .Select__placeholder {\n color: ${COLORS.BLACK};\n ${FONTS.MEDIUM_2};\n }\n .Select__value-container {\n height: 0;\n width: 0;\n padding: 0;\n }\n .Select__indicator {\n margin: 0px;\n }\n .Select__option {\n min-width: unset;\n }\n .Select__menu {\n min-width: fit-content;\n ${({ menuHorizontalPosition }) =>\n menuHorizontalPosition &&\n `\n position: absolute;\n ${menuHorizontalPosition}: 0;\n `}\n }\n .Select__menu-list {\n max-height: ${({ maxMenuHeight }) => maxMenuHeight};\n }\n .Select__control:hover:not(.Select__control--is-focused) {\n border: none;\n }\n`;\nconst DropdownIndicatorComponent = styled(components.DropdownIndicator)`\n ${({ isDisabled }) => isDisabled && \"opacity: 0.6;\"}\n`;\n","import { Icon } from \"@components/library\";\nimport type { DropdownOption } from \"@components/library/Dropdowns/DropdownOption\";\nimport { COLORS, FONTS } from \"@constants\";\nimport { ReactNode } from \"react\";\nimport Select, { ClearIndicatorProps, components } from \"react-select\";\nimport styled from \"styled-components\";\nimport FormLabel from \"../Texts/FormLabel\";\nimport { MultiSelectDropdownBaseStyles } from \"./MultiSelectDropdown\";\nimport DROPDOWN_STYLES from \"./dropdownStyles\";\n\ninterface Props {\n value: DropdownOption | null;\n options: DropdownOption[];\n onChange: (...args: any[]) => any;\n placeholder: string;\n label?: string;\n labelFont?: string;\n isOptional?: boolean;\n isClearable?: boolean;\n createOptionComponent?: ReactNode;\n onCreate?: (...args: any[]) => any;\n menuPlacement?: \"bottom\" | \"auto\" | \"top\";\n maxValueContainerHeight?: string;\n maxMenuHeight?: string;\n helpText?: string;\n errors?: { hasError: boolean; errorMessage: string }[];\n}\n\nconst ClearIndicator = (props: ClearIndicatorProps) => {\n return (\n <components.ClearIndicator {...props}>\n <Icon name=\"X\" size=\"xs\" />\n </components.ClearIndicator>\n );\n};\n\nconst SelectOrCreateDropdown = ({\n value,\n options,\n onChange,\n placeholder,\n label,\n labelFont = FONTS.SEMIBOLD_2,\n isOptional = false,\n isClearable = false,\n createOptionComponent = (\n <CreateLabel>\n <Icon name=\"Add\" color={COLORS.HALO_BLUE} margin=\"0 10px 0 0\" />\n Create new\n </CreateLabel>\n ),\n onCreate,\n menuPlacement = \"auto\",\n maxValueContainerHeight = \"unset\",\n maxMenuHeight = \"250px\",\n helpText,\n errors,\n}: Props) => {\n const handleChange = (option) => {\n if (option?.value === \"_CREATE\" && onCreate) {\n onCreate();\n }\n onChange(option);\n };\n\n const hasAnyError = errors?.map((error) => error.hasError).includes(true);\n\n const optionsWithCreate = onCreate\n ? [\n ...options,\n {\n value: \"_CREATE\",\n label: createOptionComponent,\n },\n ]\n : options;\n\n const dropdown = (\n <Dropdown\n classNamePrefix=\"Select\"\n value={value ?? null}\n options={optionsWithCreate}\n onChange={handleChange}\n hideSelectedOptions={false}\n isSearchable={false}\n isClearable={isClearable}\n placeholder={placeholder}\n menuPlacement={menuPlacement}\n maxMenuHeight={maxMenuHeight}\n maxValueContainerHeight={maxValueContainerHeight}\n hasError={hasAnyError}\n hasCreateOption={Boolean(onCreate)}\n components={{\n ClearIndicator,\n }}\n />\n );\n\n return (\n <div>\n {label ? (\n <DropdownLabel>\n <FormLabel\n label={label}\n font={labelFont}\n hasError={hasAnyError}\n isOptional={isOptional}\n />\n {dropdown}\n </DropdownLabel>\n ) : (\n dropdown\n )}\n {Number(helpText?.length) > 0 && <HelpText>{helpText}</HelpText>}\n {hasAnyError &&\n errors?.map(\n (error) =>\n error.hasError && (\n <ErrorMessage key={error.errorMessage}>\n <Icon name=\"Attention\" size=\"sm\" margin=\"0 8px 0 0\" color={COLORS.RED_500} />\n {error.errorMessage}\n </ErrorMessage>\n )\n )}\n </div>\n );\n};\n\nexport default SelectOrCreateDropdown;\n\nconst CreateLabel = styled.div`\n display: flex;\n align-items: center;\n`;\nconst Dropdown = styled(Select)`\n ${DROPDOWN_STYLES};\n ${MultiSelectDropdownBaseStyles};\n\n .Select__control {\n margin-top: 0;\n }\n ${({ hasCreateOption }) =>\n hasCreateOption &&\n `\n .Select__option:last-of-type {\n color: ${COLORS.HALO_BLUE};\n ${FONTS.MEDIUM_2};\n }\n `}\n`;\nconst DropdownLabel = styled.label`\n display: flex;\n flex-direction: column;\n gap: 10px;\n width: 100%;\n`;\nconst HelpText = styled.div`\n margin-top: 8px;\n ${FONTS.REGULAR_3};\n`;\nconst ErrorMessage = styled.div`\n display: flex;\n margin-top: 8px;\n ${FONTS.MEDIUM_3};\n color: ${COLORS.RED_500};\n`;\n","import MultiSelectDropdown, { SingleSelectProps } from \"./MultiSelectDropdown\";\n\nconst SingleSelectDropdown = ({ placeholder = \"None\", ...props }: SingleSelectProps) => (\n // eslint-disable-next-line react/jsx-props-no-spreading\n <MultiSelectDropdown isMulti={false} placeholder={placeholder} closeOnMenuSelect {...props} />\n);\n\nexport default SingleSelectDropdown;\n","import { useUniversityOptions } from \"src/views/Onboarding/Hooks\";\n\nimport Fuse from \"fuse.js\";\nimport { DropdownOption } from \"./DropdownOption\";\nimport MultiSelectDropdown from \"./MultiSelectDropdown\";\n\ninterface Props {\n value: DropdownOption | null;\n onChange: (newValue: DropdownOption | null) => void;\n}\n\nexport default function UniversityDropdown({ value, onChange }: Props) {\n const universityOptions = useUniversityOptions();\n\n const searchUniversities = async (query: string): Promise<DropdownOption[]> => {\n const fuse = new Fuse(universityOptions, {\n keys: [\"value\"],\n });\n const result = fuse.search(query);\n const values = result.map((r: any) => r.item).slice(0, 500);\n return values;\n };\n\n return (\n <MultiSelectDropdown\n placeholder=\"Search research institutions\"\n value={value}\n onChange={onChange}\n isMulti={false}\n maxMenuHeight=\"250px\"\n menuPlacement=\"bottom\"\n searchFn={searchUniversities}\n closeOnMenuSelect\n withSearchIcon\n />\n );\n}\n","import { Icon } from \"@components/library\";\nimport { COLORS, FONTS } from \"@constants\";\nimport { Size } from \"@tsTypes/ui\";\nimport { ReactNode } from \"react\";\nimport styled from \"styled-components\";\nimport { IconName } from \"../Icon/Icon\";\n\ntype InfoBannerType = \"info\" | \"attention-dark\" | \"attention-orange\" | \"ghost\" | \"magic\";\n\ninterface Props {\n shouldDisplay?: boolean;\n text: ReactNode;\n font?: string;\n type?: InfoBannerType;\n width?: string;\n margin?: string;\n padding?: string;\n hideIcon?: boolean;\n \"data-testid\"?: string;\n}\n\nconst InfoBanner = ({\n shouldDisplay = true,\n text,\n font,\n type = \"info\",\n width = \"fit-content\",\n margin,\n padding = \"16px\",\n hideIcon = false,\n \"data-testid\": dataTestId,\n}: Props) => {\n const ICON_PROPS: Record<InfoBannerType, { name: IconName; color: string; size?: Size }> = {\n info: {\n name: \"Info Small\",\n color: COLORS.BLACK,\n size: \"sm\",\n },\n \"attention-dark\": {\n name: \"Attention\",\n color: COLORS.BLACK,\n },\n \"attention-orange\": {\n name: \"Attention\",\n color: COLORS.ORANGE_900,\n },\n ghost: {\n name: \"Attention\",\n color: COLORS.BLACK,\n },\n magic: {\n name: \"Magic Full\",\n color: COLORS.PINK_800,\n },\n };\n\n // In order to align the icon vertically with the text, accounting for different text sizes and\n // number of text rows, we need to adjust the height of the icon container\n let iconContainerHeight = 24; // px\n // When type is \"info\", the icon is actually a bit smaller but so is the default font\n if ((!font && type === \"info\") || font?.includes(\"font-size: 12px;\")) {\n iconContainerHeight = 20; // px\n }\n\n return shouldDisplay ? (\n <Container\n width={width}\n font={font}\n margin={margin}\n padding={padding}\n type={type}\n data-testid={dataTestId}\n >\n {!hideIcon && (\n <IconContainer height={iconContainerHeight} isMagic={type === \"magic\"}>\n <Icon\n name={ICON_PROPS[type].name}\n color={ICON_PROPS[type].color}\n size={ICON_PROPS[type].size}\n />\n </IconContainer>\n )}\n {text}\n </Container>\n ) : null;\n};\n\nexport default InfoBanner;\n\nconst Container = styled.div`\n display: flex;\n width: ${({ width }) => width};\n ${({ margin }) => margin && `margin: ${margin}`};\n padding: ${({ padding }) => padding};\n border-radius: 6px;\n ${({ type }) => {\n switch (type) {\n case \"info\":\n return `\n color: ${COLORS.BLACK};\n background-color: ${COLORS.NEUTRAL_100};\n ${FONTS.REGULAR_3}\n `;\n case \"attention-orange\":\n return `\n color: ${COLORS.ORANGE_900};\n background-color: ${COLORS.ORANGE_100};\n ${FONTS.MEDIUM_2}\n `;\n case \"attention-dark\":\n return `\n color: ${COLORS.BLACK};\n background-color: ${COLORS.NEUTRAL_100};\n ${FONTS.MEDIUM_2}\n `;\n case \"ghost\":\n return `\n color: ${COLORS.BLACK};\n background-color: ${COLORS.WHITE};\n ${FONTS.MEDIUM_2}\n `;\n case \"magic\": {\n return `\n color: ${COLORS.PINK_800};\n background-color: ${COLORS.PINK_50};\n ${FONTS.REGULAR_2}\n `;\n }\n }\n }}\n ${({ font }) => font && font};\n`;\nconst IconContainer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n min-width: 24px;\n height: ${({ height }) => height}px;\n margin: ${({ isMagic }) => `0 ${isMagic ? 10 : 6}px 0 ${isMagic ? 0 : -4}px`};\n`;\n","import { COLORS, FONTS } from \"@constants\";\nimport { ChangeEvent, ReactNode, useEffect, useRef, useState } from \"react\";\nimport styled from \"styled-components\";\n\ntype InputType = \"checkbox\" | \"radio\";\n\ninterface Props {\n label: ReactNode;\n labelFont?: string;\n isChecked: boolean;\n // Used for instances where the checkbox is responsible for select/deselect all.\n // When some, but not all are selected, this checkbox will show the partially-checked state\n isPartiallyChecked?: boolean;\n isDisabled?: boolean;\n isReversed?: boolean;\n onChange: (e: ChangeEvent<HTMLInputElement>) => void;\n size?: \"md\" | \"sm\";\n type?: InputType;\n \"data-testid\"?: string;\n}\n\nconst Checkbox = ({\n label,\n labelFont,\n isChecked,\n isPartiallyChecked,\n isDisabled,\n isReversed = false,\n onChange,\n size = \"md\",\n type = \"checkbox\",\n \"data-testid\": dataTestId,\n}: Props) => {\n const [isHovered, setIsHovered] = useState(false);\n const [isFocused, setIsFocused] = useState(false);\n\n const checkboxRef = useRef<HTMLInputElement>(null);\n const isFocusedRef = useRef(false);\n\n const onKeyDown = (e) => {\n if (e.code === \"Enter\" && isFocusedRef.current) {\n checkboxRef.current?.click();\n }\n };\n\n useEffect(() => {\n document.addEventListener(\"keydown\", onKeyDown);\n\n return () => document.removeEventListener(\"keydown\", onKeyDown);\n }, []);\n\n return (\n <Label\n size={size}\n labelFont={labelFont}\n isReversed={isReversed}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n isDisabled={isDisabled}\n >\n <CheckboxContainer\n type={type}\n size={size}\n isChecked={isChecked}\n isPartiallyChecked={isPartiallyChecked}\n isDisabled={isDisabled}\n isHovered={isHovered}\n isFocused={isFocused}\n data-testid={dataTestId}\n >\n <Input\n type={type}\n ref={checkboxRef}\n onFocus={() => {\n isFocusedRef.current = true;\n setIsFocused(true);\n }}\n onBlur={() => {\n isFocusedRef.current = false;\n setIsFocused(false);\n }}\n onChange={onChange}\n checked={isChecked}\n disabled={isDisabled}\n />\n {(() => {\n if (isChecked) return renderCheckIcon(type, size);\n if (isPartiallyChecked || type === \"radio\") return renderPartialCheckIcon(type, size);\n })()}\n </CheckboxContainer>\n {label}\n </Label>\n );\n};\n\nexport default Checkbox;\n\nconst Label = styled.label`\n display: flex;\n align-items: center;\n ${({ isReversed }) => isReversed && \"flex-direction: row-reverse;\"}\n ${({ isDisabled }) => isDisabled && \"opacity: 0.5;\"}\n gap: 8px;\n margin: 0;\n ${({ size }) => (size === \"md\" ? FONTS.REGULAR_1 : FONTS.REGULAR_2)};\n ${({ labelFont }) => labelFont && labelFont}\n color: ${COLORS.BLACK};\n cursor: pointer;\n`;\nconst CheckboxContainer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n ${({ size }) =>\n size === \"md\"\n ? `\n height: 24px;\n width: 24px;\n `\n : `\n height: 18px;\n width: 18px;\n `}\n border: 1px solid ${({\n isDisabled,\n isHovered,\n isFocused,\n isChecked,\n isPartiallyChecked,\n type,\n }) => {\n if (type !== \"checkbox\") return \"transparent\";\n if (isFocused || isChecked || isPartiallyChecked) return COLORS.BLUE_600;\n if (isHovered && !isDisabled) return COLORS.BLACK;\n return COLORS.NEUTRAL_300;\n }};\n border-radius: 4px;\n background-color: ${({ isChecked, isPartiallyChecked, type }) =>\n type === \"checkbox\" && (isChecked || isPartiallyChecked)\n ? COLORS.BLUE_LIGHT_400\n : COLORS.WHITE};\n`;\nconst Input = styled.input`\n position: absolute;\n height: 0;\n width: 0;\n opacity: 0;\n`;\n\n// These two icons don't seem to be used anywhere else\n// (There is a \"Tick\" icon in the design system, but it is different than this one)\nconst renderCheckIcon = (type: InputType, size: \"md\" | \"sm\") =>\n type === \"checkbox\" ? (\n <svg\n width={size === \"md\" ? 18 : 14}\n height={size === \"md\" ? 18 : 14}\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M15.3801 4.08535C15.6091 4.29527 15.6246 4.65109 15.4146 4.8801L7.16465 13.8801C7.06098 13.9932 6.91561 14.059 6.76222 14.0624C6.60883 14.0657 6.46074 14.0062 6.35225 13.8978L2.60225 10.1478C2.38258 9.92808 2.38258 9.57193 2.60225 9.35226C2.82192 9.13259 3.17808 9.13259 3.39775 9.35226L6.73233 12.6868L14.5854 4.11991C14.7953 3.8909 15.1511 3.87543 15.3801 4.08535Z\"\n fill={COLORS.BLUE_600}\n stroke={COLORS.BLUE_600}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n ) : (\n <svg\n width={size === \"md\" ? 22 : 18}\n height={size === \"md\" ? 22 : 18}\n viewBox=\"0 0 19 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"9.5\" cy=\"9\" r=\"9\" fill={COLORS.BLUE_LIGHT_400} stroke={COLORS.BLUE_600} />\n <circle cx=\"9.5\" cy=\"9\" r=\"6\" fill={COLORS.BLUE_600} stroke={COLORS.BLUE_600} />\n </svg>\n );\nconst renderPartialCheckIcon = (type: InputType, size: \"md\" | \"sm\") =>\n type === \"checkbox\" ? (\n <svg\n width={size === \"md\" ? 18 : 14}\n height={size === \"md\" ? 18 : 14}\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <line\n x1=\"4\"\n y1=\"9\"\n x2=\"14\"\n y2=\"9\"\n stroke={COLORS.BLUE_600}\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n ) : (\n <svg\n width={size === \"md\" ? 22 : 18}\n height={size === \"md\" ? 22 : 18}\n viewBox=\"0 0 19 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"9.5\" cy=\"9\" r={9} fill=\"white\" stroke={COLORS.NEUTRAL_300} />\n </svg>\n );\n","import { Icon, OneLineSpan } from \"@components/library\";\nimport { COLORS, FONTS } from \"@constants\";\nimport { ChangeEvent, ReactElement, useEffect, useRef, useState } from \"react\";\nimport styled from \"styled-components\";\n\ninterface Props {\n label: string | ReactElement;\n checked: boolean;\n disabled?: boolean;\n onChange: (e: ChangeEvent<HTMLInputElement>) => void;\n borderColor?: string;\n dataTestId?: string;\n className?: string; // this prop is required if we want to restyle it using `styled(ChipCheckbox)`\n}\n\nconst ChipCheckbox = ({\n label,\n checked,\n disabled,\n onChange,\n borderColor = COLORS.NEUTRAL_300,\n dataTestId,\n className,\n}: Props) => {\n const [isFocused, setIsFocused] = useState(false);\n const checkboxRef = useRef<HTMLInputElement>(null);\n const isFocusedRef = useRef(false);\n const isLabelString = typeof label === \"string\";\n\n const onKeyDown = (e) => {\n if (e.code === \"Enter\" && isFocusedRef.current) {\n checkboxRef.current?.click();\n }\n };\n\n useEffect(() => {\n document.addEventListener(\"keydown\", onKeyDown);\n\n return () => document.removeEventListener(\"keydown\", onKeyDown);\n }, []);\n\n return (\n <Label\n className={className}\n checked={checked}\n disabled={disabled}\n borderColor={borderColor}\n isFocused={isFocused}\n data-testid={dataTestId}\n >\n {isLabelString ? <OneLineSpan content={label} /> : label}\n <Checkbox\n type=\"checkbox\"\n ref={checkboxRef}\n onChange={onChange}\n checked={checked}\n disabled={disabled}\n onFocus={() => {\n isFocusedRef.current = true;\n setIsFocused(true);\n }}\n onBlur={() => {\n isFocusedRef.current = false;\n setIsFocused(false);\n }}\n />\n {checked && <Icon name=\"X\" size=\"xs\" color={COLORS.HALO_BLUE} margin=\"0 0 0 8px\" />}\n </Label>\n );\n};\n\nexport default ChipCheckbox;\n\nconst Label = styled.label`\n margin-bottom: 0;\n display: flex;\n align-items: center;\n width: fit-content;\n height: 32px;\n ${FONTS.MEDIUM_3};\n color: ${COLORS.BLACK};\n padding: 0 14px;\n border: 1px solid ${({ borderColor }) => borderColor};\n border-radius: 100px;\n background-color: transparent;\n cursor: ${({ disabled }) => (disabled ? \"default\" : \"pointer\")};\n user-select: none;\n &&& {\n ${({ checked, disabled, isFocused }) => {\n if (checked) {\n return `\n background-color: ${COLORS.BLUE_LIGHT_300};\n border-color: ${COLORS.HALO_BLUE};\n color: ${COLORS.HALO_BLUE};\n :hover {\n & > :last-child {\n opacity: 0.4;\n }\n }\n `;\n } else if (disabled) {\n return `\n background-color: ${COLORS.NEUTRAL_200};\n border-color: ${COLORS.NEUTRAL_400};\n opacity: 0.5;\n `;\n } else if (isFocused) {\n return `\n background-color: ${COLORS.NEUTRAL_100};\n border-color: ${COLORS.NEUTRAL_400};\n `;\n }\n }}\n }\n :hover {\n background-color: ${COLORS.NEUTRAL_100};\n border-color: ${COLORS.NEUTRAL_400};\n }\n`;\n\nconst Checkbox = styled.input`\n display: none;\n`;\n","import { Icon, InfoTag } from \"@components/library\";\nimport { COLORS, FONTS } from \"@constants\";\nimport { Dispatch, ReactNode, SetStateAction } from \"react\";\nimport styled from \"styled-components\";\n\ninterface Props {\n children: ReactNode;\n label: string;\n isExpanded: boolean;\n setIsExpanded: Dispatch<SetStateAction<boolean>>;\n areAllSelected: boolean;\n tagText: string; // Content of the tag to the right of the input label\n shouldShowInfoText?: boolean;\n infoText?: string;\n}\n\nconst CollapsibleInputWrapper = ({\n children,\n label,\n isExpanded,\n setIsExpanded,\n areAllSelected,\n tagText,\n shouldShowInfoText,\n infoText,\n}: Props) => {\n return (\n <Container>\n <Top top=\"button\" onClick={() => setIsExpanded(!isExpanded)}>\n {label}\n <InfoTag marginLeft=\"8px\" backgroundColor={COLORS.BLACK}>\n {areAllSelected ? \"All\" : tagText}\n </InfoTag>\n <Icon name={isExpanded ? \"Chevron Up\" : \"Chevron Down\"} margin=\"0 0 0 auto\" />\n </Top>\n {isExpanded && (\n <>\n {children}\n {shouldShowInfoText && infoText && (\n <Info>\n <Icon name=\"Info Small\" size=\"xs\" margin=\"2px 4px 0 0\" />\n {infoText}\n </Info>\n )}\n </>\n )}\n </Container>\n );\n};\n\nexport default CollapsibleInputWrapper;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 18px;\n padding: 16px;\n background-color: ${COLORS.NEUTRAL_50};\n border-radius: 8px;\n color: ${COLORS.BLACK};\n`;\nconst Top = styled.div`\n display: flex;\n align-items: center;\n border: none;\n background-color: transparent;\n ${FONTS.SEMIBOLD_1};\n cursor: pointer;\n :focus {\n outline: none;\n }\n`;\nconst Info = styled.div`\n display: flex;\n ${FONTS.REGULAR_3};\n`;\n","import {\n Button,\n Checkbox,\n Icon,\n InputTooltip,\n TextButton,\n TextInput,\n Tooltip,\n} from \"@components/library\";\nimport { Label } from \"@components/library/Inputs/TextInput\";\nimport { COLORS, FONTS } from \"@constants\";\nimport { startsWithVowel } from \"@utils/textUtils\";\nimport { ChangeEvent, ReactNode, useEffect, useRef } from \"react\";\nimport styled from \"styled-components\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport FormLabel from \"../Texts/FormLabel\";\n\ninterface Props {\n values: string[];\n onChange: (values: string[]) => void;\n label?: string;\n labelFont?: string;\n sublabel?: ReactNode;\n placeholder?: string;\n itemName?: string; // e.g. \"requirement,\" \"out-of-scope item,\" etc.\n isOptional?: boolean;\n asTextArea?: boolean;\n characterLimit?: number;\n errors?: { hasError: boolean; errorMessage: string }[];\n resize?: string;\n startingHeight?: string;\n tooltipContent?: string | ReactNode;\n tooltipWidth?: string;\n tooltipOffsetTop?: string;\n tooltipArrowOffsetTop?: string;\n checkbox?: {\n label: string;\n labelFont: string;\n isValueChecked: (valueIndex: number) => boolean;\n onChange: (changedValueIndex: number, isChecked: boolean) => void;\n tooltipContent?: string | ReactNode;\n tooltipWidth?: string;\n };\n \"data-testid\"?: string;\n}\n\nconst MultiTextInput = ({\n values,\n onChange,\n label,\n labelFont,\n sublabel,\n placeholder,\n itemName,\n isOptional = false,\n asTextArea = true,\n characterLimit,\n errors,\n resize = \"vertical\",\n startingHeight,\n tooltipContent,\n tooltipWidth,\n tooltipOffsetTop,\n tooltipArrowOffsetTop,\n checkbox,\n \"data-testid\": dataTestId,\n}: Props) => {\n const inputKeysRef = useRef<string[]>(values.map(() => uuidv4()));\n const didAddOrRemoveRef = useRef<boolean>(false);\n const hiddenInputRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n if (didAddOrRemoveRef.current) {\n if (values.length === 0) {\n // This is needed because without a focusable element (e.g. input), the tooltip wrapper can't\n // be blurred, and the tooltip will persist. So, we add a non-visible input that can take the\n // focus when the last \"real\" input is removed, then blur it to hide the tooltip\n hiddenInputRef.current?.focus();\n hiddenInputRef.current?.blur();\n } else {\n const lastInputId = inputKeysRef.current[inputKeysRef.current.length - 1];\n const lastInput = document.getElementById(lastInputId);\n lastInput?.focus();\n }\n\n didAddOrRemoveRef.current = false;\n }\n }, [values]);\n\n const handleInputChange = (e: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>, i: number) => {\n const newValues = [...values];\n newValues.splice(i, 1, e.target.value);\n onChange(newValues);\n };\n\n const handleAdd = () => {\n const uniqueId = uuidv4();\n inputKeysRef.current.push(uniqueId);\n\n onChange([...values, \"\"]);\n didAddOrRemoveRef.current = true;\n };\n\n const handleRemove = (e: ChangeEvent<HTMLButtonElement>, i: number) => {\n e.preventDefault();\n const currentKey = inputKeysRef.current[i];\n inputKeysRef.current = inputKeysRef.current.filter((key) => key !== currentKey);\n\n const newValues = [...values];\n newValues.splice(i, 1);\n onChange(newValues);\n didAddOrRemoveRef.current = true;\n };\n\n const hasAnyError = Boolean(\n errors?.map((error) => error.hasError).includes(true) ||\n (characterLimit && values.some((entry) => entry.length > characterLimit))\n );\n\n const addButtonText =\n values.length === 0\n ? `Add${itemName && startsWithVowel(itemName) ? ` an ${itemName}` : ` a ${itemName}`}`\n : `Add another${itemName && ` ${itemName}`}`;\n\n const inputs = (\n <Inputs>\n <HiddenInput ref={hiddenInputRef} tabIndex=\"-1\" />\n {values.map((value, i) => {\n const inputComponent = (\n <TextInput\n id={inputKeysRef.current[i]}\n value={value}\n onChange={(e) => handleInputChange(e, i)}\n textarea={asTextArea}\n placeholder={placeholder}\n characterLimit={characterLimit}\n errors={errors}\n resize={resize}\n startingHeight={startingHeight}\n data-testid=\"input\"\n />\n );\n return (\n <div key={inputKeysRef.current[i]}>\n <InputContainer>\n {tooltipContent ? (\n <InputTooltip\n content={tooltipContent}\n width={tooltipWidth}\n tooltipOffsetTop={tooltipOffsetTop}\n arrowOffsetTop={tooltipArrowOffsetTop}\n >\n {inputComponent}\n </InputTooltip>\n ) : (\n inputComponent\n )}\n <RemoveButtonContainer>\n <TextButton\n text=\"Remove\"\n iconName=\"Delete\"\n iconPosition=\"left\"\n color={COLORS.RED}\n onClick={(e) => handleRemove(e, i)}\n data-testid=\"remove-button\"\n />\n </RemoveButtonContainer>\n </InputContainer>\n {checkbox && (\n <CheckboxContainer>\n <Checkbox\n size=\"sm\"\n label={checkbox.label}\n labelFont={checkbox.labelFont}\n isChecked={checkbox.isValueChecked(i)}\n onChange={(e) => checkbox.onChange(i, e.target.checked)}\n />\n {Boolean(checkbox.tooltipContent) && (\n <Tooltip\n content={checkbox.tooltipContent}\n position=\"right\"\n tooltipWidth={checkbox.tooltipWidth}\n arrowOffsetTop=\"calc(50% - 8px)\"\n >\n <Icon name=\"Info\" size=\"xs\" margin=\"0 0 0 6px\" color={COLORS.NEUTRAL_400} />\n </Tooltip>\n )}\n </CheckboxContainer>\n )}\n </div>\n );\n })}\n </Inputs>\n );\n\n return (\n <Container data-testid={dataTestId}>\n {label ? (\n <Label>\n <FormLabel\n label={label}\n font={labelFont}\n hasError={hasAnyError}\n isOptional={isOptional}\n />\n {sublabel && <SublabelText hasItems={values.length}>{sublabel}</SublabelText>}\n {inputs}\n </Label>\n ) : (\n Boolean(values.length) && inputs\n )}\n <Button\n variant=\"secondary\"\n size=\"sm\"\n iconName=\"Add\"\n iconPosition=\"left\"\n onClick={handleAdd}\n margin=\"0 auto 0 0\"\n data-testid=\"add-button\"\n >\n {addButtonText}\n </Button>\n </Container>\n );\n};\n\nexport default MultiTextInput;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 24px;\n width: 100%;\n`;\nconst Inputs = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n position: relative;\n`;\nconst HiddenInput = styled.input`\n position: absolute;\n width: 0;\n height: 0;\n opacity: 0;\n`;\nconst InputContainer = styled.div`\n position: relative;\n width: 100%;\n`;\nconst CheckboxContainer = styled.div`\n display: flex;\n align-items: center;\n margin-top: 8px;\n`;\nconst RemoveButtonContainer = styled.div`\n position: absolute;\n bottom: -4px;\n right: 0;\n`;\nconst SublabelText = styled.div`\n ${FONTS.REGULAR_2}\n margin-bottom: ${({ hasItems }) => (hasItems ? \"24px\" : \"0\")};\n`;\n","import { Icon, TextButton } from \"@components/library\";\nimport { COLORS, FONTS } from \"@constants\";\nimport { LegacyRef, ReactNode, useEffect, useRef, useState } from \"react\";\nimport styled from \"styled-components\";\n\ninterface Props {\n children: ReactNode;\n label: ReactNode;\n isExpanded: boolean;\n setIsExpanded: (isExpanded: boolean) => void;\n onOpen?: () => void;\n onRemove: () => void;\n errors?: { hasError: boolean; errorMessage: string }[];\n \"data-testid\"?: string;\n}\n\nconst RemovableInputWrapper = ({\n children,\n label,\n isExpanded,\n setIsExpanded,\n onOpen,\n onRemove,\n errors,\n \"data-testid\": dataTestId,\n}: Props) => {\n const [isInitiallyOpen] = useState(isExpanded);\n\n const inputRef = useRef<HTMLDivElement | HTMLInputElement | HTMLTextAreaElement | null>(null);\n const isExpandedRef = useRef(isInitiallyOpen);\n\n useEffect(() => {\n if (!isExpandedRef.current && isExpanded) {\n const textInput = inputRef.current?.querySelector('input[type=\"text\"], textarea');\n\n if (textInput) {\n inputRef.current = textInput as HTMLInputElement | HTMLTextAreaElement;\n inputRef.current.focus();\n }\n }\n\n isExpandedRef.current = isExpanded;\n }, [isExpanded]);\n\n const hasAnyError = errors?.map((error) => error.hasError).includes(true);\n const errorIcon = <Icon name=\"Attention\" size=\"sm\" margin=\"0 8px 0 0\" color={COLORS.RED_600} />;\n\n return (\n <Container data-testid={dataTestId}>\n <Top hasAnyError={hasAnyError}>\n {label}\n {isExpanded ? (\n <TextButton\n text=\"Remove\"\n color={COLORS.RED}\n iconName=\"Delete\"\n iconPosition=\"left\"\n onClick={() => {\n onRemove();\n setIsExpanded(false);\n }}\n data-testid=\"remove-button\"\n />\n ) : (\n <TextButton\n text=\"Add\"\n iconName=\"Add\"\n onClick={() => {\n onOpen?.();\n setIsExpanded(true);\n }}\n iconPosition=\"left\"\n data-testid=\"add-button\"\n />\n )}\n </Top>\n {isExpanded && (\n <>\n <div ref={inputRef as LegacyRef<HTMLDivElement>}>{children}</div>\n {hasAnyError && (\n <ErrorsContainer>\n {errors?.map(\n (error) =>\n error.hasError && (\n <ErrorRow key={error.errorMessage}>\n {errorIcon}\n {error.errorMessage}\n </ErrorRow>\n )\n )}\n </ErrorsContainer>\n )}\n </>\n )}\n </Container>\n );\n};\n\nexport default RemovableInputWrapper;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 18px;\n width: 100%;\n padding: 16px;\n background: ${COLORS.NEUTRAL_50};\n border-radius: 8px;\n`;\nconst Top = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n ${FONTS.SEMIBOLD_1}\n color: ${({ hasAnyError }) => (hasAnyError ? COLORS.RED_600 : COLORS.BLACK)};\n`;\nconst ErrorsContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 8px;\n`;\nconst ErrorRow = styled.div`\n display: flex;\n ${FONTS.MEDIUM_3};\n color: ${COLORS.RED_600};\n`;\n","import { Icon } from \"@components/library\";\nimport type { DropdownOption } from \"@components/library/Dropdowns/DropdownOption\";\nimport { COLORS, FONTS } from \"@constants\";\nimport { searchSuggest } from \"@requests/companyNetworkScientists\";\nimport { getValueFromOption } from \"@utils/dropdownUtils\";\nimport debounce from \"debounce-promise\";\nimport { useCallback, useState } from \"react\";\nimport { components } from \"react-select\";\nimport AsyncCreatableSelect from \"react-select/async-creatable\";\nimport CreatableSelect from \"react-select/creatable\";\nimport styled, { css } from \"styled-components\";\nimport { ConnectionType } from \"../../../tsTypes/__generated__/enums/connection_type\";\nimport DROPDOWN_STYLES, { MULTI_SELECT_TAG_STYLES } from \"../Dropdowns/dropdownStyles\";\n\ninterface Props {\n renderLocation: \"proposal_library\" | \"scientist_network\";\n value: DropdownOption[];\n onChange: (...args: any[]) => any;\n placeholder: string;\n createOptionText?: string; // e.g. \"Search proposals for\"\n suggestedOptions?: DropdownOption[];\n connectionType?: ConnectionType;\n}\n\nconst CustomOption = ({ innerRef, innerProps, isSelected, label, isFocused }) => {\n return (\n // Allow JSX innerProps to be pass in as spread.\n // eslint-disable-next-line react/jsx-props-no-spreading\n <SearchSuggestionLabel\n {...innerProps}\n ref={innerRef}\n isSelected={isSelected}\n isFocused={isFocused}\n >\n <SearchSuggestion>{label}</SearchSuggestion>\n </SearchSuggestionLabel>\n );\n};\n\nconst CreateOptionLabel = (input: string, createOptionText?: string) => {\n return (\n <CreateLabel>\n <Icon name=\"Search\" color={COLORS.HALO_BLUE} margin=\"0 10px 0 0\" />\n {`${createOptionText ?? \"Search for\"} \"${input}\"`}\n </CreateLabel>\n );\n};\n\nconst NoOptionsMessage = ({\n children,\n getValue,\n selectOption,\n}: {\n children: DropdownOption[];\n getValue: () => DropdownOption[];\n selectOption: (newValue: DropdownOption) => void;\n}) => {\n const values = getValue().map(getValueFromOption) as string[];\n const filteredChildren = children?.filter(({ value }: DropdownOption) => !values.includes(value));\n\n if (!filteredChildren?.length)\n return (\n <NoOptionsLabel>\n <Icon name=\"Search\" color={COLORS.HALO_BLUE} margin=\"0 10px 0 0\" />\n Search by title, content, keywords, researcher, or organization\n </NoOptionsLabel>\n );\n\n return (\n <div>\n <SuggestedOptionsHeader>Try searching for</SuggestedOptionsHeader>\n {children\n .filter(({ value }: DropdownOption) => !values.includes(value))\n .map(({ value, label }: DropdownOption) => (\n <SuggestedOptionLabel key={value} onClick={() => selectOption({ label, value })}>\n <Icon name=\"Search\" color={COLORS.HALO_BLUE} margin=\"0 10px 0 0\" />\n <SuggestedOptionText>{value}</SuggestedOptionText>\n </SuggestedOptionLabel>\n ))}\n </div>\n );\n};\n\nexport const ClearIndicator = (props) => {\n const {\n getStyles,\n innerProps: { ref, ...restInnerProps },\n } = props;\n\n return (\n <div\n // From React-Select docs\n // eslint-disable-next-line\n {...restInnerProps}\n ref={ref}\n style={getStyles(\"clearIndicator\", props)}\n >\n <Icon name=\"X\" size=\"xs\" margin=\"0 8px 0 0\" />\n </div>\n );\n};\n\nconst MultiValueRemove = ({ ...props }) => {\n return (\n // From the React-Select docs\n /* eslint-disable-next-line */ //@ts-ignore\n <components.MultiValueRemove {...props}>\n <Icon name=\"Close\" size=\"xs\" margin=\"0 0 0 8px\" />\n </components.MultiValueRemove>\n );\n};\n\nconst SearchBarDropdown = ({\n value,\n placeholder,\n onChange,\n createOptionText,\n suggestedOptions,\n connectionType,\n renderLocation,\n}: Props) => {\n const [inputValue, setInputValue] = useState(\"\");\n\n const searchOptions = async (query: string) => {\n return searchSuggest(query, connectionType);\n };\n\n const debouncedSearchOptions = useCallback(debounce(searchOptions, 500), [connectionType]);\n\n const Component =\n renderLocation === \"scientist_network\" ? (\n <AsyncDropdown\n allowCreateWhileLoading={true}\n classNamePrefix=\"Select\"\n components={{ ClearIndicator, MultiValueRemove, NoOptionsMessage, Option: CustomOption }}\n defaultOptions\n formatCreateLabel={(input) => {\n return CreateOptionLabel(input, createOptionText);\n }}\n inputValue={inputValue}\n isMulti\n loadOptions={debouncedSearchOptions}\n noOptionsMessage={() => suggestedOptions}\n onChange={onChange}\n onInputChange={(e) => setInputValue(e)}\n openMenuOnFocus={true}\n placeholder={placeholder}\n value={value}\n />\n ) : (\n <Dropdown\n classNamePrefix=\"Select\"\n components={{ ClearIndicator, MultiValueRemove, NoOptionsMessage }}\n formatCreateLabel={(input) => CreateOptionLabel(input, createOptionText)}\n inputValue={inputValue}\n isMulti\n noOptionsMessage={() => suggestedOptions}\n onChange={onChange}\n onInputChange={(e) => setInputValue(e)}\n openMenuOnFocus={true}\n placeholder={placeholder}\n value={value}\n />\n );\n\n return (\n <Container data-testid=\"search-bar\">\n <IconContainer>\n <Icon name=\"Search\" color={COLORS.NEUTRAL_400} margin=\"0 0 0 16px\" />\n </IconContainer>\n {Component}\n </Container>\n );\n};\n\nexport default SearchBarDropdown;\n\nconst CreateLabel = styled.div`\n display: flex;\n align-items: center;\n`;\nconst NoOptionsLabel = styled.div`\n display: flex;\n align-items: center;\n color: ${COLORS.NEUTRAL_500};\n`;\nconst SuggestedOptionsHeader = styled.div`\n display: flex;\n align-items: center;\n height: 30px;\n`;\nconst SuggestedOptionLabel = styled.div`\n display: flex;\n align-items: center;\n ${({ isSelected }) => (isSelected ? FONTS.MEDIUM_2 : FONTS.REGULAR_2)};\n color: ${({ isSelected }) => (isSelected ? COLORS.HALO_BLUE : COLORS.BLACK)};\n margin: 0;\n padding: 10px 14px;\n border-radius: 4px;\n cursor: pointer;\n &:hover {\n background-color: ${COLORS.NEUTRAL_100};\n }\n`;\nconst SuggestedOptionText = styled.span`\n overflow-wrap: break-word;\n white-space: normal;\n`;\nexport const Container = styled.div`\n display: flex;\n align-items: center;\n width: 100%;\n`;\nexport const IconContainer = styled.div`\n position: absolute;\n z-index: 1;\n`;\nexport const Option = styled.div`\n position: absolute;\n z-index: 1;\n`;\nconst SearchSuggestionLabel = styled.label`\n display: flex;\n align-items: center;\n background-color: ${({ isFocused }) => (isFocused ? COLORS.NEUTRAL_100 : \"inherit\")};\n color: ${COLORS.HALO_BLUE};\n ${FONTS.MEDIUM_2};\n padding: 10px 0;\n border-radius: 4px;\n`;\nconst SearchSuggestion = styled.div`\n padding: 0 14px;\n`;\nconst DropdownStyles = css`\n ${DROPDOWN_STYLES};\n ${MULTI_SELECT_TAG_STYLES};\n width: 100%;\n\n .Select__control {\n min-height: 54px;\n }\n .Select__value-container {\n padding-left: 42px;\n cursor: text;\n }\n .Select__dropdown-indicator {\n display: none;\n }\n .Select__indicators {\n height: 52px;\n &:hover {\n opacity: 0.5;\n }\n }\n .Select__menu {\n padding: 8px 12px;\n }\n .Select__option {\n color: ${COLORS.HALO_BLUE};\n ${FONTS.MEDIUM_2};\n padding-right: 16px;\n }\n`;\nconst AsyncDropdown = styled(AsyncCreatableSelect)`\n ${DropdownStyles}\n`;\nexport const Dropdown = styled(CreatableSelect)`\n ${DropdownStyles}\n`;\n","import { COLORS, FONTS } from \"@constants\";\nimport { ReactNode } from \"react\";\nimport ReactSwitch from \"react-switch\";\nimport styled from \"styled-components\";\n\ninterface Props {\n checked: boolean;\n onChange: (checked: boolean) => any;\n size?: \"sm\" | \"lg\";\n labelLeft?: string;\n labelRight?: string | ReactNode;\n disabled?: boolean;\n margin?: string | 0;\n disabledColor?: string;\n}\n\nconst Switch = ({\n checked,\n onChange,\n size = \"sm\",\n labelLeft,\n labelRight,\n disabled,\n disabledColor = COLORS.BLACK,\n margin,\n}: Props) => {\n return (\n <Container margin={margin} hasTwoLabels={labelLeft && labelRight}>\n {labelLeft}\n <SwitchContainer data-testid=\"switch\">\n <ReactSwitch\n checked={checked}\n onChange={onChange}\n disabled={disabled}\n onColor={COLORS.HALO_BLUE}\n offColor={disabledColor}\n uncheckedIcon={false}\n checkedIcon={false}\n activeBoxShadow={\"\"}\n handleDiameter={size === \"sm\" ? 14 : 21}\n height={size === \"sm\" ? 18 : 24}\n width={size === \"sm\" ? 34 : 42}\n />\n </SwitchContainer>\n {labelRight}\n </Container>\n );\n};\n\nexport default Switch;\n\nconst Container = styled.div`\n ${FONTS.MEDIUM_2}\n display: flex;\n align-items: center;\n justify-content: start;\n gap: ${({ hasTwoLabels }) => (hasTwoLabels ? \"6px\" : \"11px\")};\n height: fit-content;\n ${({ margin }) => margin && `margin: ${margin}`};\n`;\nconst SwitchContainer = styled.span`\n display: flex;\n`;\n","import { ChipCheckbox, OneLineSpan, ProfilePicture } from \"@components/library\";\nimport { COLORS } from \"@constants\";\nimport { ChangeEvent } from \"react\";\nimport styled from \"styled-components\";\n\ninterface Props {\n user: {\n image: {\n medium: {\n url: string | null;\n };\n };\n name: string;\n };\n checked: boolean;\n disabled?: boolean;\n onChange: (e: ChangeEvent<HTMLInputElement>) => void;\n borderColor?: string;\n dataTestId?: string;\n}\n\nconst UserChipCheckbox = (props: Props) => {\n const { user, ...restProps } = props;\n\n return (\n <AltChipCheckbox\n {...restProps}\n label={\n <>\n <ProfilePictureContainer>\n <ProfilePicture\n size=\"xs\"\n user={user}\n color={COLORS.BLUE_650}\n bgColor={COLORS.BLUE_LIGHT_500}\n />\n </ProfilePictureContainer>\n <OneLineSpan content={user.name} />\n </>\n }\n />\n );\n};\n\nexport default UserChipCheckbox;\n\nconst AltChipCheckbox = styled(ChipCheckbox)`\n height: 36px;\n &&& {\n ${({ checked }) => {\n if (checked) {\n return `\n border-color: ${COLORS.BLUE_600};\n color: ${COLORS.BLUE_600};\n `;\n }\n }}\n }\n`;\n\nconst ProfilePictureContainer = styled.div`\n margin-left: -10px;\n margin-right: 8px;\n`;\n","import styled from \"styled-components\";\n\nexport default styled.div`\n display: flex;\n justify-content: center;\n`;\n","// Note: Not all pages should be wrapped in this component. This component assumes that there is\n// even padding along the sides of the entire page, but some pages (e.g. inbox, proposal review\n// system, pages with banners, etc.) are meant to have some or all of the contents extend across\n// the entire width of the browser window.\n\nimport { COLORS, WINDOW_DIMENSIONS } from \"@constants\";\nimport { ReactNode } from \"react\";\nimport styled from \"styled-components\";\n\ninterface Props {\n hasTopDivider?: boolean;\n hasPaddingTop?: boolean;\n hasPaddingBottom?: boolean;\n hasOverflowHidden?: boolean;\n maxWidth?: string; // Should not be used; used only for a hacky approach for RFS requested by Kevin\n children: ReactNode;\n}\n\ninterface ContainerProps {\n hasTopDivider: boolean;\n hasPaddingTop: boolean;\n hasPaddingBottom: boolean;\n hasOverflowHidden?: boolean;\n}\n\nconst PageContainer = ({\n hasTopDivider = false,\n hasPaddingTop = true,\n hasPaddingBottom = true,\n hasOverflowHidden = false,\n maxWidth,\n children,\n}: Props) => {\n return (\n <Container\n hasTopDivider={hasTopDivider}\n hasPaddingTop={hasPaddingTop}\n hasPaddingBottom={hasPaddingBottom}\n hasOverflowHidden={hasOverflowHidden}\n >\n <Children maxWidth={maxWidth}>{children}</Children>\n </Container>\n );\n};\n\nexport default PageContainer;\n\nconst {\n TABLET_MEDIA_QUERY,\n DESKTOP_MIN_WIDTH_MEDIA_QUERY,\n DESKTOP_MIN_CONTENT_WIDTH,\n DESKTOP_MIN_CONTENT_WIDTH_MEDIA_QUERY,\n DEFAULT_MAX_WIDTH,\n PAGE_SIDE_PADDING,\n TABLET_SIDE_PADDING,\n} = WINDOW_DIMENSIONS;\nconst Container = styled.div<ContainerProps>`\n ${({ hasPaddingTop }) => hasPaddingTop && \"padding-top: 69px\"};\n ${({ hasPaddingBottom }) => hasPaddingBottom && \"padding-bottom: 69px\"};\n ${({ hasOverflowHidden }) => hasOverflowHidden && \"overflow: hidden\"};\n\n ${({ hasTopDivider }: ContainerProps) =>\n hasTopDivider && `border-top: 1px solid ${COLORS.NEUTRAL_100};`}\n\n padding-right: ${PAGE_SIDE_PADDING}px;\n padding-left: ${PAGE_SIDE_PADDING}px;\n ${DESKTOP_MIN_WIDTH_MEDIA_QUERY} {\n padding-right: unset;\n padding-left: unset;\n }\n ${DESKTOP_MIN_CONTENT_WIDTH_MEDIA_QUERY} {\n padding-right: ${PAGE_SIDE_PADDING}px;\n padding-left: ${PAGE_SIDE_PADDING}px;\n }\n\n ${TABLET_MEDIA_QUERY} {\n padding: ${TABLET_SIDE_PADDING}px;\n }\n`;\nconst Children = styled.div`\n max-width: ${({ maxWidth }) => maxWidth ?? `${DEFAULT_MAX_WIDTH}px`};\n margin: 0 auto;\n\n ${DESKTOP_MIN_WIDTH_MEDIA_QUERY} {\n width: ${DESKTOP_MIN_CONTENT_WIDTH}px;\n }\n ${DESKTOP_MIN_CONTENT_WIDTH_MEDIA_QUERY} {\n width: unset;\n }\n`;\n","import { Icon } from \"@components/library\";\nimport { COLORS, FONTS, STYLES, WINDOW_DIMENSIONS } from \"@constants\";\nimport styled from \"styled-components\";\n\ninterface Props {\n stepNumber: number;\n label: string;\n onClick?: () => void;\n isCurrent: boolean;\n isComplete: boolean;\n isDisabled?: boolean;\n needsUpdate?: boolean;\n formVariant: \"request\" | \"proposal\";\n totalNumSteps?: number;\n}\n\nconst ProgressStep = ({\n stepNumber,\n label,\n onClick,\n isCurrent,\n isComplete,\n isDisabled,\n needsUpdate,\n formVariant,\n totalNumSteps,\n}: Props) => {\n let stepStyle: \"default\" | \"current\" | \"complete\" | \"needsUpdate\" = \"default\";\n if (isCurrent) stepStyle = \"current\";\n else if (needsUpdate) stepStyle = \"needsUpdate\";\n else if (isComplete) stepStyle = \"complete\";\n\n return (\n <Container\n type=\"button\"\n onClick={onClick}\n stepStyle={stepStyle}\n formVariant={formVariant}\n disabled={isDisabled}\n data-testid={`step-${stepNumber}`}\n label={label}\n totalNumSteps={totalNumSteps}\n >\n {(() => {\n if (stepStyle === \"complete\")\n return <Icon name=\"Success\" size=\"lg\" color={COLORS.GREEN} data-testid=\"complete-icon\" />;\n if (stepStyle === \"needsUpdate\") return Attention;\n return <StepNumber stepStyle={stepStyle}>{stepNumber}</StepNumber>;\n })()}\n <span>{label}</span>\n </Container>\n );\n};\n\nexport default ProgressStep;\n\nconst Container = styled.button`\n display: flex;\n justify-content: ${({ formVariant }) => (formVariant === \"proposal\" ? \"center\" : \"flex-start\")};\n align-items: center;\n gap: ${({ formVariant }) => (formVariant === \"proposal\" ? 6 : 12)}px;\n padding: ${({ formVariant }) => (formVariant === \"proposal\" ? \"0 8px 0 0\" : \"0\")};\n background-color: transparent;\n border: none;\n color: ${({ stepStyle, formVariant }) => {\n if (stepStyle === \"current\") return COLORS.HALO_BLUE;\n if (stepStyle === \"complete\") {\n return formVariant === \"proposal\" ? COLORS.GREEN : COLORS.BLACK;\n }\n if (stepStyle === \"needsUpdate\") return COLORS.ORANGE_900;\n return COLORS.NEUTRAL_500;\n }};\n ${({ formVariant, label, totalNumSteps }) =>\n `\n ${formVariant === \"request\" || totalNumSteps >= 7 ? FONTS.MEDIUM_2 : FONTS.MEDIUM_1}\n ${(() => {\n if (formVariant === \"request\") return;\n if (totalNumSteps === 6 && label.length >= 18)\n return `\n @media screen and (max-width: 1500px) {\n ${FONTS.MEDIUM_2}\n }\n `;\n if (totalNumSteps >= 7 && label.length >= 15)\n return `\n @media screen and (max-width: 1550px) {\n ${FONTS.MEDIUM_3}\n }\n `;\n })()}\n }\n `}\n ${({ onClick }) => !onClick && \"cursor: default;\"}\n &:focus:not(:active) {\n outline: none;\n & > span {\n ${({ stepStyle, formVariant }) =>\n formVariant === \"request\" &&\n `\n padding-top: 1px;\n border-bottom: 1px solid ${(() => {\n if (stepStyle === \"current\") return COLORS.HALO_BLUE;\n if (stepStyle === \"complete\") return COLORS.BLACK;\n if (stepStyle === \"needsUpdate\") return COLORS.ORANGE_900;\n return COLORS.NEUTRAL_500;\n })()};\n `}\n }\n }\n ${({ formVariant }) =>\n formVariant === \"proposal\" &&\n `\n ${WINDOW_DIMENSIONS.DESKTOP_MEDIA_QUERY} {\n flex-direction: column;\n gap: 0;\n padding: 0;\n span {\n width: 100%;\n ${FONTS.MEDIUM_2};\n ${STYLES.ONE_LINE_ALT};\n }\n }\n `}\n`;\nconst StepNumber = styled.div`\n display: flex;\n flex-shrink: 0;\n justify-content: center;\n align-items: center;\n height: 24px;\n width: 24px;\n margin: 4px;\n border-radius: 50%;\n background-color: ${COLORS.NEUTRAL_200};\n ${({ stepStyle }) =>\n stepStyle === \"current\" &&\n `\n border: 1.5px solid ${COLORS.HALO_BLUE};\n background-color: transparent;\n `}\n ${FONTS.SEMIBOLD_2};\n`;\n\n// This doesn't quite match any icons from the design system and doesn't appear to be used anywhere else\nconst Attention = (\n <svg\n width=\"32\"\n height=\"32\"\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n data-testid=\"error-icon\"\n >\n <circle cx=\"16\" cy=\"16\" r=\"12\" fill={COLORS.ORANGE_300} />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M17.125 16.75L17.125 10H14.875L14.875 16.75H17.125ZM16 19C15.1716 19 14.5 19.6716 14.5 20.5C14.5 21.3284 15.1716 22 16 22C16.8284 22 17.5 21.3284 17.5 20.5C17.5 19.6716 16.8284 19 16 19Z\"\n fill={COLORS.ORANGE_900}\n />\n </svg>\n);\n","import { ReactNode } from \"react\";\nimport styled from \"styled-components\";\n\nimport { COLORS, FONTS } from \"@constants\";\nimport Button from \"../Buttons/Button\";\nimport Icon from \"../Icon\";\nimport BlankModal, { BlankModalProps } from \"../ModalBases/BlankModal\";\n\ninterface Props {\n message?: ReactNode;\n}\n\nconst ErrorModal = ({\n message,\n isOpen,\n onClose,\n}: Props & Pick<BlankModalProps, \"isOpen\" | \"onClose\">) => {\n if (!isOpen || !message) return null;\n\n return (\n <BlankModal\n isOpen={isOpen}\n onClose={onClose}\n width=\"462px\"\n closeOnDimmerClick={false}\n disableBackgroundScroll\n hideCloseButton\n >\n <Content>\n <Body>\n <Icon name=\"Attention Filled\" size=\"xl\" color={COLORS.RED} />\n <div>\n <Message>{message}</Message>\n </div>\n </Body>\n <ButtonContainer>\n <Button width=\"132px\" onClick={onClose}>\n Got it\n </Button>\n </ButtonContainer>\n </Content>\n </BlankModal>\n );\n};\n\nexport default ErrorModal;\n\nconst Content = styled.div`\n padding: 40px 40px 24px;\n`;\n\nconst Body = styled.div`\n display: grid;\n grid-template-columns: 44px 1fr;\n grid-gap: 12px;\n`;\n\nconst Message = styled.div`\n ${FONTS.HEADING_5_SEMIBOLD}\n line-height: 28px;\n color: ${COLORS.RED_600};\n`;\n\nconst ButtonContainer = styled.div`\n margin-top: 56px;\n width: 100%;\n display: flex;\n justify-content: flex-end;\n`;\n","import styled from \"styled-components\";\n\nimport { FONTS } from \"@constants\";\nimport Button from \"../Buttons/Button\";\nimport { IconName } from \"../Icon/Icon\";\nimport BlankModal, { BlankModalProps } from \"../ModalBases/BlankModal\";\n\ninterface Props {\n confirmButtonText?: string;\n onConfirm: () => void;\n confirmIconName: IconName;\n type?: \"positive\" | \"negative\";\n \"data-testid\"?: string;\n}\n\nconst SimpleConfirmationModal = ({\n children,\n isOpen,\n onConfirm,\n confirmIconName,\n onClose,\n headerText,\n subHeaderText,\n confirmButtonText,\n type = \"negative\",\n \"data-testid\": dataTestId,\n zIndexBase = 1000,\n}: Props &\n Pick<\n BlankModalProps,\n \"isOpen\" | \"onClose\" | \"headerText\" | \"subHeaderText\" | \"children\" | \"zIndexBase\"\n >) => {\n if (!isOpen) return null;\n\n return (\n <BlankModal\n isOpen={isOpen}\n onClose={onClose}\n width=\"542px\"\n closeOnDimmerClick={false}\n disableBackgroundScroll\n zIndexBase={zIndexBase}\n >\n <Content data-testid={dataTestId}>\n <HeaderText>{headerText}</HeaderText>\n <SubHeader>{subHeaderText}</SubHeader>\n {children}\n <ButtonContainer>\n <Button onClick={onClose} data-testid=\"cancel-button\">\n Cancel\n </Button>\n <Button\n iconName={confirmIconName}\n variant={`${type === \"negative\" ? \"destructive-\" : \"\"}ghost`}\n onClick={onConfirm}\n data-testid=\"confirm-button\"\n >\n {confirmButtonText ?? \"Confirm\"}\n </Button>\n </ButtonContainer>\n </Content>\n </BlankModal>\n );\n};\n\nexport default SimpleConfirmationModal;\n\nconst Content = styled.div`\n padding: 72px 80px 48px;\n`;\n\nconst HeaderText = styled.div`\n ${FONTS.HEADING_3_SEMIBOLD}\n margin: 0 0 16px;\n`;\n\nconst SubHeader = styled.div`\n ${FONTS.REGULAR_1}\n`;\n\nconst ButtonContainer = styled.div`\n margin-top: 56px;\n width: 100%;\n\n display: flex;\n gap: 16px;\n`;\n","import { STYLES } from \"@constants\";\nimport styled from \"styled-components\";\n\ntype Props = {\n content: string;\n};\n\nconst OneLineSpan = ({ content }: Props) => {\n return <Span title={content}>{content}</Span>;\n};\n\nexport default OneLineSpan;\n\nconst Span = styled.span`\n ${STYLES.ONE_LINE_ALT}\n`;\n","import { Icon } from \"@components/library\";\nimport { COLORS, FONTS } from \"@constants\";\nimport styled from \"styled-components\";\nimport { v4 as uuidv4 } from \"uuid\";\n\ninterface Props {\n currentPage: number;\n setCurrentPage: (page: number) => void;\n totalPages: number;\n marginTop?: string | 0;\n}\n\nconst getPageButtonNumbers = (currentPage: number, totalPages: number): (number | string)[] => {\n const pageNumbers: (number | string)[] = Array.from({ length: totalPages }, (_, i) => i + 1);\n\n pageNumbers.filter((pageNumber) => Number(pageNumber) > 0 && Number(pageNumber) <= totalPages);\n\n if (currentPage + 4 < totalPages) {\n pageNumbers.splice(currentPage + 2, totalPages - (currentPage + 3), \"...\");\n }\n\n // This must come after the previous block\n if (currentPage > 5) {\n pageNumbers.splice(1, currentPage - 4, \"...\");\n }\n\n return pageNumbers;\n};\n\nconst Pagination = ({ currentPage, setCurrentPage, totalPages, marginTop = 0 }: Props) => {\n const pageNumbers = getPageButtonNumbers(currentPage, totalPages);\n\n return (\n <Container marginTop={marginTop} data-testid=\"pagination\">\n {currentPage > 5 && (\n <Button onClick={() => setCurrentPage(1)}>\n <Icon name=\"Chevron Left\" color={COLORS.HALO_BLUE} />\n </Button>\n )}\n {pageNumbers.map((pageNumber) => (\n <Button\n key={pageNumber === \"...\" ? uuidv4() : pageNumber}\n isCurrent={currentPage === pageNumber}\n onClick={() => typeof pageNumber === \"number\" && setCurrentPage(pageNumber)}\n >\n {pageNumber}\n </Button>\n ))}\n {totalPages > currentPage + 4 && (\n <Button onClick={() => setCurrentPage(totalPages)}>\n <Icon name=\"Chevron Right\" color={COLORS.HALO_BLUE} />\n </Button>\n )}\n </Container>\n );\n};\n\nexport default Pagination;\n\nconst Container = styled.div`\n display: flex;\n justify-content: center;\n margin: 0 auto;\n margin-top: ${({ marginTop }) => marginTop};\n`;\nconst Button = styled.button`\n display: flex;\n justify-content: center;\n align-items: center;\n height: 40px;\n width: 40px;\n border-radius: 6px;\n border: none;\n background-color: ${({ isCurrent }) => (isCurrent ? COLORS.BLUE_LIGHT_300 : \"transparent\")};\n color: ${COLORS.HALO_BLUE};\n pointer-events: ${({ isCurrent, children }) =>\n isCurrent || children === \"...\" ? \"none\" : \"auto\"};\n ${({ isCurrent }) => (isCurrent ? FONTS.BOLD_2 : FONTS.MEDIUM_2)};\n &:active {\n background-color: ${COLORS.BLUE_LIGHT_400};\n }\n`;\n","import { Icon } from \"@components/library\";\nimport { COLORS } from \"@constants\";\nimport styled from \"styled-components\";\n\ninterface Props {\n status:\n | \"active\"\n | \"inactive\"\n | \"coming soon\"\n | \"trial\"\n | \"complete\"\n | \"open call\"\n | \"open call paused\"\n | \"open call complete\";\n}\n\nconst RequestStatusIcon = ({ status }: Props) => {\n switch (status) {\n case \"coming soon\": {\n return (\n <Container color={COLORS.ORANGE_200}>\n <Icon name=\"RFP\" size=\"sm\" color={COLORS.ORANGE} />\n </Container>\n );\n }\n case \"trial\": {\n return (\n <Container color={COLORS.GREEN_200}>\n <Icon name=\"Quota-Based RFP\" size=\"sm\" color={COLORS.GREEN_800} />\n </Container>\n );\n }\n case \"active\": {\n return (\n <Container color={COLORS.GREEN_200}>\n <Icon name=\"RFP\" size=\"sm\" color={COLORS.GREEN_800} />\n </Container>\n );\n }\n case \"inactive\": {\n return (\n <Container color={COLORS.NEUTRAL_250}>\n <Icon name=\"RFP\" size=\"sm\" />\n </Container>\n );\n }\n case \"complete\": {\n return (\n <Container color={COLORS.NEUTRAL_250}>\n <Icon name=\"RFP Complete\" size=\"sm\" />\n </Container>\n );\n }\n case \"open call\": {\n return (\n <Container color={COLORS.GREEN_200}>\n <Icon name=\"Open Call\" size=\"sm\" color={COLORS.GREEN_800} />\n </Container>\n );\n }\n case \"open call paused\": {\n return (\n <Container color={COLORS.NEUTRAL_250}>\n <Icon name=\"Open Call Paused\" size=\"sm\" />\n </Container>\n );\n }\n case \"open call complete\": {\n return (\n <Container color={COLORS.NEUTRAL_250}>\n <Icon name=\"Open Call Complete\" size=\"sm\" />\n </Container>\n );\n }\n default: {\n return null;\n }\n }\n};\n\nexport default RequestStatusIcon;\n\nconst Container = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n height: 26px;\n min-width: 26px;\n width: 26px;\n border-radius: 50%;\n background-color: ${({ color }) => color};\n`;\n","import { Tag, TagTooltip } from \"@components/library\";\nimport { COLORS } from \"@constants\";\nimport { RootState } from \"@redux/store\";\nimport { ReactElement, cloneElement, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport styled from \"styled-components\";\nimport { v4 as uuidv4 } from \"uuid\";\n\ninterface Props {\n children: ReactElement[];\n maxLines?: number;\n maxTags?: number;\n size?: \"xs\" | \"sm\";\n}\n\n// TODO: (TGAP4, justinpchang) Consider consolidating this component and TagWrapper\n\nconst XMoreWrapper = ({ children, maxLines = 1, maxTags, size = \"sm\" }: Props) => {\n const width = useSelector((state: RootState) => state.window.width);\n\n const [invisibleTags, setInvisibleTags] = useState<ReactElement[]>([]);\n const [displayedTags, setDisplayedTags] = useState<ReactElement[]>([]);\n const [debouncedWidth, setDebouncedWidth] = useState(width);\n\n const uniqueId = uuidv4();\n\n // First we need to paint the tags to the DOM with added ids in order to be able to getElementById and\n // calculate the offsetWidths. All of the tags will always exist invisibly so that they can be used for\n // calculations, then another set of just the visible tags will be displayed on top\n useEffect(() => {\n const tagsWithIds: ReactElement[] = [];\n\n for (let i = 0; i < children.length; i += 1) {\n const tagWithId = cloneElement(children[i], {\n id: `${uniqueId}-${children[i].key}`,\n });\n\n tagsWithIds.push(tagWithId);\n }\n\n setInvisibleTags(tagsWithIds);\n }, [children]);\n\n // We debounce the calculation of the tags when the user resizes in order to avoid large CPU spikes\n let timer: ReturnType<typeof setTimeout>;\n useEffect(() => {\n clearInterval(timer);\n timer = setTimeout(() => setDebouncedWidth(width), 50);\n }, [width]);\n\n useEffect(() => {\n const firstTag = document.getElementById(invisibleTags[0]?.props.id);\n const firstTagTopOffset = window.pageYOffset + Number(firstTag?.getBoundingClientRect().top);\n\n const tagsToDisplay: ReactElement[] = [];\n const finalRowTags: ReactElement[] = [];\n\n // First we select the tags that would fit in the given number of rows if there weren't an \"X More\" tag\n for (let i = 0; i < invisibleTags.length; i += 1) {\n const currentTag = document.getElementById(invisibleTags[i]?.props.id);\n const currentTagTopOffset =\n window.pageYOffset + Number(currentTag?.getBoundingClientRect().top);\n\n if (currentTagTopOffset && firstTagTopOffset) {\n // Small tags have a height of 24 and margin-top of 6px\n const currentRow = Math.round((currentTagTopOffset - firstTagTopOffset) / 30 + 1);\n\n if (currentRow <= maxLines && (!maxTags || tagsToDisplay.length < maxTags)) {\n tagsToDisplay.push(invisibleTags[i]);\n\n if (currentRow === maxLines) {\n finalRowTags.push(invisibleTags[i]);\n }\n } else {\n break;\n }\n }\n }\n\n const xMoreTagElement = document.getElementById(`${uniqueId}-x-more`);\n\n if (xMoreTagElement && tagsToDisplay.length === children.length) {\n xMoreTagElement.style.display = \"none\";\n } else if (xMoreTagElement) {\n xMoreTagElement.style.display = \"inline-flex\";\n\n const finalRowTagWidths: number[] = [];\n\n for (const tag of finalRowTags) {\n const tagElement = document.getElementById(tag.props.id);\n\n if (tagElement?.offsetWidth) {\n finalRowTagWidths.push(tagElement.offsetWidth);\n }\n }\n\n const container = document.getElementById(`${uniqueId}-container`);\n const containerWidth = Number(container?.offsetWidth);\n\n let remainingTagsCount = children.length - tagsToDisplay.length;\n\n for (let i = finalRowTagWidths.length - 1; i >= 0; i -= 1) {\n // Tags have a margin-right of 8px\n const finalRowTotalTagWidth = finalRowTagWidths.reduce((a, b) => a + b + 8) + 8;\n\n if (xMoreTagElement) {\n xMoreTagElement.textContent = `${remainingTagsCount} more`;\n }\n\n const xMoreTagWidth = xMoreTagElement.offsetWidth;\n\n // There seems to be a CSS rounding issue which is solved by subtracting an extra px for each\n // tag in the final row (i + 1)\n if (finalRowTotalTagWidth + xMoreTagWidth > containerWidth - (i + 1)) {\n remainingTagsCount += 1;\n finalRowTagWidths.pop();\n tagsToDisplay.pop();\n } else {\n break;\n }\n }\n }\n\n setDisplayedTags(tagsToDisplay);\n }, [invisibleTags, debouncedWidth]);\n\n const hiddenTags = children.slice(displayedTags.length);\n\n return (\n <Container id={`${uniqueId}-container`} maxLines={maxLines}>\n <InvisibleTags>{invisibleTags}</InvisibleTags>\n {displayedTags}\n {children.length > 0 && (\n <TagTooltip tags={hiddenTags}>\n {/* This needs to be in its own div to prevent the not(:last-of-type) styles */}\n <XMore>\n <Tag\n id={`${uniqueId}-x-more`}\n key=\"x-more\"\n size={size}\n theme={children[0].props.theme}\n color={COLORS.NEUTRAL_400}\n content=\"\"\n margin=\"0\"\n />\n </XMore>\n </TagTooltip>\n )}\n </Container>\n );\n};\n\nexport default XMoreWrapper;\n\nconst Container = styled.div`\n display: flex;\n flex-wrap: ${({ maxLines }) => (maxLines > 1 ? \"wrap\" : \"nowrap\")};\n position: relative;\n margin-top: -6px;\n & > div {\n margin-top: 6px;\n }\n`;\nconst InvisibleTags = styled.div`\n visibility: hidden;\n position: absolute;\n top: -6px;\n & > div {\n margin-top: 6px;\n }\n`;\nconst XMore = styled.div`\n display: flex;\n &:hover {\n cursor: default;\n }\n`;\n","// Some things to note:\n// 1. Order users[] before passing them as props\n// 2. displayedUserCount is a count for how many users to be shown in thumbnail\n// 3. set displayedUserCount to 1 if you are working with a size 'md' thumbnail (based on designs)\n\nimport { COLORS } from \"@constants\";\nimport styled, { css } from \"styled-components\";\nimport ProfilePicture from \"../ProfilePicture/ProfilePicture\";\n\ninterface Props {\n users: {\n id: number;\n image: { medium: { url: string | null } };\n name: string;\n }[];\n size: \"xs\" | \"sm\" | \"md\" | \"lg\";\n displayedUserCount?: 1 | 2 | 3 | 4; // default -> 2\n single?: boolean; // default -> false\n}\n\nconst getMargin = (index: number, size: string) => {\n // note: only size medium should have different margins\n if (index === 0 && size !== \"md\") {\n return index;\n } else if (size === \"md\") {\n return \"14px 0 0 0\";\n }\n return \"0 0 0 -9px\";\n};\n\nconst Thumbnail = ({ users, size, displayedUserCount = 2, single = false }: Props) => {\n if (single) {\n return <ProfilePicture size={size} user={users[0]} />;\n }\n const displayedUsers = users.slice(0, size === \"md\" ? 1 : displayedUserCount);\n const shouldShowAdditionalUsers = (size === \"md\" ? 1 : displayedUserCount) < users.length;\n\n return (\n <MultiReviewersContainter size={size}>\n {displayedUsers.map((user, index) => {\n return (\n <div data-testid=\"reviewer-chip\" key={user.id}>\n <ProfilePicture\n // medium size profile picture is actually a small when there are multiple reviewers (according to the designs)\n size={size === \"md\" ? \"sm\" : size}\n forMulti\n margin={getMargin(index, size)}\n user={user}\n />\n </div>\n );\n })}\n {shouldShowAdditionalUsers && (\n <AdditionalParticipants size={size}>\n +{users.length - (size === \"md\" ? 1 : displayedUserCount)}\n </AdditionalParticipants>\n )}\n </MultiReviewersContainter>\n );\n};\n\nexport default Thumbnail;\n\nconst MultiReviewersContainter = styled.div`\n position: relative;\n display: inline-flex;\n justify-content: center;\n text-align: center;\n flex-direction: row;\n float: left;\n align-items: ${(props) => (props.size === \"md\" ? \"unset\" : \"center\")};\n height: ${(props) => (props.size === \"md\" ? \"50px\" : \"auto\")};\n width: ${(props) => (props.size === \"md\" ? \"50px\" : \"auto\")};\n`;\n\nconst AdditionalParticipants = styled.div`\n font-weight: 500;\n border: 1px solid ${COLORS.WHITE};\n background: ${COLORS.NEUTRAL_200};\n border-radius: 50%;\n color: ${COLORS.BLACK};\n display: flex;\n justify-content: center;\n align-items: center;\n margin-left: -9px;\n ${({ size }) => {\n switch (size) {\n case \"xs\": {\n return css`\n font-size: 12px;\n height: 28px;\n width: 28px;\n `;\n }\n case \"sm\": {\n return css`\n font-size: 16px;\n height: 36px;\n width: 36px;\n `;\n }\n case \"md\": {\n return css`\n font-size: 16px;\n height: 36px;\n width: 36px;\n margin-left: -21px;\n `;\n }\n case \"lg\": {\n return css`\n font-size: 23px;\n font-weight: 600;\n height: 50px;\n width: 50px;\n `;\n }\n }\n }};\n`;\n","import { COLORS, FONTS } from \"@constants\";\nimport { ReactNode, useState } from \"react\";\nimport styled from \"styled-components\";\n\ninterface Props {\n children: ReactNode;\n content: string | ReactNode;\n width?: string;\n arrowOffsetTop?: string | 0;\n tooltipOffsetTop?: string | 0;\n \"data-testid\"?: string;\n}\n\nconst InputTooltip = ({\n children,\n content,\n width,\n arrowOffsetTop,\n tooltipOffsetTop,\n \"data-testid\": dataTestId,\n}: Props) => {\n const [isInputFocused, setIsInputFocused] = useState(false);\n\n return (\n <Container onFocus={() => setIsInputFocused(true)} onBlur={() => setIsInputFocused(false)}>\n {children}\n <TooltipContainer top={tooltipOffsetTop} isInputFocused={isInputFocused}>\n <Tooltip width={width} data-testid={dataTestId}>\n <Arrow top={arrowOffsetTop} />\n {content}\n </Tooltip>\n </TooltipContainer>\n </Container>\n );\n};\n\nexport default InputTooltip;\n\nconst Container = styled.div`\n display: flex;\n position: relative;\n`;\nconst TooltipContainer = styled.div`\n display: ${({ isInputFocused }) => (isInputFocused ? \"initial\" : \"none\")};\n position: absolute;\n right: -16px;\n transform: translateX(100%);\n ${({ top }) => top && `top: ${top}`};\n`;\nconst Tooltip = styled.div`\n position: relative;\n background-color: ${COLORS.BLACK};\n padding: 16px;\n border-radius: 8px;\n color: ${COLORS.WHITE};\n ${FONTS.REGULAR_2};\n ${({ width }) => width && `width: ${width}`};\n`;\nconst Arrow = styled.div`\n position: absolute;\n left: -7px;\n top: ${({ top }) =>\n top ?? \"44px\"}; // 44px aligns with the top row of an input that includes a label\n border-top: 8px solid transparent;\n border-bottom: 8px solid transparent;\n border-right: 8px solid ${COLORS.BLACK};\n width: 0;\n height: 0;\n`;\n","import { Tooltip } from \"@components/library\";\nimport { FONTS } from \"@constants\";\nimport { RootState } from \"@redux/store\";\nimport { ReactNode, useEffect, useRef, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport styled from \"styled-components\";\n\ninterface Props {\n text: ReactNode;\n lines?: number;\n font?: string;\n textWidth?: string;\n withTooltip?: boolean;\n tooltipWidth?: string;\n tooltipPosition?: \"top\" | \"bottom\" | \"left\" | \"right\";\n}\n\nconst TruncatedText = ({\n text,\n lines = 1,\n font = FONTS.REGULAR_2,\n textWidth,\n withTooltip = true,\n tooltipWidth,\n tooltipPosition = \"top\",\n}: Props) => {\n const [isTruncated, setIsTruncated] = useState(false);\n\n const windowWidth = useSelector((state: RootState) => state.window.width);\n\n const textRef = useRef<HTMLElement>(null);\n\n useEffect(() => {\n if (lines > 1) {\n setIsTruncated(Number(textRef.current?.offsetHeight) < Number(textRef.current?.scrollHeight));\n } else {\n setIsTruncated(Number(textRef.current?.offsetWidth) < Number(textRef.current?.scrollWidth));\n }\n }, [windowWidth]);\n\n let textElement = (\n <Text ref={textRef} font={font} lines={lines}>\n {text}\n </Text>\n );\n\n if (isTruncated && withTooltip) {\n textElement = (\n <Tooltip content={text} tooltipWidth={tooltipWidth} position={tooltipPosition}>\n {textElement}\n </Tooltip>\n );\n }\n\n if (!text) return null;\n\n return isTruncated ? <Container width={textWidth}>{textElement}</Container> : textElement;\n};\n\nexport default TruncatedText;\n\nconst Container = styled.div`\n width: ${({ width }) => width};\n`;\nconst Text = styled.div`\n ${({ font }) => font};\n ${({ lines }) =>\n // Two different mechanics are used to truncate the text, since text-overflow always truncates mid-word, which\n // causes the text to take up the entire space allotted and is generally desirable, whereas webkit-line-clamp\n // does not. However, with text-overflow, we cannot specify the number of lines allowed\n lines > 1\n ? `\n display: -webkit-box;\n -webkit-line-clamp: ${lines};\n -webkit-box-orient: vertical;\n overflow: hidden;\n `\n : `\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n `}\n`;\n","import { FONTS, STYLES } from \"@constants\";\nimport styled from \"styled-components\";\nimport Thumbnail from \"../Thumbnail\";\n\ninterface Props {\n users: {\n id: number;\n name: string;\n image: { medium: { url: string | null } };\n location: string;\n }[];\n}\n\nconst MultiUserPreview = ({ users }: Props) => {\n return (\n <Container>\n <Thumbnail users={users} size=\"md\" />\n <div>\n <NameContainer>\n {users.map((user, index) => {\n return (\n <StyledName key={user.id}>\n {user.name}\n {/* 4 total can be displayed */}\n {index !== users.length - 1 && index < 3 && \", \"}\n </StyledName>\n );\n })}\n </NameContainer>\n <UserAssociation>{users[0].location}</UserAssociation>\n </div>\n </Container>\n );\n};\n\nexport default MultiUserPreview;\n\nconst Container = styled.div`\n display: grid;\n grid-template-columns: 36px 1fr;\n grid-gap: 0 24px;\n`;\nconst StyledName = styled.span`\n ${FONTS.SEMIBOLD_2};\n max-width: 210px;\n white-space: pre;\n display: inline-block;\n`;\nconst UserAssociation = styled.div`\n ${FONTS.REGULAR_3};\n ${STYLES.ONE_LINE};\n`;\nconst NameContainer = styled.div`\n max-width: 241px;\n ${STYLES.ONE_LINE};\n line-height: normal;\n -webkit-line-clamp: 2;\n`;\n","import { TextButton, TruncatedText } from \"@components/library\";\nimport { COLORS, FONTS, STYLES } from \"@constants\";\nimport { setMessengerState } from \"@redux/actions/messengerActions\";\nimport { MessengerData } from \"@redux/reducers/messengerReducer\";\nimport { RootState } from \"@redux/store\";\nimport { User } from \"@tsTypes/schema\";\nimport { SponsorLicenseType } from \"@tsTypes/sponsorProfiles\";\nimport { UserRole } from \"@tsTypes/users\";\nimport { ReactNode, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport styled from \"styled-components\";\nimport ProfilePicture from \"../ProfilePicture/ProfilePicture\";\nimport { LicenseTag, SuperAdminTag } from \"../Tags/users\";\n\ninterface BaseProps {\n user: Pick<User, \"id\" | \"image\"> & {\n name: string;\n title?: string;\n location?: string;\n profile_info?: {\n title: string | null;\n location?: string;\n license?: SponsorLicenseType;\n is_super_admin?: boolean;\n };\n };\n size?: \"sm\" | \"md\" | \"lg\" | \"xl\";\n tooltipPosition?: \"top\" | \"bottom\" | \"left\" | \"right\";\n}\n\ninterface ScientistProps extends BaseProps {\n userRole?: UserRole.SCIENTIST;\n isLinkDisabled?: boolean;\n withMessageButton?: boolean;\n messengerData?: MessengerData;\n}\n\ninterface SponsorProps extends BaseProps {\n userRole: UserRole.SPONSOR;\n isUserHidden?: boolean;\n showSponsorRoles?: boolean;\n isExternalLead?: boolean;\n}\n\nconst UserPreview = ({\n user,\n size = \"sm\",\n userRole = UserRole.SCIENTIST,\n tooltipPosition = \"top\",\n ...props\n}: ScientistProps | SponsorProps) => {\n const [isMessageButtonHovered, setIsMessageButtonHovered] = useState(false);\n\n const currentUser = useSelector((state: RootState) => state.profiles.currentUser);\n\n const dispatch = useDispatch();\n\n const { isLinkDisabled, withMessageButton, messengerData } = props as ScientistProps;\n const { isUserHidden, showSponsorRoles, isExternalLead } = props as SponsorProps;\n\n const handleMessageClick = (e) => {\n e.preventDefault();\n\n if (messengerData) {\n dispatch(setMessengerState(messengerData));\n }\n };\n\n let association: ReactNode;\n if (userRole === UserRole.SPONSOR) {\n association = (\n <UserAssociation size={size}>\n {isUserHidden ? \"Reviewer\" : user.profile_info?.title ?? user.title}\n </UserAssociation>\n );\n }\n\n if (userRole === UserRole.SCIENTIST) {\n association = (\n <TruncatedText\n text={(() => {\n if (isExternalLead && currentUser.id !== user.id) return \"(Name hidden from innovator)\";\n return `${user.profile_info?.title ?? user.title ?? \"Researcher\"}, ${\n user.profile_info?.location ?? user.location\n }`;\n })()}\n font={size === \"sm\" || size === \"md\" ? FONTS.REGULAR_3 : FONTS.REGULAR_2}\n tooltipPosition={tooltipPosition}\n />\n );\n }\n\n const asLink = userRole === UserRole.SCIENTIST && !isLinkDisabled && \"profile_id\" in user;\n\n return (\n <Container data-testid=\"user-preview\">\n <StyledLink\n as={asLink ? Link : \"div\"}\n to={asLink ? `/profile/${user.profile_id}` : null}\n asLink={asLink}\n target=\"_blank\"\n rel={\"noreferrer\"}\n size={size}\n isMessageButtonHovered={isMessageButtonHovered}\n >\n <ProfilePicture size={size} user={user} isUserHidden={isUserHidden} />\n <Text>\n <TopRow>\n <Name size={size} className=\"name\" data-testid=\"name\">\n {isUserHidden ? \"Team Member\" : user.name}\n </Name>\n {withMessageButton && messengerData ? (\n <TextButton\n text=\"Message\"\n iconName=\"Message\"\n iconPosition=\"left\"\n margin=\"4px 0 0 12px\"\n size=\"sm\"\n onMouseEnter={() => setIsMessageButtonHovered(true)}\n onMouseLeave={() => setIsMessageButtonHovered(false)}\n onClick={(e) => handleMessageClick(e)}\n data-testid=\"user-preview-message-button\"\n />\n ) : (\n showSponsorRoles && (\n <>\n {user.profile_info?.is_super_admin && (\n <SuperAdminTagContainer>\n <SuperAdminTag />\n </SuperAdminTagContainer>\n )}\n {Boolean(user?.profile_info?.license) && (\n <PremiumTagContainer>\n <LicenseTag type={user.profile_info?.license as SponsorLicenseType} />\n </PremiumTagContainer>\n )}\n </>\n )\n )}\n </TopRow>\n {association}\n </Text>\n </StyledLink>\n </Container>\n );\n};\n\nexport default UserPreview;\n\nconst Container = styled.div`\n width: auto;\n line-height: normal;\n`;\nconst StyledLink = styled(Link)`\n display: inline-grid;\n grid-template-columns: ${({ size }) => {\n switch (size) {\n case \"sm\": {\n return \"36px 1fr\";\n }\n case \"md\": {\n return \"50px 1fr\";\n }\n case \"lg\": {\n return \"68px 1fr\";\n }\n case \"xl\": {\n return \"96px 1fr\";\n }\n }\n }};\n grid-gap: ${({ size }) => {\n switch (size) {\n case \"sm\":\n case \"md\":\n return \"0 8px\";\n case \"lg\":\n case \"xl\":\n return \"0 16px\";\n }\n }};\n align-items: center;\n width: auto;\n color: ${COLORS.BLACK};\n &:hover {\n text-decoration: none;\n color: ${COLORS.BLACK};\n & .name {\n text-decoration: ${({ asLink, isMessageButtonHovered }) =>\n asLink && !isMessageButtonHovered ? \"underline\" : \"none\"};\n }\n }\n &:focus {\n text-decoration: none;\n color: ${COLORS.BLACK};\n }\n`;\nconst Text = styled.div`\n min-width: 0;\n`;\nconst TopRow = styled.div`\n display: flex;\n align-items: center;\n gap: 4px;\n`;\nconst SuperAdminTagContainer = styled.div`\n margin-bottom: -4px;\n pointer-events: none;\n`;\nconst PremiumTagContainer = styled.div`\n margin-bottom: -4px;\n pointer-events: none;\n`;\nconst Name = styled.div`\n ${STYLES.ONE_LINE}\n ${({ size }) => {\n switch (size) {\n case \"sm\":\n case \"md\": {\n return FONTS.TAG_SEMIBOLD_1;\n }\n case \"lg\":\n case \"xl\": {\n return FONTS.HEADING_5_SEMIBOLD;\n }\n }\n }};\n margin-top: 4px;\n`;\nconst UserAssociation = styled.div`\n ${STYLES.TWO_LINES}\n ${({ size }) => {\n switch (size) {\n case \"sm\":\n case \"md\": {\n return FONTS.REGULAR_3;\n }\n case \"lg\":\n case \"xl\": {\n return FONTS.REGULAR_2;\n }\n }\n }};\n`;\n","import { TourIdentifier } from \"@tsTypes/__generated__/enums/tour_identifier\";\n\n// Note: Make sure to add new flags to `app/services/flipper_gates.rb` too!\nconst FEATURE_FLAGS = [\n \"UNCLAIMED_COMPANY_PAGE\",\n \"SIGN_OUT_ON_ONBOARDING\",\n \"SESSION_TIMEOUT\",\n \"COMPANY_MARKETPLACE_FILTER\",\n \"NEW_PROPOSAL_FORM_UI_WITH_REQUIREMENTS\",\n \"PEPSICO_REVIEWER_DASHBOARD_SORTING\",\n \"MARKETPLACE_PARTNER_TYPE_FILTER\",\n \"RFP_FORM_V2_AUDIENCE\",\n \"KEYWORD_AI_AUTO_POPULATION\",\n \"RELEVANT_NOT_RELEVANT_BUTTONS\",\n] as const;\n\n// Export object of { [name as symbol]: boolean }\nexport default FEATURE_FLAGS.reduce(\n (obj, flag) => ({ ...obj, [flag]: gon.feature_flags?.includes(flag) }),\n {}\n) as { [F in (typeof FEATURE_FLAGS)[number]]: boolean };\n\n// Add fully-enabled tours here BEFORE removing the Flipper gate\nconst DEFAULT_ENABLED_TOURS = [\n TourIdentifier.PROPOSAL_REVIEW_SYSTEM_2024_01_22,\n TourIdentifier.PROPOSAL_EVALUATION_2024_02_29,\n TourIdentifier.PROPOSAL_REVIEW_SYSTEM_FEEDBACK_DEADLINE_V2_2024_10_31,\n];\n\nexport const isTourEnabled = (tour: TourIdentifier): boolean =>\n DEFAULT_ENABLED_TOURS.includes(tour) || gon.feature_flags?.includes(`TOUR_${tour}`);\n","import COLORS from \"./__generated__/base_colors\";\n\ntype ExtendedColors = typeof COLORS & {\n BLUE_GRADIENT: string;\n};\n\nconst extendedColors: ExtendedColors = {\n ...COLORS,\n BLUE_GRADIENT: \"linear-gradient(91.99deg, #0068a7 0%, #009cea 100%)\",\n};\n\nexport default extendedColors;\n","/* eslint no-unused-vars: 0 */\n\n/**\n * This file was automatically generated by lib/tasks/ruby_to_typescript.rake\n * DO NOT MODIFY IT BY HAND!\n */\nconst COLORS = {\n BLACK: \"#232D38\",\n BLUE_450: \"#2BB3F6\",\n BLUE_500: \"#009CEA\",\n BLUE_600: \"#0088D6\",\n BLUE_650: \"#0C76C4\",\n BLUE_700: \"#006AB8\",\n BLUE_750: \"#0068A7\",\n BLUE_900: \"#004980\",\n BLUE_LIGHT_50: \"#F9FDFF\",\n BLUE_LIGHT_100: \"#F5FBFF\",\n BLUE_LIGHT_250: \"#F2F9FF\",\n BLUE_LIGHT_300: \"#EEF6FD\",\n BLUE_LIGHT_350: \"#DEF0FF\",\n BLUE_LIGHT_400: \"#D9EEFF\",\n BLUE_LIGHT_500: \"#C6E5FF\",\n BLUE_LIGHT_600: \"#93CDFF\",\n BLUE_LIGHT_650: \"#7DC2FD\",\n BLUE_LIGHT_700: \"#6BB1EC\",\n GREEN: \"#1A9A1F\",\n GREEN_50: \"#EFFEF1\",\n GREEN_100: \"#DDF4DE\",\n GREEN_200: \"#CEF6D0\",\n GREEN_300: \"#B0F2B2\",\n GREEN_400: \"#8CED90\",\n GREEN_500: \"#59CD5E\",\n GREEN_600: \"#38B83D\",\n GREEN_700: \"#1A9A1F\",\n GREEN_750: \"#108815\",\n GREEN_800: \"#007C01\",\n HALO_BLUE: \"#009CEA\",\n NEUTRAL_0: \"#FFFFFF\",\n NEUTRAL_50: \"#F8F9FC\",\n NEUTRAL_100: \"#EFF3F7\",\n NEUTRAL_200: \"#E4EBF1\",\n NEUTRAL_250: \"#DCE2E8\",\n NEUTRAL_300: \"#D1D7DB\",\n NEUTRAL_350: \"#C5CAD2\",\n NEUTRAL_400: \"#9CA3AF\",\n NEUTRAL_500: \"#6B7280\",\n NEUTRAL_600: \"#4B5563\",\n NEUTRAL_700: \"#374151\",\n NEUTRAL_800: \"#232D38\",\n NEUTRAL_900: \"#1E252E\",\n NEUTRAL_950: \"#111827\",\n ORANGE: \"#D47200\",\n ORANGE_50: \"#FFF9E9\",\n ORANGE_100: \"#FFF3D3\",\n ORANGE_200: \"#FFEAB1\",\n ORANGE_300: \"#FFD88B\",\n ORANGE_400: \"#FCC457\",\n ORANGE_500: \"#FAB228\",\n ORANGE_600: \"#F89B30\",\n ORANGE_700: \"#E7820E\",\n ORANGE_800: \"#D47200\",\n ORANGE_900: \"#AF5000\",\n PINK_50: \"#FDF5FD\",\n PINK_100: \"#F9E1FA\",\n PINK_200: \"#F6CFEC\",\n PINK_300: \"#E699C9\",\n PINK_400: \"#DC75B1\",\n PINK_500: \"#D35198\",\n PINK_600: \"#C92D80\",\n PINK_700: \"#B22474\",\n PINK_800: \"#9A1A67\",\n RED: \"#DE3957\",\n RED_50: \"#FFF6F8\",\n RED_100: \"#FFE6EB\",\n RED_200: \"#FFCED6\",\n RED_300: \"#FDBFC9\",\n RED_500: \"#DE3957\",\n RED_600: \"#C9334E\",\n RED_700: \"#AC2B42\",\n WHITE: \"#FFFFFF\",\n};\n\nexport default COLORS;\n","const PROPOSAL_STATUSES = {\n // Order\n PENDING: -1, // -1\n OPEN: 0, // 0\n QUALIFIED: 3, // 3\n SHORTLISTED: 4, // 4\n FINALIST: 5, // 5\n DECLINED: 2, // 2\n FUNDED: 6,\n};\n\nconst PROPOSAL_STATUS_TO_TAB = {\n 0: 0,\n 3: 1,\n 4: 2,\n 5: 3,\n 2: 4,\n};\n\nexport { PROPOSAL_STATUS_TO_TAB };\nexport default PROPOSAL_STATUSES;\n","export default {\n APPSIGNAL_FRONTEND_API_KEY: \"98a44d33-2424-4084-b21b-f393340c353a\",\n ABLY_FRONTEND_API_KEY: \"6BKXew.6APLHA:caesvFOkBAhjviZCMVxRvVAcqT5f74sQ39rriV0mDbE\",\n GOOGLE_API_KEY: \"AIzaSyCRL82pWwuBC7XbgvKwENFGgoO0OM_PD7M\",\n};\n","const RFP_MAX_CHAR_COUNT = {\n OPPROTUNITY_TITLE: 75,\n BACKGROUND: 1500,\n INTERESTS: 500,\n INVITE_MESSAGE: 1500,\n RFP_FIELDS_GENERAL: 350,\n};\n\nexport default RFP_MAX_CHAR_COUNT;\n","enum ABLY_CHANNELS {\n NEW_MESSAGE = \"new_message\",\n}\n\nexport default ABLY_CHANNELS;\n","const BLOCKED_EMAIL_DOMAINS = [\n \"gmail.com\",\n \"yahoo.com\",\n \"hotmail.com\",\n \"aol.com\",\n \"msn.com\",\n \"me.com\",\n \"icloud.com\",\n \"ymail.com\",\n \"att.net\",\n \"verizon.net\",\n \"outlook.com\",\n \"proton.com\",\n \"qq.com\",\n \"163.com\",\n \"mac.com\",\n \"proton.me\",\n \"protonmail.com\",\n \"pm.me\",\n \"yahoo.co.uk\",\n];\n\nexport default BLOCKED_EMAIL_DOMAINS;\n","export default {\n HALO_ID: 1669,\n BASF_ID: 1710,\n PEPSICO_ID: 1667,\n FUEL_ID: 2772,\n};\n","import beams from \"@images/headers/beams.png\";\nimport drops from \"@images/headers/drops.png\";\nimport hoop from \"@images/headers/hoop.png\";\nimport lines from \"@images/headers/lines.png\";\nimport splash from \"@images/headers/splash.png\";\nimport stars from \"@images/headers/stars.png\";\n\nconst HEADERS = {\n 0: beams,\n 1: drops,\n 2: hoop,\n 3: lines,\n 4: splash,\n 5: stars,\n};\n\nexport default HEADERS;\n","import { getData } from \"country-list\";\n\ninterface CountryData {\n code: string;\n name: string;\n}\n\nconst countriesData: CountryData[] = getData();\n\nconst uk = countriesData.find((country) => country.code === \"GB\");\n\nif (uk) {\n uk.name = \"United Kingdom\";\n}\n\ncountriesData.sort((a, b) => {\n if (a.name < b.name) {\n return -1;\n } else if (a.name > b.name) {\n return 1;\n }\n return 0;\n});\n\nconst COUNTRY_OPTIONS = countriesData.map((countryData) => ({\n value: countryData.code,\n label: countryData.name,\n}));\n\nexport default COUNTRY_OPTIONS;\n","export default {\n WITH_DOWNLOAD_PROPOSAL_AS_PDF: process.env.WITH_DOWNLOAD_PROPOSAL_AS_PDF === \"true\",\n HEROKU_SLUG_COMMIT: process.env.HEROKU_SLUG_COMMIT,\n};\n","export default {\n HEADING_1_BOLD: `\n font-weight: 700;\n font-size: 38px;\n line-height: 1.24;\n`,\n HEADING_1_SEMIBOLD: `\n font-weight: 600;\n font-size: 38px;\n line-height: 1.24;\n `,\n HEADING_2_SEMIBOLD: `\n font-weight: 600;\n font-size: 32px;\n line-height: 1.24;\n `,\n HEADING_3_SEMIBOLD: `\n font-weight: 600;\n font-size: 26px;\n line-height: 32px;\n `,\n HEADING_3_REGULAR: `\n font-weight: 400;\n font-size: 26px;\n line-height: 1.6;\n`,\n HEADING_4_BOLD: `\n font-weight: 700;\n font-size: 22px;\n line-height: 28px;\n `,\n HEADING_4_SEMIBOLD: `\n font-weight: 600;\n font-size: 22px;\n line-height: 28px;\n `,\n HEADING_4_REGULAR: `\n font-weight: 400;\n font-size: 22px;\n line-height: 1.6;\n `,\n HEADING_5_BOLD: `\n font-weight: 700;\n font-size: 18px;\n line-height: 28px;\n `,\n HEADING_5_SEMIBOLD: `\n font-weight: 600;\n font-size: 18px;\n line-height: 24px;\n `,\n HEADING_5_MEDIUM: `\n font-weight: 500;\n font-size: 18px;\n line-height: 28px;\n`,\n HEADING_5_REGULAR: `\n font-weight: 400;\n font-size: 18px;\n line-height: 1.7;\n`,\n HEADING_JUMBO: `\n font-weight: 700;\n font-size: 46px;\n line-height: 57px;\n `,\n HEADING_BANNER: `\n font-weight: 700;\n font-size: 64px;\n line-height: 1.2;\n letter-spacing: -0.03em;\n `,\n REGULAR_1: `\n font-weight: 400;\n font-size: 16px;\n line-height: 1.7;\n `,\n REGULAR_2: `\n font-weight: 400;\n font-size: 14px;\n line-height: 1.7;\n `,\n REGULAR_3: `\n font-weight: 400;\n font-size: 12px;\n line-height: 1.7;\n `,\n REGULAR_4: `\n font-weight: 400;\n font-size: 10px;\n line-height: 18px;\n `,\n MEDIUM_1: `\n font-weight: 500;\n font-size: 16px;\n line-height: 1.7;\n `,\n MEDIUM_2: `\n font-weight: 500;\n font-size: 14px;\n line-height: 1.7;\n `,\n MEDIUM_3: `\n font-weight: 500;\n font-size: 12px;\n line-height: 1.7;\n `,\n SEMIBOLD_1: `\n font-weight: 600;\n font-size: 16px;\n line-height: 1.5;\n `,\n SEMIBOLD_2: `\n font-weight: 600;\n font-size: 14px;\n line-height: 1.5;\n `,\n SEMIBOLD_3: `\n font-weight: 600;\n font-size: 12px;\n line-height: 1.7;\n `,\n SEMIBOLD_4: `\n font-weight: 600;\n font-size: 10px;\n line-height: 18px;\n `,\n BOLD_1: `\n font-weight: 700;\n font-size: 16px;\n line-height: 1.7;\n `,\n BOLD_2: `\n font-weight: 700;\n font-size: 14px;\n line-height: 1.7;\n `,\n BOLD_3: `\n font-weight: 700;\n font-size: 12px;\n line-height: 1.7;\n `,\n BUTTON_1: `\n font-weight: 500;\n font-size: 16px;\n line-height: 19px;\n letter-spacing: 0.01em;\n `,\n BUTTON_2: `\n font-weight: 500;\n font-size: 14px;\n line-height: 17px;\n letter-spacing: 0.01em;\n `,\n BUTTON_3: `\n font-weight: 500;\n font-size: 12px;\n line-height: 15px;\n `,\n BUTTON_4: `\n font-weight: 500;\n font-size: 10px;\n line-height: 12px;\n `,\n TAG_MEDIUM_1: `\n font-weight: 500;\n font-size: 14px;\n line-height: 17px;\n `,\n TAG_MEDIUM_2: `\n font-weight: 500;\n font-size: 12px;\n line-height: 15px;\n `,\n TAG_MEDIUM_3: `\n font-weight: 500;\n font-size: 10px;\n line-height: 12px;\n `,\n TAG_SEMIBOLD_1: `\n font-weight: 600;\n font-size: 14px;\n line-height: 17px;\n `,\n TAG_SEMIBOLD_2: `\n font-weight: 600;\n font-size: 12px;\n line-height: normal;\n `,\n TAG_BOLD_2: `\n font-weight: 700;\n font-size: 12px;\n line-height: 15px;\n `,\n TAG_BOLD_3: `\n font-weight: 700;\n font-size: 10px;\n line-height: 12px;\n `,\n TAG_REGULAR_1: `\n font-weight: 400;\n font-size: 14px;\n line-height: 17px;\n `,\n TAG_ACCENT: `\n font-weight: 600;\n font-size: 10px;\n line-height: 12px;\n letter-spacing: 0.08em;\n `,\n};\n\ninterface Font {\n fontWeight: 400 | 500 | 600 | 700;\n fontSize: number;\n lineHeight: number | string;\n}\n\n// Necessary while we still use Aphrodite, but eventually should be phased out\nexport const JS_FONTS: Record<string, Font> = {\n HEADING_1_SEMIBOLD: {\n fontWeight: 600,\n fontSize: 38,\n lineHeight: 1.24,\n },\n HEADING_2_SEMIBOLD: {\n fontWeight: 600,\n fontSize: 32,\n lineHeight: 1.24,\n },\n HEADING_3_SEMIBOLD: {\n fontWeight: 600,\n fontSize: 26,\n lineHeight: \"32px\",\n },\n HEADING_4_SEMIBOLD: {\n fontWeight: 600,\n fontSize: 22,\n lineHeight: \"28px\",\n },\n HEADING_5_SEMIBOLD: {\n fontWeight: 500,\n fontSize: 18,\n lineHeight: 1.4,\n },\n REGULAR_1: {\n fontWeight: 400,\n fontSize: 16,\n lineHeight: 1.7,\n },\n REGULAR_2: {\n fontWeight: 400,\n fontSize: 14,\n lineHeight: 1.7,\n },\n REGULAR_3: {\n fontWeight: 400,\n fontSize: 12,\n lineHeight: 1.7,\n },\n REGULAR_4: {\n fontWeight: 400,\n fontSize: 10,\n lineHeight: \"18px\",\n },\n MEDIUM_1: {\n fontWeight: 500,\n fontSize: 16,\n lineHeight: 1.7,\n },\n MEDIUM_2: {\n fontWeight: 500,\n fontSize: 14,\n lineHeight: 1.7,\n },\n MEDIUM_3: {\n fontWeight: 500,\n fontSize: 12,\n lineHeight: 1.7,\n },\n SEMIBOLD_1: {\n fontWeight: 600,\n fontSize: 16,\n lineHeight: 1.5,\n },\n SEMIBOLD_2: {\n fontWeight: 600,\n fontSize: 14,\n lineHeight: 1.5,\n },\n BOLD_3: {\n fontWeight: 700,\n fontSize: 12,\n lineHeight: 1.7,\n },\n BUTTON_2: {\n fontWeight: 500,\n fontSize: 14,\n lineHeight: \"normal\",\n },\n};\n","const PORTAL_ID = \"6895929\";\n// Research follow\nconst FORM_ID = \"b7f36ac2-2f23-4891-8713-22f1fc2eb7a5\";\n\nconst HUBSPOT = {\n PORTAL_ID,\n FORM_ID,\n};\n\nexport default HUBSPOT;\n","export default {\n GET_MORE_SEATS: \"https://info.halo.science/licenses\",\n};\n","const PROPOSAL_TYPES = {\n NORMAL: \"\",\n MATERIALS: \"ChemicalCompoundProposal\",\n};\n\nexport default PROPOSAL_TYPES;\n","const OTHER_SUBMISSION_BULLETS = [\n \"Your proposal is sent to the sponsor\",\n \"Sponsor reviews your proposal and profile\",\n \"Sponsor follows up with next steps or feedback\",\n];\n\nconst CORTEVA = {\n UNIVERSITY_SUBMISSION_BULLETS: OTHER_SUBMISSION_BULLETS,\n STARTUP_SUBMISSION_BULLETS: OTHER_SUBMISSION_BULLETS,\n COMPOUND_EXAMPLES: [\n \"Spirocyclic compounds synthesized through novel methodology\",\n \"Heterocycles with novel substitution that is unprecedented or difficult to access\",\n \"Building block is a bioisostereo for phenyl motif\",\n ],\n DESIGN_PRINCIPLE_EXAMPLES: [\n \"The compounds have been produced using ACS green chemistry principles.\",\n \"The compounds have been synthesized using from nature's chiral pool\",\n \"Unique building blocks with high sp3 character.\",\n ],\n RATIONALE_EXAMPLES: [\n \"Methodologies that follow the green chemistry principles can be potentially scaled up in a sustainable fashion.\",\n \"Utilizing nature's chiral pool potentially removes the need for enantiomer separation or enantioselective methods.\",\n \"Utilizing building blocks with high sp3 character will potentially lead to more sustainable and potent agrochemicals.\",\n ],\n};\n\nconst TESTING4AG = {\n UNIVERSITY_SUBMISSION_BULLETS: [\n \"You will receive two emails - one from Halo and one from Docusign with the MTA\",\n \"Forward the email from Halo to your tech transfer contact that handles MTAs\",\n \"Click “Review Document†in the Docusign email and assign the MTA to the same contact\",\n ],\n STARTUP_SUBMISSION_BULLETS: [\n \"You will receive two emails - one from Halo and one from Docusign with the MTA\",\n \"Click “Review Document†in the Docusign email and sign the MTA\",\n \"Once the MTA is signed, Bayer will contact you to upload your compound to an FTP site\",\n ],\n COMPOUND_EXAMPLES: [\n \"Oxazole derivatives designed to modulate ion channels\",\n \"Spirocyclic compounds synthesized through novel cyclization approach\",\n \"Benzamides with potential herbicidal activity\",\n ],\n DESIGN_PRINCIPLE_EXAMPLES: [\n \"The compounds have been designed to interfere with lipid biosynthesis as inhibitors of the Acetyl-CoA-Carboxylase.\",\n \"\",\n \"The compounds have been produced in a chemistry driven synthesis approach.\",\n ],\n RATIONALE_EXAMPLES: [\n \"4-pyridine amides are known insecticidal compounds acting on sucking and piercing insects. Thus, closely related pyrimidine analogues should exhibit similar biological efficacy.\",\n \"\",\n \"The employed carbocyclization strategies give rise to novel molecular scaffolds that are unprecedented in commercialized active ingredients\",\n ],\n};\n\nexport { TESTING4AG, CORTEVA };\n","export default {\n SHADOW_A: \"0px 1px 5px 0px #1D477B1F, 0px 5px 10px 0px #1D477B0A\",\n SHADOW_B: \"0px 10px 22px rgba(29, 71, 123, 0.08), 0px 2px 12px rgba(29, 71, 123, 0.08)\",\n SHADOW_C: \"0px 4px 10px rgba(28, 50, 79, 0.28)\",\n SHADOW_D: \"0px 6px 24px -4px #1C324F61\",\n SHADOW_E: \"0px 15.1852px 48.5926px -6.07407px rgba(1, 106, 170, 0.15)\",\n SHADOW_CARD: \"0px 1px 3px 0px rgba(4, 11, 19, 0.06)\",\n ONE_LINE: `\n display: -webkit-box;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n overflow: hidden;\n `,\n // specify max width element for this to work\n ONE_LINE_ALT: `\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n `,\n TWO_LINES: `\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n `,\n THREE_LINES: `\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n `,\n HERO_MEDIA_QUERY: `@media screen and (max-width: 1440px)`,\n};\n","/* WINDOW DIMENSIONS */\nconst EXTRA_WIDE = 1920;\nconst DESKTOP = 1280;\nconst TABLET_LANDSCAPE = 991;\nconst TABLET = 767;\nconst MOBILE = 479;\n/* MEDIA QUERIES */\nconst EXTRA_WIDE_MEDIA_QUERY = `@media screen and (min-width: ${EXTRA_WIDE}px)`;\nconst DESKTOP_MEDIA_QUERY = `@media screen and (max-width: ${DESKTOP}px)`;\nconst TABLET_LANDSCAPE_MEDIA_QUERY = `@media screen and (max-width: ${TABLET_LANDSCAPE}px)`;\nconst TABLET_MEDIA_QUERY = `@media screen and (max-width: ${TABLET}px)`;\nconst MOBILE_MEDIA_QUERY = `@media screen and (max-width: ${MOBILE}px)`;\n\n// From Erik's research of active users, currently only used for showing\n// a mini version of the RFP page as a preview at the end of the RFP form\nconst BASE_WINDOW_WIDTH = 1350;\n\n// New responsiveness approach based on design system\nconst PAGE_SIDE_PADDING = 82;\nconst TABLET_SIDE_PADDING = 16;\nconst DESKTOP_MIN_CONTENT_WIDTH = 1216;\nconst DESKTOP_MIN_CONTENT_WIDTH_MEDIA_QUERY = `@media screen and (max-width: ${DESKTOP_MIN_CONTENT_WIDTH}px)`;\nconst DESKTOP_MIN_WIDTH = DESKTOP_MIN_CONTENT_WIDTH + 2 * PAGE_SIDE_PADDING;\nconst DESKTOP_MIN_WIDTH_MEDIA_QUERY = `@media screen and (max-width: ${DESKTOP_MIN_WIDTH}px)`;\n// Some components/pages can stretch beyond this on a case-by-case basis\nconst DEFAULT_MAX_WIDTH = 1680;\n\nexport default {\n EXTRA_WIDE,\n DESKTOP,\n TABLET_LANDSCAPE,\n TABLET,\n MOBILE,\n EXTRA_WIDE_MEDIA_QUERY,\n DESKTOP_MEDIA_QUERY,\n TABLET_LANDSCAPE_MEDIA_QUERY,\n TABLET_MEDIA_QUERY,\n MOBILE_MEDIA_QUERY,\n BASE_WINDOW_WIDTH,\n PAGE_SIDE_PADDING,\n TABLET_SIDE_PADDING,\n DESKTOP_MIN_CONTENT_WIDTH,\n DESKTOP_MIN_CONTENT_WIDTH_MEDIA_QUERY,\n DESKTOP_MIN_WIDTH,\n DESKTOP_MIN_WIDTH_MEDIA_QUERY,\n DEFAULT_MAX_WIDTH,\n};\n","export const RFP_FORM_CHARACTER_LIMITS = {\"TITLE\":75,\"PROBLEM_STATEMENT\":1500,\"LOOKING_FOR\":1000,\"SOLUTIONS_OF_INTEREST\":150,\"MUST_HAVE_REQUIREMENTS\":300,\"NICE_TO_HAVE_REQUIREMENTS\":300,\"OUT_OF_SCOPE\":300,\"FUNDING_BENEFIT\":400,\"NON_MONETARY_BENEFIT\":400};","export const SCIENTIST_ROLES = [\"Principal Investigator\",\"Postdoctoral Scientist\",\"PhD Candidate\",\"Research Associate\"];\n","import { I18n } from \"i18n-js\";\nimport en from \"./generated/en.json\";\n\nconst i18n = new I18n(en);\n\nexport default i18n;\n","import type { MessengerData } from \"@redux/reducers/messengerReducer\";\nimport { ProposalyType } from \"@tsTypes/proposaly\";\nimport { payloadActionGenerator } from \"@utils/redux\";\nimport { batch } from \"react-redux\";\n\nimport {\n getMessageThreadByRecipients,\n getMessageThreadByUserProposal,\n} from \"src/requests/messages\";\n\nexport const SET_MESSENGER_DATA = \"SET_MESSENGER_DATA\";\nexport const CLEAR_MESSENGER_STATE = \"CLEAR_MESSENGER_STATE\";\nexport const SET_MESSENGER_THREAD = \"SET_MESSENGER_THREAD\";\nexport const SET_HAS_UNREAD_MESSAGE = \"SET_HAS_UNREAD_MESSAGE\";\nexport const SET_IS_MESSENGER_OPEN = \"SET_IS_MESSENGER_OPEN\";\nexport const SET_IS_MESSENGER_MINIMIZED = \"SET_IS_MESSENGER_MINIMIZED\";\nexport const SET_IS_MESSENGER_EXPANDED = \"SET_IS_MESSENGER_EXPANDED\";\nexport const IS_MESSENGER_THREAD_LOADING = \"IS_MESSENGER_THREAD_LOADING\";\nexport const SET_MESSENGER_OFFSET_RIGHT = \"SET_MESSENGER_OFFSET_RIGHT\";\n\nexport const setMessengerData = payloadActionGenerator(SET_MESSENGER_DATA);\nexport const clearMessengerState = payloadActionGenerator(CLEAR_MESSENGER_STATE);\nexport const setMessengerThread = payloadActionGenerator(SET_MESSENGER_THREAD);\nexport const setHasUnreadMessage = payloadActionGenerator(SET_HAS_UNREAD_MESSAGE);\nexport const setIsMessengerOpen = payloadActionGenerator(SET_IS_MESSENGER_OPEN);\nexport const setIsMessengerMinimized = payloadActionGenerator(SET_IS_MESSENGER_MINIMIZED);\nexport const setIsMessengerExpanded = payloadActionGenerator(SET_IS_MESSENGER_EXPANDED);\nexport const setIsMessengerThreadLoading = payloadActionGenerator(IS_MESSENGER_THREAD_LOADING);\nexport const setMessengerOffsetRight = payloadActionGenerator(SET_MESSENGER_OFFSET_RIGHT);\n\nexport const fetchCurrentThreadByProposal = (\n userId: number,\n proposalyType: ProposalyType,\n proposalyId: number\n) => {\n return async (dispatch) => {\n dispatch(setIsMessengerThreadLoading(true));\n const response = await getMessageThreadByUserProposal({ userId, proposalyType, proposalyId });\n\n batch(() => {\n dispatch(setMessengerThread(response?.message_thread));\n dispatch(setHasUnreadMessage(response?.message_thread.unread_for_current_user ?? false));\n dispatch(setIsMessengerThreadLoading(false));\n });\n\n return response?.message_thread;\n };\n};\n\nexport const fetchCurrentThreadByParticipants = (\n scientistUserId: number,\n recipientUserId: number\n) => {\n return async (dispatch) => {\n dispatch(setIsMessengerThreadLoading(true));\n const response = await getMessageThreadByRecipients({\n scientistUserId,\n recipientUserId,\n });\n\n batch(() => {\n dispatch(setMessengerThread(response?.message_thread));\n dispatch(setHasUnreadMessage(response?.message_thread.unread_for_current_user ?? false));\n dispatch(setIsMessengerThreadLoading(false));\n });\n\n return response?.message_thread;\n };\n};\n\nexport const setMessengerState = (messengerData: MessengerData) => {\n return (dispatch) => {\n batch(() => {\n dispatch(setMessengerData(messengerData));\n dispatch(setIsMessengerOpen(true));\n dispatch(setIsMessengerMinimized(false));\n });\n };\n};\n","import { InboxMessageThread, MessageRecipient } from \"@tsTypes/index\";\nimport { ProposalyType } from \"@tsTypes/proposaly\";\nimport {\n CLEAR_MESSENGER_STATE,\n IS_MESSENGER_THREAD_LOADING,\n SET_HAS_UNREAD_MESSAGE,\n SET_IS_MESSENGER_EXPANDED,\n SET_IS_MESSENGER_MINIMIZED,\n SET_IS_MESSENGER_OPEN,\n SET_MESSENGER_DATA,\n SET_MESSENGER_OFFSET_RIGHT,\n SET_MESSENGER_THREAD,\n} from \"../actions/messengerActions\";\n\nexport interface MessengerData {\n recipient: MessageRecipient;\n proposalTitle?: string | null;\n proposalyId?: number;\n proposalyType?: ProposalyType;\n}\n\ninterface MessengerState {\n messengerData: MessengerData | Record<string, never>;\n messengerThread?: InboxMessageThread;\n hasUnreadMessage: boolean;\n isMessengerMinimized: boolean;\n isMessengerOpen: boolean;\n isMessengerExpanded: boolean;\n isMessengerThreadLoading: boolean;\n messengerOffsetRight: number;\n}\n\nexport const DEFAULT_MESSENGER_OFFSET_RIGHT = 70;\n\nconst initialState = {\n messengerData: {},\n messengerThread: undefined,\n hasUnreadMessage: false,\n isMessengerMinimized: false,\n isMessengerOpen: false,\n isMessengerExpanded: false,\n isMessengerThreadLoading: true,\n messengerOffsetRight: DEFAULT_MESSENGER_OFFSET_RIGHT,\n};\n\n// eslint-disable-next-line default-param-last\nconst messengerReducer = (state: MessengerState = initialState, action) => {\n switch (action.type) {\n case SET_MESSENGER_DATA:\n return {\n ...state,\n messengerData: action.payload,\n };\n case CLEAR_MESSENGER_STATE:\n return initialState;\n case SET_MESSENGER_THREAD:\n return {\n ...state,\n messengerThread: action.payload,\n };\n case SET_HAS_UNREAD_MESSAGE:\n return {\n ...state,\n hasUnreadMessage: action.payload,\n };\n case SET_IS_MESSENGER_OPEN:\n return {\n ...state,\n isMessengerOpen: action.payload,\n };\n case SET_IS_MESSENGER_MINIMIZED:\n return {\n ...state,\n isMessengerMinimized: action.payload,\n };\n case SET_IS_MESSENGER_EXPANDED:\n return {\n ...state,\n isMessengerExpanded: action.payload,\n };\n case IS_MESSENGER_THREAD_LOADING:\n return {\n ...state,\n isMessengerThreadLoading: action.payload,\n };\n case SET_MESSENGER_OFFSET_RIGHT: {\n return {\n ...state,\n messengerOffsetRight: action.payload,\n };\n }\n default:\n return state;\n }\n};\n\nexport default messengerReducer;\n","import { company_marketplace_filter_options_path, company_marketplace_path } from \"@routes/routes\";\nimport { marketplacePath } from \"@routes/utils\";\nimport { CompanyForCard } from \"@tsTypes/companies/_for_card\";\nimport { CompanyMarketplaceResponse } from \"@tsTypes/companies/company_marketplace\";\nimport { CompanyMarketplaceFilterOptionsResponse } from \"@tsTypes/companies/company_marketplace_filter_options\";\nimport {\n CompaniesShowResponse,\n CompanyPageResponse,\n CompanyResearchInterestsCreateResponse,\n CompanyResearchInterestsDestroyResponse,\n CompanyResearchInterestsUpdateResponse,\n RfpRequestForCard,\n} from \"@tsTypes/index\";\nimport { Company, CompanyResearchInterest, Request, User } from \"@tsTypes/schema\";\nimport api from \"./request\";\n\nexport type CompanyAsJson = Omit<\n Company,\n \"request_for_proposals\" | \"company_page_users\" | \"company_research_interests\"\n> & {\n rfp_requests: RfpRequestForCard[];\n company_research_interests: CompanyResearchInterest &\n {\n rfp_requests: RfpRequestForCard[];\n keywords: string[];\n open_call_request: Request;\n }[];\n super_admin: User;\n company_page_users?: User[];\n opportunity_count: number;\n is_open_calls_accessible: boolean;\n};\n\nexport const getCompanyForCompanyPage = async (\n identifier: string\n): Promise<CompanyPageResponse> => {\n try {\n const response = await api.get(`/company_info/${identifier.toLocaleLowerCase()}`, {\n params: {\n is_for_company_page: true,\n },\n });\n\n return response.data;\n } catch (error) {\n if (error.response.status === 401) {\n const accessCode = prompt(\"Please enter the access code for this page\");\n\n if (accessCode) {\n try {\n const responseJson = await api.get(`/company_info/${identifier}`, {\n params: {\n access_code: accessCode,\n is_for_company_page: true,\n },\n });\n\n return responseJson.data;\n } catch (secondError) {\n if (secondError.response.status === 401) {\n alert(\"Incorrect password\");\n window.location.href = marketplacePath();\n } else {\n throw secondError;\n }\n }\n }\n\n window.location.href = marketplacePath();\n } else {\n throw error;\n }\n }\n\n throw new Error(\"Unable to fetch company\");\n};\n\nexport async function getCompany(identifier: string): Promise<CompaniesShowResponse> {\n if (!identifier) {\n console.error(`No identifier passed to getCompany!`);\n }\n const response = await api.get(`/company_info/${identifier}`);\n\n return response.data;\n}\n\nexport async function getAllCompanies(\n pageNumber?: number,\n sortBy?: string,\n abortSignal?: AbortSignal\n): Promise<{ companies: CompanyForCard[]; total_count: number }> {\n const request = await api.get(\"/companies\", {\n params: {\n for_marketplace: true,\n page_number: pageNumber,\n sort_by: sortBy,\n },\n signal: abortSignal,\n });\n return request.data;\n}\n\nexport async function getCompanyFollowSuggestions() {\n try {\n const request = await api.get(\"/companies\", { params: { for_suggested_follows: true } });\n const { companies } = request.data;\n return companies;\n } catch {\n return [];\n }\n}\n\nexport async function getCompanyNamesForOnboarding(): Promise<{ companies: string[] }> {\n const response = await api.get(\"/companies\", { params: { for_onboarding: true } });\n return response.data;\n}\n\nexport async function uploadCompanyVideo(id: number, videoBlob: Blob) {\n const formData = new FormData();\n formData.append(\"file\", videoBlob);\n\n const response = await api.post(`/company/${id}/video-upload`, formData);\n const videoUrl: string = response.data.url;\n\n return videoUrl;\n}\n\nexport async function uploadCompanyImage(id: number, identifier: string, imageBlob: Blob) {\n const formData = new FormData();\n formData.append(\"file\", imageBlob, `${identifier}-logo.png`);\n\n const response = await api.post(`/company/${id}/logo-upload`, formData);\n const logoUrl: string = response.data.url;\n\n return logoUrl;\n}\n\nexport async function followUnfollowCompany(identifier?: string | null) {\n if (!identifier) return;\n try {\n const response = await api.post(`/company/${identifier}/follow_unfollow`);\n return response.data;\n } catch (error) {\n return null;\n }\n}\n\nexport async function updateCompanyInfo(\n id: number,\n companyInfo: {\n researcher_count?: string;\n rd_centers_count?: number;\n rd_spend_amount?: string;\n employee_count?: string;\n company_type?: string;\n location?: string;\n description?: string;\n introduction?: string;\n company_page_user_ids?: number[];\n }\n): Promise<CompanyPageResponse | null> {\n try {\n const response = await api.put(`/companies/${id}`, companyInfo);\n return response.data;\n } catch (error) {\n return null;\n }\n}\n\nexport async function createCompanyResearchInterest({\n companyId,\n title,\n summary,\n keywords,\n requestForProposalIds,\n isOpenCallActive,\n}: {\n companyId: number;\n title: string;\n summary: string;\n keywords?: string[];\n requestForProposalIds?: number[];\n isOpenCallActive: boolean;\n}): Promise<CompanyResearchInterestsCreateResponse> {\n const response = await api.post(`/company_research_interests`, {\n company_id: companyId,\n title,\n summary,\n keywords,\n request_for_proposal_ids: requestForProposalIds,\n is_open_call_active: isOpenCallActive,\n });\n\n return response.data;\n}\n\nexport async function updateCompanyResearchInterest({\n id,\n title,\n summary,\n keywords,\n requestForProposalIds,\n isOpenCallActive,\n}: {\n id: number;\n title: string;\n summary: string;\n keywords: string[];\n requestForProposalIds: number[];\n isOpenCallActive: boolean;\n}): Promise<CompanyResearchInterestsUpdateResponse> {\n const response = await api.put(`/company_research_interests/${id}`, {\n title,\n summary,\n keywords,\n request_for_proposal_ids: requestForProposalIds,\n is_open_call_active: isOpenCallActive,\n });\n\n return response.data;\n}\n\nexport async function deleteCompanyResearchInterest(\n id: number\n): Promise<CompanyResearchInterestsDestroyResponse> {\n const response = await api.delete(`/company_research_interests/${id}`);\n\n return response.data;\n}\n\nexport type CompanyResearchInterestForProposalForm = CompanyResearchInterest & {\n request: Pick<Request, \"id\" | \"title\" | \"slug\">;\n company: Pick<Company, \"company_name\" | \"avatar\" | \"is_partner\" | \"identifier\">;\n};\n\nexport const getCompanyResearchInterestsBySlug = async (\n slug: string\n): Promise<CompanyResearchInterestForProposalForm[]> => {\n const response = await api.get(`/company_research_interests`, {\n params: { company_identifier: slug },\n });\n return response.data.company_research_interests;\n};\n\nexport const getCompanyMarketplaceCompanies = async ({\n keywordsFilter,\n withActiveRfpsFilter,\n withActiveOpenCallsFilter,\n withActiveRfsFilter,\n sortBy,\n pageNumber,\n}: {\n keywordsFilter: string[];\n withActiveRfpsFilter: boolean;\n withActiveOpenCallsFilter: boolean;\n withActiveRfsFilter: boolean;\n sortBy: \"PREFERRED\" | \"NAME\";\n pageNumber: number;\n}): Promise<CompanyMarketplaceResponse> => {\n const response = await api.get(company_marketplace_path(), {\n params: {\n options: {\n keywords_filter: keywordsFilter,\n with_active_rfps_filter: withActiveRfpsFilter,\n with_active_open_calls_filter: withActiveOpenCallsFilter,\n with_active_rfs_filter: withActiveRfsFilter,\n sort_by: sortBy,\n page_number: pageNumber,\n },\n },\n });\n return response.data;\n};\n\nexport const getCompanyMarketplaceFilterOptions =\n async (): Promise<CompanyMarketplaceFilterOptionsResponse> => {\n const response = await api.get(company_marketplace_filter_options_path());\n return response.data;\n };\n","import toast from \"@components/Toast\";\nimport { ConnectionType } from \"@tsTypes/__generated__/enums/connection_type.js\";\nimport { CompanyNetworkScientistsAccountSettingsResponse } from \"@tsTypes/company_network_scientists/account_settings\";\nimport {\n CompanyNetworkScientistPartial,\n CompanyNetworkScientistsCreateResponse,\n} from \"@tsTypes/index\";\nimport appsignal from \"@utils/appsignal\";\nimport { t } from \"@utils/i18n\";\nimport { search_suggest_company_network_scientists_path } from \"../routes/routes.js\";\nimport request from \"./request\";\n\nexport const requestToJoinCompanyNetwork = async (\n companyId: number\n): Promise<CompanyNetworkScientistsCreateResponse> => {\n const response = await request.post(\"/company_network_scientists\", {\n company_id: companyId,\n is_from_digest: false,\n });\n return response.data;\n};\n\nexport const requestToJoinCompanyNetworkFromDigest = async (\n companyIdentifier: string\n): Promise<void> => {\n try {\n const response = await request.post(\"/company_network_scientists\", {\n company_identifier: companyIdentifier,\n is_from_digest: true,\n });\n const {\n company_network_scientist: { company_name },\n } = response.data;\n toast.success(\n t(\"models.company_network_scientist.sponsor_digest.join_success\", { company_name })\n );\n } catch (error) {\n switch (error.response?.status) {\n case 401:\n break;\n case 409:\n toast.success(\n t(\"models.company_network_scientist.sponsor_digest.join_duplicate\", {\n company_name: error.response.data.company_name,\n })\n );\n break;\n default:\n toast.error(t(\"error.default\"));\n appsignal.sendError(error, (span) => {\n span.setAction(\"companyNetworkScientists#requestToJoinCompanyNetworkFromDigest\");\n span.setTags({\n companyIdentifier,\n });\n });\n }\n }\n};\n\nexport const getCompanyNetworkScientist = async ({\n scientistProfileId,\n companyId,\n}): Promise<CompanyNetworkScientistPartial | null> => {\n try {\n const response = await request.get(\"/company_network_scientist\", {\n params: {\n scientist_profile_id: scientistProfileId,\n company_id: companyId,\n },\n });\n\n return response?.data;\n } catch (error) {\n switch (error.response?.status) {\n case 404:\n break;\n default:\n appsignal.sendError(error, (span) => {\n span.setAction(\"getCompanyNetworkScientist\");\n span.setTags({\n scientistProfileId,\n companyId,\n });\n });\n }\n\n return null;\n }\n};\n\nexport const searchSuggest = async (query: string, connectionType: ConnectionType | undefined) => {\n const response = await request.get(search_suggest_company_network_scientists_path(), {\n params: {\n query,\n connection_type: connectionType,\n },\n });\n return response.data;\n};\n\nexport const getCompanyNetworkScientistsForAccountSettings =\n async (): Promise<CompanyNetworkScientistsAccountSettingsResponse> => {\n const response = await request.get(\"/company_network_scientists\", {\n params: {\n for_account_settings: true,\n },\n });\n return response.data;\n };\n\nexport const inviteScientistsToCompanyNetwork = async (\n emails: string[],\n message: string\n): Promise<{\n immediately_added: number;\n sent_invitation: number;\n already_in_network: number;\n}> => {\n const response = await request.post(\"/notifications/invite_scientists_to_network\", {\n emails: emails,\n message: message,\n });\n return response.data;\n};\n\nexport const addScientistToCompanyNetwork = async (\n scientistProfileId: string\n): Promise<CompanyNetworkScientistPartial> => {\n const response = await request.post(\n \"/company_network_scientist/sponsor_add_scientist_to_network\",\n {\n scientist_profile_id: scientistProfileId,\n }\n );\n return response.data;\n};\n","import { suggestions_keywords_path } from \"@routes/routes\";\nimport { KeywordType } from \"@tsTypes/keywords\";\nimport { RequestableType } from \"@tsTypes/requests\";\nimport appsignal from \"@utils/appsignal\";\nimport api from \"./request\";\n\nexport const getDisciplines = async (): Promise<string[]> => {\n const response = await api.get(\"/disciplines\");\n return response.data;\n};\n\nexport const getAreasOfExpertise = async (): Promise<string[]> => {\n const response = await api.get(\"/areas_of_expertise\");\n return response.data;\n};\n\nexport const getKeywords = async (): Promise<{\n disciplines: string[];\n areas_of_expertise: string[];\n}> => {\n const response = await api.get(\"/keywords\");\n return response.data;\n};\n\nexport const createKeyword = async (\n name: string,\n type: \"Discipline\" | \"AreaOfExpertise\"\n): Promise<void> => {\n try {\n await api.post(\"/keywords\", { name, type });\n } catch (err) {\n appsignal.sendError(err, (span) => {\n span.setAction(\"keywords#create\");\n span.setTags({\n name,\n });\n });\n }\n};\n\nexport const getKeywordSuggestionsBySimilarity = async (\n keywords: string[],\n type: \"All\" | \"Discipline\" | \"AreaOfExpertise\"\n): Promise<string[]> => {\n try {\n const response = await api.get(\"/keywords/suggestions\", {\n params: {\n keywords,\n type,\n by_similarity: true,\n },\n });\n\n if (!response) return [];\n\n return response.data.suggestions;\n } catch (err) {\n if (err?.code !== \"ECONNABORTED\") {\n appsignal.sendError(err, (span) => {\n span.setAction(\"keywords#getKeywordsSuggestion\");\n span.setTags({\n keywords: keywords.join(\";\"),\n });\n });\n }\n return [];\n }\n};\n\nexport const getKeywordSuggestionsByContent = async (\n requestData: {\n title: string;\n request_solutions: string[];\n request_requirements: {\n description: string;\n allowAttachments: boolean;\n }[];\n requestable_type: RequestableType;\n requestable: {\n background: string;\n looking_for: string;\n };\n },\n keywordType: KeywordType\n) => {\n const response = await api.get(\n suggestions_keywords_path({\n request_data: requestData,\n keyword_type: keywordType,\n })\n );\n return response.data.suggestions;\n};\n","import {\n MessageAttachmentPartial,\n MessageThreadLookupResponse,\n MessageThreadsShowResponse,\n} from \"@tsTypes/index\";\nimport { MessageThreadsIndexResponse } from \"@tsTypes/message_threads\";\nimport { ProposalyType } from \"@tsTypes/proposaly\";\nimport { MessageAttachment } from \"@tsTypes/schema\";\nimport { Dispatch, SetStateAction } from \"react\";\nimport { InboxFilterOptions } from \"src/views/Inbox/Sidebar/Sidebar\";\nimport request from \"./request\";\n\nexport type MessageAttachmentAsJson = MessageAttachment & {\n file_url: string;\n thumbnail_url: string;\n download_url: string;\n};\n\nexport const getMessageThreads = async (\n options: InboxFilterOptions\n): Promise<MessageThreadsIndexResponse> => {\n const response = await request.get(\"/message_threads\", {\n params: {\n options: {\n sort_by: options.sortBy,\n search_filter: options.searchFilter,\n message_type_filter: options.requestIdFilter,\n page_number: options.pageNumber,\n },\n },\n });\n\n return response.data;\n};\n\nexport const getMessages = async (messageThreadId: number): Promise<MessageThreadsShowResponse> => {\n const response = await request.get(`/message_threads/${messageThreadId}`);\n\n return response.data;\n};\n\nexport const addMessageToThread = async ({\n messageThreadId,\n content,\n attachmentIds,\n}: {\n messageThreadId: number;\n content: string;\n attachmentIds: number[];\n}) => {\n const response = await request.post(`/message_threads/${messageThreadId}/add_message`, {\n message_thread_id: messageThreadId,\n content,\n attachment_ids: attachmentIds,\n source: window.location.pathname,\n });\n\n return response.data;\n};\n\nexport const setDraftMessage = async ({\n proposalyId,\n proposalyType,\n content,\n attachmentIds,\n}: {\n proposalyId: number;\n proposalyType: ProposalyType;\n content: string;\n attachmentIds: number[];\n}) => {\n const response = await request.post(`/draft_messages`, {\n proposaly_id: proposalyId,\n proposaly_type: proposalyType,\n content,\n attachment_ids: attachmentIds,\n });\n\n return response.data;\n};\n\nexport const getDraftMessage = async ({\n proposalyId,\n proposalyType,\n}: {\n proposalyId: number;\n proposalyType: ProposalyType;\n}): Promise<\n | undefined\n | {\n id: number;\n content: number;\n message_attachments: MessageAttachmentPartial[];\n }\n> => {\n try {\n const response = await request.get(`/draft_messages`, {\n params: {\n proposaly_id: proposalyId,\n proposaly_type: proposalyType,\n },\n });\n\n return response.data;\n } catch (error) {\n if (error.response?.status === 404) {\n return undefined;\n }\n throw error;\n }\n};\n\n// Returns message_thread and messages or undefined if no message thread exists\nexport const getMessageThreadByUserProposal = async ({\n userId,\n proposalyType,\n proposalyId,\n}: {\n userId: number;\n proposalyType: ProposalyType;\n proposalyId: number;\n}): Promise<MessageThreadLookupResponse | undefined> => {\n try {\n const response = await request.get(`/message_threads/lookup`, {\n params: {\n user_id: userId,\n proposaly_type: proposalyType,\n proposaly_id: proposalyId,\n },\n });\n return response.data;\n } catch (error) {\n if (error.response?.status === 404) {\n return undefined;\n }\n\n throw error;\n }\n};\n\nexport const getMessageThreadByRecipients = async ({\n scientistUserId,\n recipientUserId,\n}): Promise<MessageThreadLookupResponse | undefined> => {\n try {\n const response = await request.get(\"/message_threads/lookup\", {\n params: {\n scientist_user_id: scientistUserId,\n recipient_user_id: recipientUserId,\n },\n });\n return response?.data;\n } catch (error) {\n if (error.response?.status === 404) {\n return undefined;\n }\n\n throw error;\n }\n};\n\nexport const createMessageThread = async ({\n proposalyType,\n proposalyId,\n userId,\n content,\n attachmentIds,\n}: {\n proposalyType?: ProposalyType;\n proposalyId?: number;\n userId: number;\n content: string;\n attachmentIds: number[];\n}): Promise<MessageThreadsShowResponse> => {\n const response = await request.post(`/message_threads`, {\n proposaly_type: proposalyType,\n proposaly_id: proposalyId,\n user_id: userId,\n content,\n attachment_ids: attachmentIds,\n });\n return response.data;\n};\n\nexport const uploadAttachment = async (\n file: File,\n abortSignal: AbortSignal,\n setUploadPercentage: Dispatch<SetStateAction<number | undefined>>\n): Promise<MessageAttachmentAsJson | undefined> => {\n try {\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append(\"filename\", file.name);\n const response = await request.post(\"/message_attachments\", formData, {\n signal: abortSignal,\n onUploadProgress: (progressEvent) => {\n const uploadPercentage = (progressEvent.loaded / progressEvent.total) * 100;\n setUploadPercentage(uploadPercentage);\n },\n });\n\n return response.data;\n } catch (error) {\n if (!abortSignal.aborted) {\n throw error;\n }\n }\n};\n","import { FEATURE_FLAGS } from \"@constants\";\nimport { authenticityToken } from \"@utils/requests\";\nimport axios, { AxiosError } from \"axios\";\nimport { toast } from \"react-toastify\";\n\nexport const DEFAULT_RETRY_COUNT = 3;\n\nconst api = axios.create({\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n \"X-CSRF-Token\": authenticityToken()!,\n },\n});\n\n// Redirect to reauthenticate.\nif (FEATURE_FLAGS.SESSION_TIMEOUT) {\n api.interceptors.response.use(\n (res) => res,\n (error: AxiosError) => {\n if (error.response?.status !== 401) {\n throw error;\n }\n toast.error(\"You have been logged out. Please login again.\");\n window.location.href = \"/login\";\n }\n );\n}\n\nexport default api;\n","import {\n request_path,\n requests_path,\n review_system_proposals_request_for_expert_proposals_path,\n review_system_proposals_request_for_startup_proposals_path,\n} from \"@routes/routes\";\nimport { ProposalReviewStatus } from \"@tsTypes/__generated__/enums/proposal_review_status\";\nimport {\n AddReviewersResponse,\n CommercialApplicationPageRequestsResponse,\n MarketplaceRequestsResponse,\n RequestsShowResponse,\n ReviewerDashboardRequestsResponse,\n SponsorDropdownRequest,\n SponsorDropdownRequestsResponse,\n} from \"@tsTypes/index\";\nimport { ReviewSystemProposalsResponse } from \"@tsTypes/proposals/review_system_proposals\";\nimport {\n RequestPartnerTypes,\n RequestProposalSortBy,\n RequestProposalSortDirection,\n RequestableType,\n} from \"@tsTypes/requests\";\nimport { default as api } from \"./request\";\n\nexport const getRequest = async (slug: string): Promise<RequestsShowResponse> => {\n const response = await api.get(request_path(slug));\n return response.data;\n};\n\nexport const getRequestsForReviewerDashboard =\n async (): Promise<ReviewerDashboardRequestsResponse> => {\n const response = await api.get(requests_path(), {\n params: {\n for_reviewer_dashboard: true,\n },\n });\n return response.data;\n };\n\nexport const toggleRequestEnabled = async (\n requestId: number,\n shouldEnable: boolean\n): Promise<number> => {\n const response = await api.put(request_path(requestId), {\n enabled: shouldEnable,\n });\n return response.data.request_id;\n};\n\nexport const getMarketplaceRequests = async (\n {\n searchFilter,\n requestTypesFilter,\n partnerTypesFilter,\n }: {\n searchFilter: string[];\n requestTypesFilter: RequestableType[];\n partnerTypesFilter: RequestPartnerTypes[];\n } = {\n searchFilter: [],\n requestTypesFilter: [],\n partnerTypesFilter: [],\n }\n): Promise<MarketplaceRequestsResponse> => {\n const response = await api.get(requests_path(), {\n params: {\n for_marketplace: true,\n options: {\n search_filter: searchFilter,\n request_type_filter: requestTypesFilter,\n partner_type_filter: partnerTypesFilter,\n },\n },\n });\n if (!response) return { requests: [], scores: [] };\n return response.data;\n};\n\nexport const getCommercialApplicationPageRequests = async (\n commercialApplicationId: number,\n pageNum: number\n): Promise<CommercialApplicationPageRequestsResponse> => {\n const response = await api.get(requests_path(), {\n params: {\n commercial_application_id: commercialApplicationId,\n page_num: pageNum,\n },\n });\n\n return response.data;\n};\n\nexport const getRequestsForSponsorDropdowns = async (\n filterByReviewTeamAccess = false\n): Promise<SponsorDropdownRequestsResponse> => {\n const response = await api.get(requests_path(), {\n params: {\n for_sponsor_dropdowns: true,\n filter_by_review_team_access: filterByReviewTeamAccess,\n },\n });\n return response.data;\n};\n\nexport const getExpertRequests = async (): Promise<SponsorDropdownRequestsResponse> => {\n const response = await api.get(requests_path(), {\n params: {\n for_expert: true,\n },\n });\n return response.data;\n};\n\nexport const addReviewers = async ({\n requestId,\n emails,\n role,\n message,\n}: {\n requestId: number;\n emails: string[];\n role: string;\n message?: string;\n}): Promise<AddReviewersResponse> => {\n const response = await api.post(`/requests/add_reviewers`, {\n request_id: requestId,\n emails,\n role,\n message,\n });\n\n return response.data;\n};\n\nexport const getRequestProposalsForReviewSystem = async (\n request: SponsorDropdownRequest | null,\n status: number | ProposalReviewStatus,\n options: {\n proposalSlug: string | null;\n searchFilter: string;\n countryFilter: string[];\n organizationTypeFilter: string[];\n organizationNameFilter: string[];\n requestSolutionsFilter: string[];\n trlFilter: number[];\n evaluationStatusFilter: string[];\n bookmarkedOnlyFilter: boolean;\n criterionLeadersOnlyFilter: boolean;\n sortBy?: RequestProposalSortBy;\n sortDirection?: RequestProposalSortDirection;\n }\n): Promise<ReviewSystemProposalsResponse> => {\n let requestPath = \"\";\n switch (request?.requestable_type) {\n case RequestableType.RFP:\n case RequestableType.OPEN_CALL: {\n requestPath = \"/proposals\";\n break;\n }\n case RequestableType.REQUEST_FOR_STARTUP: {\n requestPath = review_system_proposals_request_for_startup_proposals_path();\n break;\n }\n case RequestableType.REQUEST_FOR_EXPERT: {\n requestPath = review_system_proposals_request_for_expert_proposals_path();\n break;\n }\n default: {\n throw new Error(\"Invalid request\");\n }\n }\n\n const response = await api.get(requestPath, {\n params: {\n is_for_review_system: true,\n request_id: request.id,\n status,\n proposal_slug: options.proposalSlug,\n search_filter: options.searchFilter,\n country_filter: options.countryFilter,\n organization_type_filter: options.organizationTypeFilter,\n organization_name_filter: options.organizationNameFilter,\n request_solutions_filter: options.requestSolutionsFilter,\n trl_filter: options.trlFilter,\n evaluation_status_filter: options.evaluationStatusFilter,\n bookmarked_only_filter: options.bookmarkedOnlyFilter,\n criterion_leaders_only_filter: options.criterionLeadersOnlyFilter,\n sort_by: options.sortBy ?? \"submission_date\",\n sort_direction: options.sortDirection ?? \"desc\",\n },\n });\n\n return response.data;\n};\n\nexport const setRequestFeedbackDeadline = async (\n requestId: number,\n deadline: Date\n): Promise<string> => {\n const response = await api.put(request_path(requestId), {\n feedback_deadline: deadline,\n });\n return response.data.feedback_deadline;\n};\n\nexport const getCanSubmitProposal = async (requestId: number): Promise<boolean> => {\n const response = await api.post(`/requests/${requestId}/can_submit_proposal`);\n return response.data.can_submit;\n};\n","import { tabbed_marketplace_path } from \"@routes/routes\";\n\nexport const formatPathForRouter = (url) => {\n return url.toString().replace(\"(.:format)\", \"\");\n};\n\n// Helper to manage Flipper-conditional marketplace route\nexport const marketplacePath = (tab = \"requests\", options = {}) => {\n return tabbed_marketplace_path(tab, options);\n};\n","/* eslint no-unused-vars: 0 */\n\n/**\n * This file was automatically generated by ruby_to_typescript.rake.\n * Do not modify it by hand.\n */\nexport enum SegmentEventObject {\n Company = \"Company\",\n InvitedUser = \"InvitedUser\",\n Message = \"Message\",\n Notification = \"Notification\",\n NotificationSettings = \"NotificationSettings\",\n Proposal = \"Proposal\",\n ProposalDiscussion = \"ProposalDiscussion\",\n Request = \"Request\",\n RequestComment = \"RequestComment\",\n RequestForStartupProposal = \"RequestForStartupProposal\",\n RequestForExpertProposal = \"RequestForExpertProposal\",\n User = \"User\",\n UserFollowedRequest = \"UserFollowedRequest\",\n}\n","/* eslint no-unused-vars: 0 */\n\n/**\n * This file was automatically generated by ruby_to_typescript.rake.\n * Do not modify it by hand.\n */\nexport enum SegmentEventName {\n Abandon = \"Abandon\",\n Accept = \"Accept\",\n AddToNetwork = \"AddToNetwork\",\n Advance = \"Advance\",\n Bounce = \"Bounce\",\n ClaimProfile = \"ClaimProfile\",\n Click = \"Click\",\n CompleteOnboarding = \"CompleteOnboarding\",\n Create = \"Create\",\n Decline = \"Decline\",\n Downvote = \"Downvote\",\n Follow = \"Follow\",\n Invite = \"Invite\",\n Login = \"Login\",\n Logout = \"Logout\",\n SendMessage = \"SendMessage\",\n ReceiveMessage = \"ReceiveMessage\",\n Open = \"Open\",\n ReceiveAnswer = \"ReceiveAnswer\",\n Refer = \"Refer\",\n Reply = \"Reply\",\n RequestToJoinNetwork = \"RequestToJoinNetwork\",\n Resubscribe = \"Resubscribe\",\n Review = \"Review\",\n Search = \"Search\",\n Send = \"Send\",\n Share = \"Share\",\n SpamComplaint = \"SpamComplaint\",\n Submit = \"Submit\",\n Unfollow = \"Unfollow\",\n Unsubscribe = \"Unsubscribe\",\n Update = \"Update\",\n UpdateKeywords = \"UpdateKeywords\",\n UpdateInterest = \"UpdateInterest\",\n Upvote = \"Upvote\",\n View = \"View\",\n}\n","/* eslint no-unused-vars: 0 */\n\n/**\n * This file was automatically generated by ruby_to_typescript.rake.\n * Do not modify it by hand.\n */\nexport enum TourIdentifier {\n PROPOSAL_REVIEW_SYSTEM_2024_01_22 = \"PROPOSAL_REVIEW_SYSTEM_2024_01_22\",\n PROPOSAL_EVALUATION_2024_02_29 = \"PROPOSAL_EVALUATION_2024_02_29\",\n SCIENTIST_NETWORK_2024_03_01 = \"SCIENTIST_NETWORK_2024_03_01\",\n PROPOSAL_REVIEW_SYSTEM_FEEDBACK_DEADLINE_V2_2024_10_31 = \"PROPOSAL_REVIEW_SYSTEM_FEEDBACK_DEADLINE_V2_2024_10_31\",\n PROPOSAL_EVALUATION_SCORECARD_FORM_2024_11_06 = \"PROPOSAL_EVALUATION_SCORECARD_FORM_2024_11_06\",\n PROPOSAL_EVALUATION_SIMPLE_FORM_2024_11_06 = \"PROPOSAL_EVALUATION_SIMPLE_FORM_2024_11_06\",\n PROPOSAL_REVIEW_SYSTEM_FILTER_2024_11_06 = \"PROPOSAL_REVIEW_SYSTEM_FILTER_2024_11_06\",\n}\n","import { Name } from \"@tsTypes/__generated__/enums/requests/feedback_deadline_reminder/name\";\nimport { Stage } from \"@tsTypes/__generated__/enums/requests/feedback_deadline_reminder/stage\";\nimport { RequestForExpertsShowResponse } from \"./request_for_experts/show\";\nimport { RequestForStartupsShowResponse } from \"./request_for_startups/show\";\nimport { RfpPageRequest } from \"./rfps/rfp_page\";\n\n// NOTE: Also update config/initializers/request_custom_data_data_type.rb\nexport interface RequestCustomData {\n is_from_pepsico_procurement: boolean;\n}\n\nexport enum RequestableType {\n OPEN_CALL = \"OpenCall\",\n RFP = \"Rfp\",\n REQUEST_FOR_STARTUP = \"RequestForStartup\",\n REQUEST_FOR_EXPERT = \"RequestForExpert\",\n}\n\nexport enum LaunchableRequestStatus {\n ACTIVE = \"ACTIVE\",\n CLOSED = \"CLOSED\",\n COMING_SOON = \"COMING_SOON\",\n IN_EXTENSION = \"IN_EXTENSION\",\n}\n\nexport enum RequestFeedbackDeadlineStatus {\n NOT_APPLICABLE = \"NOT_APPLICABLE\",\n NEEDS_DEADLINE = \"NEEDS_DEADLINE\",\n BEFORE_DEADLINE = \"BEFORE_DEADLINE\",\n DEADLINE_APPROACHING = \"DEADLINE_APPROACHING\",\n PAST_DEADLINE = \"PAST_DEADLINE\",\n}\n\nexport enum RequestPartnerTypes {\n ACADEMIC_RESEARCHERS = \"ACADEMIC_RESEARCHERS\",\n STARTUPS = \"STARTUPS\",\n SUPPLIERS = \"SUPPLIERS\",\n}\n\nexport enum RequestProposalSortBy {\n SUBMISSION_DATE = \"submission_date\",\n NAME = \"name\",\n TRL = \"trl\",\n SCORE = \"score\",\n}\n\nexport type RequestProposalSortDirection = \"asc\" | \"desc\";\n\n// Keep in sync with app/structs/requests/feedback_deadline_reminder.rb\nexport type FeedbackDeadlineReminder = {\n stage: Stage;\n name: Name;\n title: string;\n text: string;\n deadline_date?: string;\n};\n\nexport type RequestUnion =\n | RfpPageRequest\n | RequestForExpertsShowResponse\n | RequestForStartupsShowResponse;\n","export enum RfpPartnershipModel {\n SPONSORED_RESEARCH = \"SPONSORED_RESEARCH\",\n GIFT = \"GIFT\",\n CO_DEVELOPMENT = \"CO_DEVELOPMENT\",\n SUPPLY_PURCHASE = \"SUPPLY_PURCHASE\",\n LICENSING = \"LICENSING\",\n MATERIAL_TRANSFER = \"MATERIAL_TRANSFER\",\n CAPSTONE_PROJECT = \"CAPSTONE_PROJECT\",\n CONSULTING_PROJECT = \"CONSULTING_PROJECT\",\n}\n\nexport const PARTNERSHIP_MODEL_LABELS = {\n [RfpPartnershipModel.SPONSORED_RESEARCH]: \"Sponsored research\",\n [RfpPartnershipModel.GIFT]: \"Gift (Unrestricted grant)\",\n [RfpPartnershipModel.CO_DEVELOPMENT]: \"Co-development\",\n [RfpPartnershipModel.SUPPLY_PURCHASE]: \"Supply/purchase\",\n [RfpPartnershipModel.LICENSING]: \"Licensing\",\n [RfpPartnershipModel.MATERIAL_TRANSFER]: \"Material transfer\",\n [RfpPartnershipModel.CAPSTONE_PROJECT]: \"Capstone project\",\n [RfpPartnershipModel.CONSULTING_PROJECT]: \"Consulting project\",\n};\n\nexport enum RfpBenefitType {\n // Funding benefits\n SPONSORED_RESEARCH = \"sponsored_research\", // Only for RFP\n GIFT = \"gift\", // Only for RFP and RFE\n INVESTMENT = \"investment\", // Only for RFS\n PAYMENT = \"payment\", // Only for RFE\n // Non-monetary benefits\n EXPERTISE = \"expertise\",\n TOOLS_AND_TECHNOLOGY = \"tools_and_technology\",\n COMPOUNDS_AND_REAGENTS = \"compounds_and_reagents\",\n FACILITIES_AND_SERVICES = \"facilities_and_services\",\n DATA = \"data\",\n NETWORKING = \"networking\",\n EARLY_ACCESS = \"early_access\", // Only for RFE\n MARKET_ACCESS = \"market_access\", // Only for RFP and RFS\n // Deprecated- we want to still display existing benefits, but we will not be adding new ones of these types\n SERVICES_AGREEMENT = \"services_agreement\",\n EXPOSURE = \"exposure\",\n}\n\nexport enum RfpStatus {\n ACTIVE = \"ACTIVE\",\n CLOSED = \"CLOSED\",\n COMING_SOON = \"COMING_SOON\",\n IN_EXTENSION = \"IN_EXTENSION\",\n}\n","export enum SponsorRole {\n SME = \"Subject Matter Expert\",\n EXTERNAL_INNOVATION = \"External Innovation\",\n C_LEVEL = \"C-Level\",\n CORPORATE_DEVELOPMENT = \"Corporate Development\",\n VENTURE_CAPITAL = \"Venture Capital\",\n}\n\nexport enum SponsorLicenseType {\n PREMIUM = \"premium\",\n STANDARD = \"standard\",\n}\n","import { AnyTypeCurrentUser } from \"./users/show\";\n\nexport enum UserRole {\n SCIENTIST = 0,\n SPONSOR = 1,\n UNIVERSITY_ADMIN = 2,\n}\n\nexport type LoggedOutUser = {\n profile_info: Record<string, never>;\n};\n\n// Note: We exclude UnfinishedOnboardingCurrentUser because those users will be redirected to onboarding when accessing the app\nexport type AnyUser = LoggedOutUser | AnyTypeCurrentUser;\n","import { BLOCKED_EMAIL_DOMAINS } from \"@constants\";\nimport { SegmentEventName } from \"@tsTypes/__generated__/enums\";\nimport { MouseEvent, lazy, useRef } from \"react\";\n\ndeclare global {\n interface Window {\n __skipJsPageTitleGeneration: boolean;\n analytics: any;\n hj: any;\n Canny: any;\n }\n const analytics: any;\n const hj: any;\n const Canny: any;\n}\n\nexport const isAsyncFunction = (fn) => {\n if (!fn) {\n return false;\n }\n\n if (fn.constructor.name === \"AsyncFunction\") {\n return true;\n }\n return false;\n};\n\nexport const getUserInfo = (currentUser) => {\n if (!currentUser) return {};\n\n const userInfo = Object.assign({}, currentUser);\n const profileInfo = Object.assign({}, currentUser.profile_info);\n\n profileInfo.profile_role = profileInfo?.role;\n profileInfo.profile_verified = profileInfo?.verified;\n\n delete userInfo.profile_info;\n delete userInfo.image;\n delete userInfo.verification_code;\n\n delete profileInfo.id;\n delete profileInfo.user_id;\n delete profileInfo.updated_at;\n delete profileInfo.created_at;\n delete profileInfo.role;\n delete profileInfo.followed_companies_info;\n delete profileInfo.followed_research_interests;\n delete profileInfo.followed_rfp_programs;\n delete profileInfo.followed_request_ids;\n delete profileInfo.proposals;\n delete profileInfo.verified;\n\n const userProperties = {\n ...userInfo,\n ...profileInfo,\n };\n\n return userProperties;\n};\n\n/**\n * Helper singleton that does nothing for methods that require a function input.\n */\nexport const emptyFunction = () => {};\n\nexport const identify = (currentUser) => {\n window?.analytics?.identify(currentUser.id, getUserInfo(currentUser));\n if ([\"development\", \"staging\"].some((s) => gon?.global?.env?.includes(s))) {\n console.debug(`Analytics: identify() %o`, getUserInfo(currentUser));\n }\n};\n\nexport const page = () => {\n window?.analytics?.page();\n if ([\"development\", \"staging\"].some((s) => gon?.global?.env?.includes(s))) {\n console.debug(`Analytics: page()`);\n }\n};\n\n/**\n * TODO: Replace eventName with SegmentEventName once all callers have been migrated.\n */\nexport const track = (eventName: string, info: any = {}) => {\n if (eventName === SegmentEventName.View || eventName === SegmentEventName.Click) {\n info.current_url = window.location.href;\n }\n\n window?.analytics?.track(eventName, info);\n if ([\"development\", \"staging\"].some((s) => gon?.global?.env?.includes(s))) {\n console.debug(`Analytics: track(%s) %o`, eventName, info);\n }\n};\n\nexport const waypoint = (eventName: string) => {\n window?.hj?.(\"event\", eventName);\n};\n\nexport const isJson = (str) => {\n try {\n JSON.parse(str);\n } catch (e) {\n return false;\n }\n return true;\n};\n\nexport const setSearchParam = (history, name, value, push = false) => {\n const searchParams = new URLSearchParams(location.search);\n searchParams.set(name, value);\n\n if (push) {\n history.push({\n pathname: location.pathname,\n search: searchParams.toString(),\n });\n } else {\n history.replace({\n pathname: location.pathname,\n search: searchParams.toString(),\n });\n }\n};\n\nexport const deleteSearchParam = (history, name) => {\n const searchParams = new URLSearchParams(location.search);\n if (searchParams.has(name)) {\n searchParams.delete(name);\n history.replace({ search: searchParams.toString() });\n }\n};\n\nexport const usedPersonalEmail = (email) => {\n for (const domain of BLOCKED_EMAIL_DOMAINS) {\n if (email.endsWith(`@${domain}`)) {\n return true;\n }\n }\n return false;\n};\n\nexport const debounce = (functionToDebounce, delay = 300) => {\n let timer;\n\n const debounceRef = useRef((...args) => {\n clearTimeout(timer);\n\n timer = setTimeout(() => functionToDebounce(...args), delay);\n });\n\n return debounceRef.current;\n};\n\n/**\n * @deprecated - Move to Rails https://www.notion.so/halodotscience/Move-page-title-setting-to-Rails-side-9c6592da85e644dca8fea1fb413c03c1?pvs=4\n */\nexport const setPageTitle = (pathname: string): void => {\n if (window.__skipJsPageTitleGeneration) {\n return;\n }\n\n const format = (param: string, ignoreNum = false): string =>\n param\n .replace(/-/g, \" \")\n .split(\" \")\n .flatMap((word: string): string[] => {\n if (parseInt(word) && ignoreNum) return [];\n return [word.charAt(0).toUpperCase() + word.slice(1)];\n })\n .join(\" \");\n\n const path = pathname.split(/[/,?]+/);\n let title = \"Funding Opportunities with Industry\";\n\n if (path[1] === \"company\" && path[2]) {\n title = `Funding Opportunities with ${format(path[2], false)}`;\n }\n if (path[1] === \"research\" && path[2] && !path[3]) {\n title = `Funding Opportunities in ${format(path[2])}`;\n }\n if (path[1] === \"research\" && path[2] && path[3]) {\n // Rfp pages set their own title\n return;\n }\n if (path[1] === \"profile\" && path[2]) {\n const formattedName = format(path[2].slice(0, path[2].lastIndexOf(\"-\")));\n title = `${formattedName}'s profile`;\n }\n\n document.title = title;\n};\n\n// Fix for ChunkLoadError\n// https://gist.github.com/raphael-leger/4d703dea6c845788ff9eb36142374bdb\nexport const lazyWithRetry = (componentimport) =>\n lazy(async () => {\n const pageHasAlreadyBeenForceRefreshed = JSON.parse(\n window.localStorage?.getItem(\"page-has-been-force-refreshed\") ?? \"false\"\n );\n\n try {\n const component = await componentimport();\n\n window.localStorage?.setItem(\"page-has-been-force-refreshed\", \"false\");\n\n return component;\n } catch (error) {\n if (!pageHasAlreadyBeenForceRefreshed) {\n // Assuming that the user is not on the latest version of the application.\n // Let's refresh the page immediately.\n window.localStorage?.setItem(\"page-has-been-force-refreshed\", \"true\");\n return window.location.reload();\n }\n\n // The page has already been reloaded\n // Assuming that user is already using the latest version of the application.\n // Let's let the application crash and raise the error.\n throw error;\n }\n });\n\nexport const stopPropagation = (event: MouseEvent) => event.stopPropagation();\n\nexport const compactStringArray = (array: string[]): string[] => {\n if (typeof array !== \"object\") return [];\n\n const compactedArray = array.filter((item) => typeof item === \"string\" && item.trim().length > 0);\n\n return compactedArray;\n};\n\nexport const getArrayFromRubyRange = (range: string): [number, number] => {\n if (!range?.includes(\"...\")) throw new Error(\"Invalid Ruby range\");\n\n return [Number(range[0]), Number(range.split(\"...\")[1]) - 1];\n};\n\nexport const getRubyRangeFromArray = (array: [number, number]): string => {\n return `${array[0]}...${array[1] + 1}`;\n};\n\n// Currently only works with scalar members\nexport const areUnorderedArraysEqual = (a: any[], b: any[]): boolean => {\n if (a.length !== b.length) return false;\n\n a.sort();\n b.sort();\n\n for (let i = 0; i < a.length; i += 1) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n};\n","import Appsignal from \"@appsignal/javascript\";\nimport { CREDENTIALS, ENV } from \"@constants\";\n\nimport { plugin as breadcrumbsPlugin } from \"@appsignal/plugin-breadcrumbs-console\";\nimport { plugin as networkBreadcrumbsPlugin } from \"@appsignal/plugin-breadcrumbs-network\";\nimport { plugin as pathDecoratorPlugin } from \"@appsignal/plugin-path-decorator\";\nimport { plugin as windowEventsPlugin } from \"@appsignal/plugin-window-events\";\nimport toast from \"@components/Toast\";\n\nconst appsignal = new Appsignal({\n key: CREDENTIALS.APPSIGNAL_FRONTEND_API_KEY,\n ignoreErrors: [/Can't verify CSRF token authenticity\\./, /Illegal invocation/],\n revision: ENV.HEROKU_SLUG_COMMIT,\n});\n\nappsignal.use(breadcrumbsPlugin);\nappsignal.use(networkBreadcrumbsPlugin);\nappsignal.use(windowEventsPlugin);\nappsignal.use(pathDecoratorPlugin);\n\nappsignal.addDecorator((span) => {\n return span.setTags({ currentUserId: gon.current_user_id, url: window.location.href });\n});\n\nif (gon?.global?.env === \"development\") {\n appsignal.addOverride((span: any) => {\n console.error(\"Appsignal error: \", span._data);\n toast.error(\"Appsignal error reported. Printed details to console.\");\n return span;\n });\n}\n\nexport default appsignal;\n","import type { DropdownOption } from \"@components/library/Dropdowns/DropdownOption\";\nimport { UserOption } from \"@components/library/Dropdowns/UserDropdown\";\nimport { CompanyMember } from \"@tsTypes/users/_company_member\";\n\nexport const getOptionFromValue = (value: string | undefined | null): DropdownOption | null =>\n value\n ? {\n value: value,\n label: value,\n }\n : null;\n\nexport const getValueFromOption = (option: DropdownOption | null): string | undefined =>\n option?.value ?? undefined;\n\nexport const generateEmailDropdownOptions = (\n companyMembers: CompanyMember[],\n excludedEmails: string[] = [],\n onlyLicensed = false\n): UserOption[] => {\n if (companyMembers.length > 0) {\n return companyMembers.flatMap((sponsorUser) => {\n // Skip if missing info\n if (\n !(sponsorUser.email && sponsorUser.first_name && sponsorUser.last_name && sponsorUser.image)\n ) {\n return [];\n }\n\n // Skip if user is already in the list\n if (excludedEmails.some((excludedEmail) => excludedEmail === sponsorUser.email)) {\n return [];\n }\n\n // Skip if only showing premium and user is not premium\n if (onlyLicensed && !sponsorUser.profile_info.license) {\n return [];\n }\n\n return {\n value: sponsorUser.email,\n label: sponsorUser.first_name + \" \" + sponsorUser.last_name,\n user: {\n name: sponsorUser.first_name + \" \" + sponsorUser.last_name,\n image: {\n medium: {\n url: sponsorUser.image.medium.url,\n },\n },\n id: sponsorUser.id,\n email: sponsorUser.email,\n profile_info: {\n isAdmin: sponsorUser.profile_info.is_admin,\n license: sponsorUser.profile_info.license,\n },\n },\n };\n });\n }\n\n return [];\n};\n\n// Returns array of dropdown options in descending order\nexport const getYearOptions = (top = new Date().getFullYear(), bottom = 1950): DropdownOption[] => {\n return Array.from({ length: top - bottom + 1 }, (_, i) => top - i).map((year) => ({\n label: String(year),\n value: String(year),\n }));\n};\n","import i18n from \"@locales\";\nimport { ShowSubscription } from \"@tsTypes/subscriptions/show\";\nimport { ReactElement } from \"react\";\nimport ReactDOMServer from \"react-dom/server\";\nimport { Link } from \"react-router-dom\";\n\nexport const t = (\n scope: string | string[],\n interpolations?: { [k: string]: string | number | null }\n): string => {\n const finalScope = typeof scope === \"string\" ? scope : scope[scope.length - 1];\n if (finalScope.endsWith(\"_html\"))\n throw new Error(\"HTML interpolation not allowed. Use t_html instead.\");\n\n return i18n.t(scope, interpolations);\n};\n\nexport const scientistNetworkName = (subscription: ShowSubscription | null) => {\n if (subscription?.features.global_network_search) {\n return t(\"models.company_network_scientist.scientist_public_network_name\");\n }\n return t(\"models.company_network_scientist.scientist_network_name\");\n};\n\n// Custom wrapper around t that allows for safe HTML interpolation of _html suffixed scopes\nexport const t_html = (\n scope: string | string[],\n interpolations?: { [k: string]: string | number | ReactElement | null }\n): ReactElement => {\n const finalScope = typeof scope === \"string\" ? scope : scope[scope.length - 1];\n if (!finalScope.endsWith(\"_html\")) throw new Error(\"No HTML interpolation. Use t instead.\");\n\n const escapedInterpolations = interpolations\n ? Object.fromEntries(\n Object.entries(interpolations).map(([k, v]) => [k, ReactDOMServer.renderToString(v as any)])\n )\n : {};\n\n // eslint-disable-next-line react/no-danger\n return <span dangerouslySetInnerHTML={{ __html: i18n.t(scope, escapedInterpolations) }} />;\n};\n\nexport const t_link = (\n scope: string | string[],\n link: Link | HTMLAnchorElement,\n interpolations?: { [k: string]: string | number | null }\n): ReactElement => {\n if (!link || (!(\"to\" in link.props) && !(link.type !== \"a\")))\n throw new Error(\"`link` must be a Link or anchor element\");\n\n const finalScope = typeof scope === \"string\" ? scope : scope[scope.length - 1];\n\n const translation = finalScope.endsWith(\"_html\")\n ? t_html(scope, interpolations).props.dangerouslySetInnerHTML.__html\n : t(scope, interpolations);\n\n if (!translation.includes('[missing \"%{link}\" value]'))\n throw new Error(\"Translation must include %{link}\");\n\n const parts = translation.split('[missing \"%{link}\" value]');\n\n return (\n <span>\n {parts[0]}\n {link}\n {parts[1]}\n </span>\n );\n};\n","// Generates a redux action with type only (no payload)\nexport const emptyActionGenerator = (type) => () => ({ type });\n\n// Generates a redux action with type and payload\nexport const payloadActionGenerator = (type) => (payload) => ({ type, payload });\n","import toast from \"@components/Toast\";\nimport { t } from \"@utils/i18n\";\n\nexport const authenticityToken = (): string | undefined => {\n const token = document.querySelector('meta[name=\"csrf-token\"]');\n if (token && token instanceof window.HTMLMetaElement) {\n return token.content;\n }\n return undefined;\n};\n\nexport const getCookie = (name) => {\n const v = document.cookie.match(\"(^|;) ?\" + name + \"=([^;]*)(;|$)\");\n return v ? v[2] : null;\n};\n\nexport const getUrlParameter = (name) => {\n const trimmed = name.replace(/[[]/, \"\\\\[\").replace(/[\\]]/, \"\\\\]\");\n const regex = new RegExp(\"[\\\\?&]\" + trimmed + \"=([^&#]*)\");\n const results = regex.exec(location.search);\n return results === null ? \"\" : decodeURIComponent(results[1].replace(/\\+/g, \" \"));\n};\n\nexport const toastErrorHandler = (error, _variables?, _context?): void => {\n toast.error(\n t([\"error\", error.status ? \"default_with_code\" : \"default\"], { status: error.status })\n );\n};\n","import { RfpStatus } from \"@tsTypes/rfps\";\nimport { Request, Rfp } from \"@tsTypes/schema\";\nimport dayjs from \"dayjs\";\n\nexport const checkRfpCompanyHidden = (rfp, user) => {\n if (!rfp.company.company_name) {\n return true;\n }\n if (!rfp.confidential) {\n return false;\n }\n const rfpProposals = user.profile_info?.proposals?.filter(\n (proposal) => proposal.request_for_proposal_id === rfp.id\n );\n if (rfpProposals?.length) {\n for (const proposal of rfpProposals) {\n if (!checkRfpCompanyHiddenForProposal(rfp, proposal)) return false;\n }\n }\n return true;\n};\n\nexport const checkRfpCompanyHiddenForProposal = (rfp, proposal) => {\n if (!rfp?.confidential) {\n return false;\n }\n return true;\n};\n\n/**\n * @deprecated (justinpchang) Use getLaunchableRequestStatus instead\n */\nexport const getRfpStatus = (request) => {\n const isBeforeLaunchDate = dayjs().isBefore(request.requestable.launch_date ?? 0);\n const isPastDeadline =\n Boolean(request.requestable.deadline) && dayjs().isAfter(request.requestable.deadline ?? 0);\n\n if (isBeforeLaunchDate) return RfpStatus.COMING_SOON;\n if (request.enabled)\n if (isPastDeadline) return RfpStatus.IN_EXTENSION;\n else return RfpStatus.ACTIVE;\n return RfpStatus.CLOSED;\n};\n\nexport const getRfpStatusText = (request, { comingSoon, active, inExtension, pastDeadline }) => {\n switch (getRfpStatus(request)) {\n case RfpStatus.COMING_SOON: {\n return comingSoon;\n }\n case RfpStatus.ACTIVE: {\n return active;\n }\n case RfpStatus.IN_EXTENSION: {\n return inExtension;\n }\n case RfpStatus.CLOSED: {\n return pastDeadline;\n }\n default: {\n return null;\n }\n }\n};\n\nexport const sortRfps = <\n T extends Pick<Request, \"enabled\"> & {\n requestable: Pick<Rfp, \"display_priority\" | \"deadline\" | \"launch_date\"> &\n Record<string, unknown>;\n } & Record<string, unknown>\n>(\n rfps: T[],\n withDisplayPriority = false\n): T[] => {\n const sortByDisplayPriority = (_rfps: T[]) =>\n _rfps.sort(\n (a, b) =>\n b.requestable.display_priority - a.requestable.display_priority ||\n new Date(a.requestable.deadline!).getTime() - new Date(b.requestable.deadline!).getTime() ||\n new Date(a.requestable.launch_date!).getTime() -\n new Date(b.requestable.launch_date!).getTime()\n );\n\n const activeRfps = rfps.filter((rfp) => getRfpStatus(rfp) === RfpStatus.ACTIVE);\n if (withDisplayPriority) sortByDisplayPriority(activeRfps);\n else\n activeRfps.sort(\n (a, b) =>\n new Date(a.requestable.deadline!).getTime() - new Date(b.requestable.deadline!).getTime()\n );\n\n const comingSoonRfps = rfps.filter((rfp) => getRfpStatus(rfp) === RfpStatus.COMING_SOON);\n if (withDisplayPriority) sortByDisplayPriority(comingSoonRfps);\n else\n comingSoonRfps.sort(\n (a, b) =>\n new Date(a.requestable.launch_date!).getTime() -\n new Date(b.requestable.launch_date!).getTime()\n );\n\n const pastDeadlineRfps = rfps.filter((rfp) => getRfpStatus(rfp) === RfpStatus.IN_EXTENSION);\n if (withDisplayPriority) sortByDisplayPriority(pastDeadlineRfps);\n else\n pastDeadlineRfps.sort(\n (a, b) =>\n new Date(b.requestable.deadline!).getTime() - new Date(a.requestable.deadline!).getTime()\n );\n\n const inactiveRfps = rfps.filter((rfp) => getRfpStatus(rfp) === RfpStatus.CLOSED);\n if (withDisplayPriority) sortByDisplayPriority(inactiveRfps);\n else\n inactiveRfps.sort(\n (a, b) =>\n new Date(b.requestable.deadline!).getTime() - new Date(a.requestable.deadline!).getTime()\n );\n\n return [...activeRfps, ...comingSoonRfps, ...pastDeadlineRfps, ...inactiveRfps];\n};\n","import { COLORS, JS_FONTS } from \"@constants\";\nimport blueQuestionIcon from \"@images/icons/question_mark_blue.svg\";\nimport purpleQuestionIcon from \"@images/icons/question_mark_purple.svg\";\nimport { css, StyleSheet } from \"aphrodite/no-important\";\nimport { PureComponent } from \"react\";\nimport { Icon, Popup } from \"semantic-ui-react\";\n\nimport PropTypes from \"prop-types\";\n\nconst styles = StyleSheet.create({\n Tooltip: {\n height: \"15px\",\n position: \"relative\",\n right: \"2px\",\n top: \"-1px\",\n },\n Tooltip_popupContents: {\n ...JS_FONTS.REGULAR_3,\n padding: \"12px 16px\",\n },\n\n Tooltip_link: {\n color: COLORS.HALO_BLUE,\n \":hover\": {\n color: COLORS.HALO_BLUE,\n },\n },\n});\n\nconst popupStyles = {\n borderColor: COLORS.WHITE,\n maxWidth: \"280px\",\n borderRadius: 0,\n padding: 0,\n zIndex: \"1000000\",\n};\n\nconst mouseLeaveDelay = 175;\n\nclass Tooltip extends PureComponent {\n constructor(props) {\n super(props);\n\n this.state = {\n isOpen: false,\n };\n }\n\n toggle = (isOpen) => {\n return () => {\n this.setState({ isOpen });\n };\n };\n\n renderLearnMoreLink() {\n const { linkUrl, linkText } = this.props;\n\n return (\n <a href={linkUrl} target=\"_blank\" className={css(styles.Tooltip_link)} rel=\"noreferrer\">\n {linkText}\n </a>\n );\n }\n\n timeoutToggle = (isOpen, timeout = mouseLeaveDelay) => {\n return () => {\n clearTimeout(this.timeout);\n this.timeout = setTimeout(this.toggle(isOpen), timeout);\n };\n };\n\n renderTrigger = () => {\n const { customTrigger, iconColor, customTriggerStyle } = this.props;\n\n if (customTrigger) {\n const iconName = customTrigger === \"incomplete\" ? \"clock outline\" : \"pause circle outline\";\n return (\n <Icon\n name={iconName}\n className={customTriggerStyle}\n onMouseLeave={this.timeoutToggle(false)}\n />\n );\n }\n const questionIcon = iconColor === \"purple\" ? purpleQuestionIcon : blueQuestionIcon;\n\n return (\n <img\n src={questionIcon}\n className={css(styles.Tooltip)}\n onMouseLeave={this.timeoutToggle(false)}\n />\n );\n };\n\n render() {\n const { linkUrl, text, position } = this.props;\n\n return (\n <Popup\n hoverable\n className=\"Tooltip\"\n onMouseEnter={this.timeoutToggle(true, 0)}\n trigger={this.renderTrigger()}\n position={position || \"right center\"}\n open={this.state.isOpen}\n onClose={this.toggle(false)}\n onOpen={this.toggle(true)}\n style={popupStyles}\n >\n <div onMouseLeave={this.timeoutToggle(false)} className={css(styles.Tooltip_popupContents)}>\n {text} {linkUrl && this.renderLearnMoreLink()}\n </div>\n </Popup>\n );\n }\n}\n\nTooltip.propTypes = {\n text: PropTypes.string.isRequired,\n linkUrl: PropTypes.string,\n linkText: PropTypes.string,\n iconColor: PropTypes.string,\n position: PropTypes.string,\n};\n\nexport default Tooltip;\n","import Tooltip from \"./Tooltip\";\n\nexport default Tooltip;\n","import { COLORS, JS_FONTS } from \"@constants\";\nimport ReactMarkdown from \"react-markdown\";\nimport rehypeRaw from \"rehype-raw\";\nimport gfm from \"remark-gfm\";\nimport Tooltip from \"../components/Tooltip\";\nimport { compactStringArray } from \"./appUtils\";\n\nexport const renderNewlines = (text) =>\n text?.split(\"\\n\").map((m, i) => (\n <span key={i}>\n {i ? <br /> : <></>}\n {m}\n </span>\n ));\n\nexport const fixMarkdownNewlines = (text) => text?.trim().split(\"\\r\\n\").join(\" \\n\\n\");\n\nconst matchTooltip = (text) => {\n // searches for tooltips in the form of ????tooltip text ?learnmore=LINK_HERE????\n return text?.match(/\\?\\?\\?\\?(.*?)\\?\\?\\?\\?/s);\n};\n\nexport const withoutTooltip = (text) => {\n // remove all tooltip signifiers and contents (????<text>????)\n return text?.replace(/~~\\?\\?\\?\\?.*?\\?\\?\\?\\?~~/gs, \"\");\n};\n\nconst renderTooltip = (text) => {\n if (!matchTooltip(text)) {\n return <span />;\n }\n\n const toolTipString = matchTooltip(text) && matchTooltip(text)[1];\n const toolTipWithoutLink = toolTipString.replace(/\\?learnmore=.*/i, \"\");\n\n const linkMatch = toolTipString.match(/\\?learnmore=(.*)/i);\n const linkString = linkMatch && linkMatch[1];\n\n return (\n <span style={{ marginLeft: \"3px\", position: \"relative\" }}>\n <Tooltip text={toolTipWithoutLink} linkUrl={linkString} linkText=\"Learn more\" />\n </span>\n );\n};\n\n/**\n * Intentionally private so that the allowHTML cannot be set implicitly. You must use either\n * renderMarkdownText or renderMarkdownTextWithDangerousHTML.\n */\nconst _renderMarkdownText = (section: string | null, customStyle?, allowHtml = false) => {\n if (section?.length) {\n // markdown styles\n const styles = {\n heading: {\n marginTop: \"1em\",\n marginBottom: \"1em\",\n },\n p: {\n ...JS_FONTS.REGULAR_1,\n },\n li: {\n lineHeight: \"30px\",\n },\n ul: {\n marginLeft: \"18px\",\n width: \"100%\",\n ...JS_FONTS.REGULAR_1,\n },\n hr: {\n marginTop: \"45px\",\n marginBottom: \"45px\",\n borderTop: `2px solid ${COLORS.NEUTRAL_200}`,\n },\n bold: {\n fontWeight: 600,\n },\n img: {\n maxWidth: \"100%\",\n height: \"auto\",\n marginTop: \"1em\",\n marginBottom: \"1em\",\n },\n ...customStyle, // overwrite defaults\n };\n\n // split for tooltip here\n /* eslint-disable react/no-children-prop */\n return (\n <ReactMarkdown\n remarkPlugins={[gfm]}\n rehypePlugins={allowHtml ? [rehypeRaw] : []}\n disallowedElements={[\"code\", \"html\", \"pre\", \"table\", \"q\"]}\n components={{\n // update heading style\n h1: ({ node, ...props }) => {\n return <h3 style={styles.heading} {...props} />;\n },\n h2: ({ node, ...props }) => {\n return <h4 style={styles.heading} {...props} />;\n },\n h3: ({ node, ...props }) => {\n return <h5 style={styles.heading} {...props} />;\n },\n h4: ({ node, ...props }) => {\n return <h6 style={styles.heading} {...props} />;\n },\n h5: ({ node, ...props }) => {\n return <h6 style={styles.heading} {...props} />;\n },\n h6: ({ node, ...props }) => {\n return <h6 style={styles.heading} {...props} />;\n },\n // update p style\n p: ({ node, children, ...props }) => {\n return <p style={styles.p} {...props} children={children} />;\n },\n // Open anchor links in new tab\n a: ({ node, children, ...props }) => {\n return <a target=\"_blank\" rel=\"noopener noreferrer\" {...props} children={children} />;\n },\n strong: ({ node, children, ...props }) => {\n return <strong style={styles.bold} {...props} children={children} />;\n },\n // update horizontal line style\n hr: ({ node, ...props }) => {\n return <hr style={styles.hr} />;\n },\n // Apply special styles to li and ul with correct spacing.\n li: ({ node, ...props }) => (\n // @ts-ignore\n // eslint-disable-next-line react/no-unknown-property\n <li style={styles.li} {...props} ordered={props.ordered.toString()} />\n ),\n // @ts-ignore\n // eslint-disable-next-line react/no-unknown-property\n ul: ({ node, ...props }) => <ul style={styles.ul} {...props} ordered=\"false\" />,\n // @ts-ignore\n // eslint-disable-next-line react/no-unknown-property\n ol: ({ node, ...props }) => <ol style={styles.ul} {...props} ordered=\"true\" />,\n // custom tooltip in strikethrough block\n del: ({ node, children, ...props }) => {\n if (children.length === 3 && matchTooltip(children.join(\"\"))) {\n const rawText = children[0] + (children[1] as any)?.props.href + children[2];\n return renderTooltip(rawText);\n }\n return renderTooltip(children[0]);\n },\n img: ({ node, src, alt, ...props }) => {\n return <img src={src} alt={alt ?? \"\"} style={styles.img} {...props} />;\n },\n }}\n >\n {section}\n </ReactMarkdown>\n );\n }\n};\n\nexport const renderMarkdownTextWithDangerousHTML = (section: string | null, customStyle?) => {\n return _renderMarkdownText(section, customStyle, true);\n};\n\nexport const renderMarkdownText = (section: string | null, customStyle?) => {\n return _renderMarkdownText(section, customStyle, false);\n};\n\nexport const convertToSnakeCase = (text) => text?.replace(/ /g, \"_\").toLowerCase();\n\nexport const truncate = (str, n) => {\n return str?.substr(0, n - 1) + (str.length > n ? \"...\" : \"\");\n};\n\nexport const bulletTextToStringArray = (bulletText: string | null): string[] => {\n if (!bulletText?.startsWith(\"* \")) return [];\n\n return compactStringArray(bulletText.substring(2).split(\"\\n* \"));\n};\n\nexport const stringArrayToBulletText = (list: string[]): string => {\n return `* ${compactStringArray(list).join(\"\\n* \")}`;\n};\n\nexport const getInitials = (text) => {\n if (!text) return;\n\n const allNames = text.trim().split(\" \");\n const initials = allNames.reduce((acc, curr, index) => {\n return index === 0 || index === allNames.length - 1\n ? `${acc}${curr.charAt(0).toUpperCase()}`\n : acc;\n }, \"\");\n return initials;\n};\n\nexport const isValidURL = (url) =>\n RegExp(/^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$/).test(\n url\n );\n\nexport const formatBytes = (bytes, decimals = 2) => {\n if (bytes === 0) return \"0 Bytes\";\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + \" \" + sizes[i];\n};\n\nexport const formatMIMEContentType = (type) => {\n switch (type) {\n case \"image/jpeg\":\n return \"JPG\";\n case \"image/png\":\n return \"PNG\";\n case \"application/pdf\":\n return \"PDF\";\n default:\n return type;\n }\n};\n\nexport const startsWithVowel = (text: string): boolean => {\n if (typeof text !== \"string\" || text.length === 0) return false;\n\n const firstLetterLowercase = text[0].toLowerCase();\n if ([\"a\", \"e\", \"i\", \"o\", \"u\"].includes(firstLetterLowercase)) return true;\n return false;\n};\n\nexport const isTrimmedLengthInRange = (\n text: string,\n lowerBound: number,\n upperBound?: number\n): boolean => {\n if (typeof text !== \"string\") return false;\n\n const trimmedText = text.trim();\n if (upperBound && trimmedText.length >= lowerBound && trimmedText.length <= upperBound) {\n return true;\n }\n if (!upperBound && trimmedText.length >= lowerBound) {\n return true;\n }\n return false;\n};\n\nexport const listArrayElements = (array: any[]): string => {\n switch (array.length) {\n case 0: {\n return \"\";\n }\n case 1: {\n return String(array[0]);\n }\n case 2: {\n return `${String(array[0])} and ${String(array[1])}`;\n }\n default: {\n const lastElement = array.slice(-1);\n return `${array.slice(0, array.length - 1).join(\", \")} and ${String(lastElement)}`;\n }\n }\n};\n\nexport const capitalize = (string: string): string => {\n return `${string[0].toUpperCase()}${string.slice(1)}`;\n};\n\nexport const copyLinkToClipboard = async (currentUserId?: number, link?: string) => {\n const text = constructLinkWithReferrer(currentUserId, link);\n\n try {\n await navigator.clipboard.writeText(text);\n return true;\n } catch (error) {\n console.error(\"Failed to copy text: \", error);\n throw error;\n }\n};\n\nconst constructLinkWithReferrer = (currentUserId?: number, link?: string): string => {\n let url = link ?? window.location.href;\n\n if (currentUserId) {\n const urlObj = new URL(url);\n urlObj.searchParams.set(\"referrer_id\", currentUserId.toString());\n url = urlObj.toString();\n }\n\n return url;\n};\n","import { DropdownOption } from \"@components/library/Dropdowns/DropdownOption\";\nimport { getCompanyNamesForOnboarding } from \"@requests/companies\";\nimport { getOptionFromValue } from \"@utils/dropdownUtils\";\nimport { useEffect, useState } from \"react\";\n\nfunction useCompanyOptions(): [DropdownOption[], (e, { value }) => void] {\n const [companyOptions, setCompanyOptions] = useState<DropdownOption[]>([]);\n\n const addCompanyOption = (e, { value }) => {\n const newOption = getOptionFromValue(value);\n if (newOption) setCompanyOptions([newOption, ...companyOptions]);\n };\n\n useEffect(() => {\n (async () => {\n const { companies } = await getCompanyNamesForOnboarding();\n\n setCompanyOptions(companies.map(getOptionFromValue) as DropdownOption[]);\n })();\n }, []);\n\n return [companyOptions, addCompanyOption];\n}\n\nexport default useCompanyOptions;\n","import { DropdownOption } from \"@components/library/Dropdowns/DropdownOption\";\nimport api from \"@requests/request\";\nimport { convertToSnakeCase } from \"@utils/textUtils\";\nimport { useEffect, useState } from \"react\";\n\nfunction useUniversityOptions(): DropdownOption[] {\n const [universitiesOptions, setUniversitiesOptions] = useState<DropdownOption[]>([]);\n\n useEffect(() => {\n (async () => {\n const responseJson = await api.get(\"/universities\");\n\n const universities = (responseJson?.data?.universities ?? []).map((text) => ({\n key: convertToSnakeCase(text),\n text: text,\n value: text,\n label: text,\n }));\n\n setUniversitiesOptions(universities);\n })();\n }, []);\n\n return universitiesOptions;\n}\n\nexport default useUniversityOptions;\n"],"names":["StyledStatusCircle","styled","div","margin","color","COLORS","GREEN_400","StatusCircle","children","_jsx","BannerToaster","ToastContainer","attrs","enableMultiContainer","containerId","position","autoClose","hideProgressBar","closeOnClick","closeButton","rtl","pauseOnFocusLoss","theme","draggable","pauseOnHover","FONTS","MEDIUM_1","WHITE","GREEN","RED","SubtleToaster","NEUTRAL_200","NEUTRAL_800","HALO_BLUE","ToastContainers","_jsxs","_Fragment","toast","success","message","toastify","error","subtleError","adminError","window","Button","variant","to","isExternalLink","openInNewTab","size","width","iconName","iconPosition","id","name","type","disabled","form","onClick","onMouseEnter","onMouseLeave","onFocus","onBlur","dataTestId","iconColor","StyledComponent","StyledLink","StyledButton","href","undefined","as","target","rel","ButtonContent","Icon","BaseStyles","css","RED_600","RED_200","RED_100","BLUE_LIGHT_400","BLUE_LIGHT_300","ORANGE_700","PINK_700","BLUE_600","RED_700","RED_300","BLUE_LIGHT_500","BLUE_LIGHT_350","ORANGE","PINK_600","BLUE_650","includes","button","BUTTON_1","HEADING_5_MEDIUM","BUTTON_2","Link","IconButton","tooltipText","tooltipWidth","tooltipPosition","hideTooltip","shouldPortalTooltip","BLACK","PINK_800","iconButton","Tooltip","content","remainOnHover","asPortal","SIZES","xs","sm","md","RED_50","BLUE_LIGHT_250","PINK_50","NEUTRAL_300","NEUTRAL_50","PINK_100","NEUTRAL_100","PINK_200","SORT_STATES","Map","inverted","next","SortButton","sortDirection","setSortDirection","state","get","IconContainer","title","data","hasDivider","Divider","Label","NEUTRAL_350","label","OptionLabel","option","metaData","isActive","selectValue","value","Option","optionColor","optionDescription","Content","LabelContainer","rightLabelEl","OptionDescription","isDisabled","MoreActionsOptionLabel","MoreActionsOption","REGULAR_2","SEMIBOLD_2","REGULAR_3","NEUTRAL_400","WINDOW_DIMENSIONS","MOBILE_MEDIA_QUERY","EmailDropdown","options","maxMenuHeight","maxValueContainerHeight","placeholder","onChange","setError","formatCreateLabel","input","isPortal","UserDropdown","newValue","emails","map","e","errorMsg","forEach","email","Validator","usedPersonalEmail","creatable","inputValue","Add","KeywordsDropdownOption","innerRef","innerProps","isSelected","__isNew__","CheckboxLabel","_objectSpread","ref","isNew","Checkbox","height","viewBox","fill","xmlns","fillRule","clipRule","d","stroke","strokeLinecap","strokeLinejoin","CheckboxText","MEDIUM_2","KEYWORD_TYPE_TO_CLASS","discipline","area_of_expertise","ANALYTICS_UI_COMPONENT","SuggestionType","MIN_AREAS_OF_EXPERTISE","KeywordsDropdown","keywordType","targetType","currentUserKeywords","labelFont","instructionText","withSuggestions","autoPopulateFn","menuPlacement","helpText","errors","_useState2","_slicedToArray","useState","allKeywords","setAllKeywords","_useState4","suggestions","setSuggestions","_useState6","defaultOptions","setDefaultOptions","_useState8","setOptions","_useState10","isInputSuggestionsLoading","setIsInputSuggestionsLoading","useEffect","keywords","getDisciplines","getAreasOfExpertise","_options","usedKeywords","disciplines","length","push","getOptionFromValue","areas_of_expertise","filter","keyword","debouncedGetKeywordSuggestionsForValue","useCallback","debounce","getKeywordSuggestionsBySimilarity","debouncedGetKeywordSuggestionsForInput","getSuggestionsForValue","async","values","withDebounce","formatOptionsWithSuggestions","querySuggestions","v","suggested","fuse","useMemo","Fuse","threshold","testid","minValues","maxValues","labelEl","Boolean","InstructionText","t","min","max","placeholderText","MultiSelectDropdown","components","indicatorButton","track","SegmentEventName","Click","ui_component","react_component","keyword_type","target_type","KeywordsDropdownCreateLabel","handleChange","actionMeta","newValues","getValueFromOption","action","suggestion_type","at","text","onInputChange","search","r","item","slice","getSuggestionsForInput","then","inputSuggestions","filterOption","isLoading","isCreatable","onCreateOption","createKeyword","CREATED","withSearchIcon","withChevronIcon","SuggestionsContainer","suggestion","index","Suggestion","s","VALUE_SUGGESTION","num_remaining_suggestions","DropdownIndicator","props","selectProps","MoreActionsDropdown","menuHorizontalPosition","menuWidth","portal","portalOffsetRight","setPortalOffsetRight","element","document","getElementById","innerWidth","Number","getBoundingClientRect","right","uuidv4","Dropdown","classNamePrefix","formatOptionLabel","formatGroupLabel","DropdownGroup","onSelect","menuPosition","menuPortalTarget","body","styles","menu","base","padding","menuList","display","flexDirection","menuPortal","zIndex","left","cursor","menuShouldBlockScroll","Select","DROPDOWN_STYLES","isFocused","NoCheckboxOption","ValueContainer","_ref","_objectWithoutProperties","_excluded","StyledValueContainer","NEUTRAL_500","IndicatorButtonContainer","MultiValueRemove","ClearIndicator","placeholderColor","isOptional","noOptionsMessage","labelBottomMargin","withCheckbox","_components","isMulti","closeOnMenuSelect","searchFn","isClearable","createFilter","ignoreAccents","loadOptions","query","callback","isAsyncFunction","debouncedLoadOptions","shouldHideOptions","Array","hasAnyError","hasError","AsyncDropdownComponent","AsyncCreatableDropdown","AsyncDropdown","SyncDropdownComponent","SyncCreatableDropdown","SyncDropdown","valueContainerRef","useRef","dropdown","current","cacheOptions","hideSelectedOptions","closeMenuOnSelect","menuIsOpen","maxHeight","Container","DropdownLabel","FormLabel","font","HelpText","ErrorMessage","RED_500","errorMessage","span","MultiSelectDropdownBaseStyles","AsyncSelect","MULTI_SELECT_TAG_STYLES","AsyncCreatableSelect","CreatableSelect","MEDIUM_3","meta","context","CreateLabel","ProfilePicture","user","OptionName","TagContainer","profile_info","isAdmin","AdminTag","license","LicenseTag","OptionEmail","LabelText","MultiValueLabel","otherProps","Select_","CreatableSelect_","STYLES","ONE_LINE","p","IndicatorSeparator","multiValue","borderRadius","fontSize","multiValueRemove","backgroundColor","SHADOW_B","xxs","lg","xl","xxl","numericSize","svg","getSvg","strokeWidth","cx","cy","x","y","rx","x1","y1","x2","y2","mask","style","maskType","maskUnits","gradientUnits","stopColor","offset","transform","clipPath","ChipsInput","selectedValues","disabledValues","gap","hideAll","isExpanded","setIsExpanded","areAllSelected","chips","Chips","ChipCheckbox","checked","handleAllChange","nonDisabledValues","selectedValue","RemovableInputWrapper","onRemove","TextInput","optional","characterLimit","warningLimit","hideClearButton","textarea","rows","resize","startingHeight","hasPassedStep","hasMissingRequiredError","trim","hasExceededCharacterLimit","hasExceededWarningLimit","TextArea","autoComplete","InputContainer","Input","ClearButton","newEvent","handleClear","labelGap","errorsWithRequiredError","errorIcon","CharacterLimit","hasWarning","ErrorRow","forwardRef","inputStyles","resizeGrabber","Tabs","activeTab","setActiveTab","tabs","activeColor","tabDistance","hoveredTab","setHoveredTab","Shadow","TabsContainer","tab","key","TabWrapper","Tab","count","InfoTag","ORANGE_900","withNewTag","NewTagContainer","accent","TABLET_LANDSCAPE_MEDIA_QUERY","Background","mode","zIndexBase","Wrapper","TABLET_MEDIA_QUERY","StyledModal","SHADOW_D","Header","HeaderContent","SubHeader","ONE_LINE_ALT","HeaderText","HEADING_4_SEMIBOLD","hr","hasHeader","CloseButton","BlankModal","isOpen","onClose","closeOnDimmerClick","headerText","headerIconName","subHeaderText","subHeaderIconName","hideCloseButton","disableBackgroundScroll","backgroundMode","onKeyDown","event","code","addEventListener","modals","querySelectorAll","anchor","querySelector","overflow","removeEventListener","modal","preventDefault","stopPropagation","tabIndex","role","ReactDOM","SlideModalBase","direction","customCloseButton","hideBackdrop","shouldShowModal","setShouldShowModal","dispatch","useDispatch","handleClose","setTimeout","setMessengerOffsetRight","DEFAULT_MESSENGER_OFFSET_RIGHT","modalEl","clientWidth","Modal","InvitedUserProfilePicture","Outline","PROFILE_PICTURE_SIZE_STYLES","forMulti","isUserHidden","bgColor","didImageError","setDidImageError","defaultBgColor","image","medium","url","Picture","src","alt","onError","getInitials","img","REGULAR_4","ICON_SIZE","LEFT_ICON_MARGIN","RIGHT_ICON_MARGIN","BACKGROUND_TYPE","light","dark","neutral","XS_STYLES","TAG_MEDIUM_3","SM_STYLES","TAG_MEDIUM_2","MD_STYLES","TAG_SEMIBOLD_1","StyledTag","isValid","border","shouldTruncate","Tag","LicenseTagTooltip","shouldFlex","subscription","useSelector","company","plan","SponsorLicenseType","PREMIUM","SuperAdminTag","ORANGE_500","withFlexDirectionColumn","ORANGE_100","SEMIBOLD_3","Required","TooltipWrapper","tags","isHovered","setIsHovered","displayedTags","setDisplayedTags","updatedTags","tag","updatedTag","cloneElement","timeoutRef","toggleShow","newState","clearTimeout","View","columns","Math","ceil","contentWidth","arrowOffsetTop","shouldWrap","showTooltip","setShowTooltip","childrenRef","childrenHeight","clientHeight","tooltipContent","ContentContainer","Arrow","childrenWidth","clientRect","tooltipVerticalOffset","innerHeight","top","documentElement","scrollTop","tooltipHorizontalOffset","scrollLeft","ChildrenContainer","createPortal","PortaledTooltip","NonPortaledTooltip","StyledTooltip","Preview","ProgressBar","percentage","Thumbnail","Name","Info","NEUTRAL_600","RemoveButtonContainer","isInbox","isForUpload","isImage","MessageAttachment","attachment","uploadPercentage","filename","size_in_bytes","mime_content_type","thumbnail_url","fileSize","formatBytes","formatMIMEContentType","startsWith","Banner","isSticky","Text","StandardBanner","icon","link","history","useHistory","setIsSticky","onScrollSticky","scrollY","MARGIN_TOP","isExternal","location","subtitle","Title","Subtitle","BLUE_LIGHT_100","HEADING_3_REGULAR","marginLeft","BLUE_GRADIENT","TAG_ACCENT","TAG_BOLD_2","setIsOpen","hideText","hasFilters","countTagBackgroundColor","BLUE_LIGHT_600","GradientButton","className","TextButton","iconSize","BUTTON_4","BUTTON_3","TextLink","underline","newTab","$underline","Card","minHeight","showHoverBorder","NEUTRAL_250","SHADOW_CARD","SHADOW_A","EXTRA_WIDE_MEDIA_QUERY","DESKTOP_MEDIA_QUERY","CompanyAvatar","imageUrl","isPrivate","setHasError","Avatar","_props$selectProps","DropdownIndicatorComponent","SelectableDropdown","isSearchable","portalMenuWidth","SelectOrCreateDropdown","createOptionComponent","onCreate","optionsWithCreate","hasCreateOption","_ref$placeholder","UniversityDropdown","universityOptions","useUniversityOptions","keys","InfoBanner","shouldDisplay","hideIcon","ICON_PROPS","info","ghost","magic","iconContainerHeight","isMagic","isChecked","isPartiallyChecked","isReversed","setIsFocused","checkboxRef","isFocusedRef","click","CheckboxContainer","renderCheckIcon","renderPartialCheckIcon","REGULAR_1","borderColor","isLabelString","OneLineSpan","SEMIBOLD_1","MultiTextInput","sublabel","itemName","asTextArea","tooltipOffsetTop","tooltipArrowOffsetTop","checkbox","inputKeysRef","didAddOrRemoveRef","hiddenInputRef","focus","blur","lastInputId","lastInput","some","entry","addButtonText","startsWithVowel","inputs","Inputs","HiddenInput","i","inputComponent","handleInputChange","splice","InputTooltip","handleRemove","currentKey","isValueChecked","SublabelText","hasItems","handleAdd","uniqueId","onOpen","isInitiallyOpen","inputRef","isExpandedRef","textInput","Top","ErrorsContainer","CustomOption","SearchSuggestionLabel","SearchSuggestion","CreateOptionLabel","createOptionText","NoOptionsMessage","getValue","selectOption","filteredChildren","SuggestedOptionsHeader","SuggestedOptionLabel","SuggestedOptionText","NoOptionsLabel","getStyles","_props$innerProps","restInnerProps","_extends","_objectDestructuringEmpty","SearchBarDropdown","suggestedOptions","connectionType","renderLocation","setInputValue","debouncedSearchOptions","searchSuggest","Component","allowCreateWhileLoading","openMenuOnFocus","DropdownStyles","Switch","labelLeft","labelRight","disabledColor","hasTwoLabels","SwitchContainer","ReactSwitch","onColor","offColor","uncheckedIcon","checkedIcon","activeBoxShadow","handleDiameter","restProps","AltChipCheckbox","ProfilePictureContainer","PageContainer","hasTopDivider","hasPaddingTop","hasPaddingBottom","hasOverflowHidden","maxWidth","Children","DESKTOP_MIN_WIDTH_MEDIA_QUERY","DESKTOP_MIN_CONTENT_WIDTH","DESKTOP_MIN_CONTENT_WIDTH_MEDIA_QUERY","DEFAULT_MAX_WIDTH","PAGE_SIDE_PADDING","TABLET_SIDE_PADDING","ProgressStep","stepNumber","isCurrent","isComplete","needsUpdate","formVariant","totalNumSteps","stepStyle","Attention","StepNumber","ORANGE_300","ErrorModal","Body","Message","ButtonContainer","HEADING_5_SEMIBOLD","SimpleConfirmationModal","onConfirm","confirmIconName","confirmButtonText","HEADING_3_SEMIBOLD","Span","Pagination","currentPage","setCurrentPage","totalPages","marginTop","pageNumbers","getPageButtonNumbers","from","_","pageNumber","BOLD_2","RequestStatusIcon","status","ORANGE_200","GREEN_200","GREEN_800","XMoreWrapper","maxLines","maxTags","invisibleTags","setInvisibleTags","debouncedWidth","setDebouncedWidth","timer","tagsWithIds","tagWithId","clearInterval","firstTag","firstTagTopOffset","pageYOffset","tagsToDisplay","finalRowTags","currentTag","currentTagTopOffset","currentRow","round","xMoreTagElement","finalRowTagWidths","tagElement","offsetWidth","container","containerWidth","remainingTagsCount","finalRowTotalTagWidth","reduce","a","b","textContent","pop","hiddenTags","InvisibleTags","TagTooltip","XMore","getMargin","users","displayedUserCount","single","displayedUsers","shouldShowAdditionalUsers","MultiReviewersContainter","AdditionalParticipants","isInputFocused","setIsInputFocused","TooltipContainer","TruncatedText","lines","textWidth","withTooltip","isTruncated","setIsTruncated","windowWidth","textRef","offsetHeight","scrollHeight","scrollWidth","textElement","MultiUserPreview","NameContainer","StyledName","UserAssociation","_ref$size","_ref$userRole","userRole","UserRole","SCIENTIST","_ref$tooltipPosition","isMessageButtonHovered","setIsMessageButtonHovered","currentUser","profiles","_ref2","isLinkDisabled","withMessageButton","messengerData","_ref3","showSponsorRoles","isExternalLead","association","SPONSOR","asLink","profile_id","TopRow","setMessengerState","handleMessageClick","is_super_admin","SuperAdminTagContainer","PremiumTagContainer","TWO_LINES","obj","flag","gon","feature_flags","DEFAULT_ENABLED_TOURS","TourIdentifier","PROPOSAL_REVIEW_SYSTEM_2024_01_22","PROPOSAL_EVALUATION_2024_02_29","PROPOSAL_REVIEW_SYSTEM_FEEDBACK_DEADLINE_V2_2024_10_31","isTourEnabled","tour","BLUE_450","BLUE_500","BLUE_700","BLUE_750","BLUE_900","BLUE_LIGHT_50","BLUE_LIGHT_650","BLUE_LIGHT_700","GREEN_50","GREEN_100","GREEN_300","GREEN_500","GREEN_600","GREEN_700","GREEN_750","NEUTRAL_0","NEUTRAL_700","NEUTRAL_900","NEUTRAL_950","ORANGE_50","ORANGE_400","ORANGE_600","ORANGE_800","PINK_300","PINK_400","PINK_500","PENDING","OPEN","QUALIFIED","SHORTLISTED","FINALIST","DECLINED","FUNDED","APPSIGNAL_FRONTEND_API_KEY","ABLY_FRONTEND_API_KEY","GOOGLE_API_KEY","ABLY_CHANNELS","HALO_ID","BASF_ID","PEPSICO_ID","FUEL_ID","countriesData","getData","uk","find","country","sort","countryData","WITH_DOWNLOAD_PROPOSAL_AS_PDF","process","HEROKU_SLUG_COMMIT","HEADING_1_BOLD","HEADING_1_SEMIBOLD","HEADING_2_SEMIBOLD","HEADING_4_BOLD","HEADING_4_REGULAR","HEADING_5_BOLD","HEADING_5_REGULAR","HEADING_JUMBO","HEADING_BANNER","SEMIBOLD_4","BOLD_1","BOLD_3","TAG_MEDIUM_1","TAG_SEMIBOLD_2","TAG_BOLD_3","TAG_REGULAR_1","JS_FONTS","fontWeight","lineHeight","GET_MORE_SEATS","NORMAL","MATERIALS","OTHER_SUBMISSION_BULLETS","CORTEVA","UNIVERSITY_SUBMISSION_BULLETS","STARTUP_SUBMISSION_BULLETS","COMPOUND_EXAMPLES","DESIGN_PRINCIPLE_EXAMPLES","RATIONALE_EXAMPLES","TESTING4AG","SHADOW_C","SHADOW_E","THREE_LINES","HERO_MEDIA_QUERY","EXTRA_WIDE","DESKTOP","TABLET_LANDSCAPE","TABLET","MOBILE","BASE_WINDOW_WIDTH","DESKTOP_MIN_WIDTH","RFP_FORM_CHARACTER_LIMITS","SCIENTIST_ROLES","I18n","en","SET_MESSENGER_DATA","CLEAR_MESSENGER_STATE","SET_MESSENGER_THREAD","SET_HAS_UNREAD_MESSAGE","SET_IS_MESSENGER_OPEN","SET_IS_MESSENGER_MINIMIZED","SET_IS_MESSENGER_EXPANDED","IS_MESSENGER_THREAD_LOADING","SET_MESSENGER_OFFSET_RIGHT","setMessengerData","payloadActionGenerator","clearMessengerState","setMessengerThread","setHasUnreadMessage","setIsMessengerOpen","setIsMessengerMinimized","setIsMessengerExpanded","setIsMessengerThreadLoading","fetchCurrentThreadByProposal","userId","proposalyType","proposalyId","response","getMessageThreadByUserProposal","batch","message_thread","unread_for_current_user","fetchCurrentThreadByParticipants","scientistUserId","recipientUserId","getMessageThreadByRecipients","initialState","messengerThread","hasUnreadMessage","isMessengerMinimized","isMessengerOpen","isMessengerExpanded","isMessengerThreadLoading","messengerOffsetRight","messengerReducer","payload","getCompanyForCompanyPage","api","identifier","toLocaleLowerCase","params","is_for_company_page","accessCode","prompt","access_code","secondError","alert","marketplacePath","Error","getCompany","console","getAllCompanies","sortBy","abortSignal","for_marketplace","page_number","sort_by","signal","getCompanyFollowSuggestions","request","for_suggested_follows","companies","getCompanyNamesForOnboarding","for_onboarding","uploadCompanyVideo","videoBlob","formData","FormData","append","post","uploadCompanyImage","imageBlob","followUnfollowCompany","updateCompanyInfo","companyInfo","put","createCompanyResearchInterest","companyId","summary","requestForProposalIds","isOpenCallActive","company_id","request_for_proposal_ids","is_open_call_active","updateCompanyResearchInterest","deleteCompanyResearchInterest","delete","getCompanyResearchInterestsBySlug","company_identifier","slug","company_research_interests","getCompanyMarketplaceCompanies","keywordsFilter","withActiveRfpsFilter","withActiveOpenCallsFilter","withActiveRfsFilter","company_marketplace_path","keywords_filter","with_active_rfps_filter","with_active_open_calls_filter","with_active_rfs_filter","getCompanyMarketplaceFilterOptions","company_marketplace_filter_options_path","requestToJoinCompanyNetwork","is_from_digest","requestToJoinCompanyNetworkFromDigest","company_name","companyIdentifier","company_network_scientist","appsignal","sendError","setAction","setTags","getCompanyNetworkScientist","scientistProfileId","scientist_profile_id","search_suggest_company_network_scientists_path","connection_type","getCompanyNetworkScientistsForAccountSettings","for_account_settings","inviteScientistsToCompanyNetwork","addScientistToCompanyNetwork","getKeywords","err","by_similarity","join","getKeywordSuggestionsByContent","requestData","suggestions_keywords_path","request_data","getMessageThreads","search_filter","searchFilter","message_type_filter","requestIdFilter","getMessages","messageThreadId","addMessageToThread","attachmentIds","message_thread_id","attachment_ids","source","pathname","setDraftMessage","proposaly_id","proposaly_type","getDraftMessage","user_id","scientist_user_id","recipient_user_id","createMessageThread","uploadAttachment","file","setUploadPercentage","onUploadProgress","progressEvent","loaded","total","aborted","DEFAULT_RETRY_COUNT","axios","headers","Accept","authenticityToken","FEATURE_FLAGS","SESSION_TIMEOUT","interceptors","use","res","getRequest","request_path","getRequestsForReviewerDashboard","requests_path","for_reviewer_dashboard","toggleRequestEnabled","requestId","shouldEnable","enabled","request_id","getMarketplaceRequests","requestTypesFilter","partnerTypesFilter","request_type_filter","partner_type_filter","requests","scores","getCommercialApplicationPageRequests","commercialApplicationId","pageNum","commercial_application_id","page_num","getRequestsForSponsorDropdowns","filterByReviewTeamAccess","for_sponsor_dropdowns","filter_by_review_team_access","getExpertRequests","for_expert","addReviewers","getRequestProposalsForReviewSystem","requestPath","requestable_type","RequestableType","RFP","OPEN_CALL","REQUEST_FOR_STARTUP","review_system_proposals_request_for_startup_proposals_path","REQUEST_FOR_EXPERT","review_system_proposals_request_for_expert_proposals_path","is_for_review_system","proposal_slug","proposalSlug","country_filter","countryFilter","organization_type_filter","organizationTypeFilter","organization_name_filter","organizationNameFilter","request_solutions_filter","requestSolutionsFilter","trl_filter","trlFilter","evaluation_status_filter","evaluationStatusFilter","bookmarked_only_filter","bookmarkedOnlyFilter","criterion_leaders_only_filter","criterionLeadersOnlyFilter","sort_direction","setRequestFeedbackDeadline","deadline","feedback_deadline","getCanSubmitProposal","can_submit","formatPathForRouter","toString","replace","tabbed_marketplace_path","SegmentEventObject","LaunchableRequestStatus","RequestFeedbackDeadlineStatus","RequestPartnerTypes","RequestProposalSortBy","RfpPartnershipModel","PARTNERSHIP_MODEL_LABELS","SPONSORED_RESEARCH","GIFT","CO_DEVELOPMENT","SUPPLY_PURCHASE","LICENSING","MATERIAL_TRANSFER","CAPSTONE_PROJECT","CONSULTING_PROJECT","RfpBenefitType","RfpStatus","SponsorRole","fn","constructor","getUserInfo","userInfo","Object","assign","profileInfo","profile_role","profile_verified","verified","verification_code","updated_at","created_at","followed_companies_info","followed_research_interests","followed_rfp_programs","followed_request_ids","proposals","emptyFunction","identify","analytics","global","env","debug","page","eventName","current_url","waypoint","hj","isJson","str","JSON","parse","deleteSearchParam","searchParams","URLSearchParams","has","domain","BLOCKED_EMAIL_DOMAINS","endsWith","functionToDebounce","delay","args","setPageTitle","__skipJsPageTitleGeneration","format","param","ignoreNum","split","flatMap","word","parseInt","charAt","toUpperCase","path","lastIndexOf","lazyWithRetry","componentimport","lazy","pageHasAlreadyBeenForceRefreshed","localStorage","getItem","component","setItem","reload","compactStringArray","array","getArrayFromRubyRange","range","getRubyRangeFromArray","areUnorderedArraysEqual","Appsignal","CREDENTIALS","ignoreErrors","revision","ENV","breadcrumbsPlugin","networkBreadcrumbsPlugin","windowEventsPlugin","pathDecoratorPlugin","addDecorator","currentUserId","current_user_id","addOverride","_data","generateEmailDropdownOptions","companyMembers","excludedEmails","onlyLicensed","sponsorUser","first_name","last_name","excludedEmail","is_admin","getYearOptions","Date","getFullYear","bottom","year","String","scope","interpolations","i18n","scientistNetworkName","features","global_network_search","t_html","escapedInterpolations","fromEntries","entries","k","ReactDOMServer","dangerouslySetInnerHTML","__html","t_link","translation","parts","emptyActionGenerator","token","HTMLMetaElement","getCookie","cookie","match","toastErrorHandler","_variables","_context","checkRfpCompanyHidden","rfp","confidential","rfpProposals","proposal","request_for_proposal_id","checkRfpCompanyHiddenForProposal","getRfpStatus","isBeforeLaunchDate","dayjs","isBefore","requestable","launch_date","isPastDeadline","isAfter","COMING_SOON","IN_EXTENSION","ACTIVE","CLOSED","getRfpStatusText","comingSoon","active","inExtension","pastDeadline","sortRfps","rfps","withDisplayPriority","sortByDisplayPriority","_rfps","display_priority","getTime","activeRfps","comingSoonRfps","pastDeadlineRfps","inactiveRfps","StyleSheet","create","Tooltip_popupContents","Tooltip_link","popupStyles","PureComponent","super","toggle","this","setState","timeoutToggle","timeout","renderTrigger","_this$props","customTrigger","customTriggerStyle","questionIcon","purpleQuestionIcon","blueQuestionIcon","renderLearnMoreLink","_this$props2","linkUrl","linkText","render","_this$props3","Popup","hoverable","trigger","open","renderNewlines","m","fixMarkdownNewlines","matchTooltip","withoutTooltip","renderTooltip","toolTipString","toolTipWithoutLink","linkMatch","linkString","_renderMarkdownText","section","customStyle","allowHtml","heading","marginBottom","li","ul","borderTop","bold","ReactMarkdown","remarkPlugins","gfm","rehypePlugins","rehypeRaw","disallowedElements","h1","node","h2","_excluded2","h3","_excluded3","h4","_ref4","_excluded4","h5","_ref5","_excluded5","h6","_ref6","_excluded6","_ref7","_excluded7","_ref8","_excluded8","strong","_ref9","_excluded9","_ref10","_excluded10","_ref11","_excluded11","ordered","_ref12","_excluded12","ol","_ref13","_excluded13","del","_ref14","_excluded14","rawText","_ref15","_excluded15","renderMarkdownTextWithDangerousHTML","renderMarkdownText","convertToSnakeCase","toLowerCase","bulletTextToStringArray","bulletText","substring","stringArrayToBulletText","list","allNames","acc","curr","isValidURL","RegExp","test","bytes","decimals","dm","floor","log","parseFloat","pow","toFixed","firstLetterLowercase","isTrimmedLengthInRange","lowerBound","upperBound","trimmedText","listArrayElements","lastElement","capitalize","string","copyLinkToClipboard","constructLinkWithReferrer","navigator","clipboard","writeText","urlObj","URL","set","companyOptions","setCompanyOptions","addCompanyOption","newOption","universitiesOptions","setUniversitiesOptions","responseJson","universities"],"sourceRoot":""}