{"version":3,"file":"js/349-72b75948e885d65f0e78.js","mappings":"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","sources":["webpack:///./app/client/src/components/Toast/Toast.tsx","webpack:///./app/client/src/components/Tooltip/Tooltip.jsx","webpack:///./app/client/src/components/Tooltip/index.jsx","webpack:///./app/client/src/components/library/Buttons/Button.tsx","webpack:///./app/client/src/components/library/Buttons/IconButton.tsx","webpack:///./app/client/src/components/library/Dropdowns/DropdownGroup.tsx","webpack:///./app/client/src/components/library/Dropdowns/DropdownOption.tsx","webpack:///./app/client/src/components/library/Dropdowns/EmailDropdown.tsx","webpack:///./app/client/src/components/library/Dropdowns/KeywordsDropdown/KeywordsDropdownCreateLabel.tsx","webpack:///./app/client/src/components/library/Dropdowns/KeywordsDropdown/KeywordsDropdownOption.tsx","webpack:///./app/client/src/components/library/Dropdowns/KeywordsDropdown/KeywordsDropdown.tsx","webpack:///./app/client/src/components/library/Dropdowns/MoreActionsDropdown.tsx","webpack:///./app/client/src/components/library/Dropdowns/MultiSelectDropdown.tsx","webpack:///./app/client/src/components/library/Dropdowns/UserDropdown.tsx","webpack:///./app/client/src/components/library/Dropdowns/dropdownStyles.ts","webpack:///./app/client/src/components/library/Icon/Icon.tsx","webpack:///./app/client/src/components/library/ModalBases/BlankModal.tsx","webpack:///./app/client/src/components/library/ModalBases/SlideModalBase.tsx","webpack:///./app/client/src/components/library/ProfilePicture/InvitedUserProfilePicture.tsx","webpack:///./app/client/src/components/library/ProfilePicture/ProfilePicture.tsx","webpack:///./app/client/src/components/library/Tags/Tag.tsx","webpack:///./app/client/src/components/library/Tags/users/PremiumTagTooltip.tsx","webpack:///./app/client/src/components/library/Tags/users/PremiumTag.tsx","webpack:///./app/client/src/components/library/Tags/users/AdminTag.tsx","webpack:///./app/client/src/components/library/Tags/users/SuperAdminTag.tsx","webpack:///./app/client/src/components/library/Tooltips/TagTooltip.tsx","webpack:///./app/client/src/components/library/Tooltips/Tooltip.tsx","webpack:///./app/client/src/components/library/Buttons/GradientButton.tsx","webpack:///./app/client/src/components/library/Buttons/TextLink.tsx","webpack:///./app/client/src/components/library/Buttons/TextButton.tsx","webpack:///./app/client/src/components/library/Buttons/SortButton.tsx","webpack:///./app/client/src/components/library/Tags/InfoTag.tsx","webpack:///./app/client/src/components/library/Buttons/FiltersButton.tsx","webpack:///./app/client/src/components/library/Dropdowns/SelectableDropdown.tsx","webpack:///./app/client/src/components/library/Dropdowns/SingleSelectDropdown.tsx","webpack:///./app/client/src/components/library/Dropdowns/SelectOrCreateDropdown.tsx","webpack:///./app/client/src/components/library/Dropdowns/UniversityDropdown.tsx","webpack:///./app/client/src/components/library/Inputs/SearchBar.tsx","webpack:///./app/client/src/components/library/Inputs/TextInput.tsx","webpack:///./app/client/src/components/library/Inputs/Checkbox.tsx","webpack:///./app/client/src/components/library/Inputs/MultiTextInput.tsx","webpack:///./app/client/src/components/library/Inputs/ChipsInput.tsx","webpack:///./app/client/src/components/library/Inputs/Switch.tsx","webpack:///./app/client/src/components/library/Inputs/RemovableInputWrapper.tsx","webpack:///./app/client/src/components/library/Inputs/CollapsibleInputWrapper.tsx","webpack:///./app/client/src/components/library/Banners/StandardBanner.tsx","webpack:///./app/client/src/components/library/Modals/SimpleConfirmationModal.tsx","webpack:///./app/client/src/components/library/UserPreview/UserPreview.tsx","webpack:///./app/client/src/components/library/Thumbnail/Thumbnail.tsx","webpack:///./app/client/src/components/library/UserPreview/MultiUserPreview.tsx","webpack:///./app/client/src/components/library/Inputs/ChipCheckbox.tsx","webpack:///./app/client/src/components/library/Tags/XMoreWrapper.tsx","webpack:///./app/client/src/components/library/Pagination/Pagination.tsx","webpack:///./app/client/src/components/library/Card/Card.tsx","webpack:///./app/client/src/components/library/Tooltips/TruncatedText.tsx","webpack:///./app/client/src/components/library/Tooltips/InputTooltip.tsx","webpack:///./app/client/src/components/library/Menus/Tabs.tsx","webpack:///./app/client/src/components/library/Menus/ProgressStep.tsx","webpack:///./app/client/src/components/library/InfoBanner/InfoBanner.tsx","webpack:///./app/client/src/components/library/Attachments/MessageAttachment.tsx","webpack:///./app/client/src/components/library/Buttons/ButtonGroup.tsx","webpack:///./app/client/src/components/library/layout/CenteredContainer.tsx","webpack:///./app/client/src/components/library/Modals/ErrorModal.tsx","webpack:///./app/client/src/components/library/layout/PageContainer.tsx","webpack:///./app/client/src/components/library/CompanyAvatar/CompanyAvatar.tsx","webpack:///./app/client/src/components/library/BlueBox/BlueBox.tsx","webpack:///./app/client/src/components/library/RequestStatusIcon/RequestStatusIcon.tsx","webpack:///./app/client/src/constants/colors.js","webpack:///./app/client/src/constants/proposalStatuses.js.erb","webpack:///./app/client/src/constants/credentials.js.erb","webpack:///./app/client/src/constants/companies.js.erb","webpack:///./app/client/src/constants/windowDimensions.js","webpack:///./app/client/src/constants/proposalStatusesScientist.js","webpack:///./app/client/src/constants/company_headers.js","webpack:///./app/client/src/constants/blockedEmailDomains.js","webpack:///./app/client/src/constants/requestForMaterials.js","webpack:///./app/client/src/constants/fonts.ts","webpack:///./app/client/src/constants/styles.ts","webpack:///./app/client/src/constants/proposalTypes.js","webpack:///./app/client/src/tsTypes/patents.ts","webpack:///./app/client/src/constants/materials.ts","webpack:///./app/client/src/constants/countryOptions.ts","webpack:///./app/client/src/constants/env.ts","webpack:///./app/client/src/constants/featureFlags.ts","webpack:///./app/client/src/constants/links.ts","webpack:///./app/client/src/constants/index.js","webpack:///./app/client/src/redux/actions/messengerActions.tsx","webpack:///./app/client/src/requests/keywords.ts","webpack:///./app/client/src/requests/messages.ts","webpack:///./app/client/src/requests/request.ts","webpack:///./app/client/src/tsTypes/requests.ts","webpack:///./app/client/src/tsTypes/rfps.ts","webpack:///./app/client/src/utils/appUtils.ts","webpack:///./app/client/src/utils/appsignal.ts","webpack:///./app/client/src/utils/dropdownUtils.ts","webpack:///./app/client/src/locales/index.ts","webpack:///./app/client/src/utils/i18n.tsx","webpack:///./app/client/src/utils/redux.js","webpack:///./app/client/src/utils/requests.ts","webpack:///./app/client/src/utils/textUtils.ts","webpack:///./app/client/src/views/Onboarding/Hooks/useCompanyOptions.ts","webpack:///./app/client/src/views/Onboarding/Hooks/useUniversityOptions.js","webpack:///./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["/**\n * USAGE:\n * import toast from '@components/Toast';\n * toast.success(\"success message\");\n * toast.error(\"error message\");\n */\n\nimport { ReactElement } from \"react\";\nimport styled from \"styled-components\";\nimport { toast as toastify, ToastContainer } from \"react-toastify\";\nimport { COLORS, FONTS } from \"@constants\";\n\nexport const Toaster = styled(ToastContainer).attrs(() => ({\n enableMultiContainer: true,\n containerId: \"new\",\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 border-color: ${COLORS.GREEN};\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\n a {\n color: ${COLORS.WHITE};\n text-decoration: underline;\n }\n }\n .success {\n background-color: ${COLORS.GREEN};\n }\n .error {\n background-color: ${COLORS.RED};\n }\n }\n`;\n\nconst toast = {\n success: (message: string | ReactElement) => {\n toastify.success(message, { containerId: \"new\", className: \"success\" });\n },\n error: (message: string | ReactElement) => {\n toastify.error(message, { containerId: \"new\", className: \"error\" });\n },\n};\n\nexport default toast;\n","import { PureComponent } from \"react\";\nimport { css, StyleSheet } from \"aphrodite/no-important\";\nimport { Popup, Icon } from \"semantic-ui-react\";\nimport { COLORS, JS_FONTS } from \"@constants\";\nimport blueQuestionIcon from \"@images/icons/question_mark_blue.svg\";\nimport purpleQuestionIcon from \"@images/icons/question_mark_purple.svg\";\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 \n {linkText}\n \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 \n );\n }\n const questionIcon = iconColor === \"purple\" ? purpleQuestionIcon : blueQuestionIcon;\n\n return (\n \n );\n };\n\n render() {\n const { linkUrl, text, position } = this.props;\n\n return (\n \n
\n {text} {linkUrl && this.renderLearnMoreLink()}\n
\n \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 styled, { css } from \"styled-components\";\nimport { COLORS, FONTS } from \"@constants\";\nimport Icon from \"@components/library/Icon\";\nimport { Link } from \"react-router-dom\";\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 tag instead of a button.\n */\n to?: string;\n isExternalLink?: boolean;\n iconName?: IconName;\n iconPosition?: \"left\" | \"right\";\n children: any;\n}\n\nconst Button = ({\n variant = \"primary\",\n to,\n isExternalLink = 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 \n \n {iconName ? (\n \n ) : null}\n {children}\n \n \n );\n};\n\nexport default Button;\n\nconst 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 styled from \"styled-components\";\nimport { COLORS } from \"@constants\";\nimport Icon, { IconName } from \"../Icon/Icon\";\nimport { BaseButtonProps } from \"./Button\";\nimport { Tooltip } from \"@components/library\";\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 size?: \"xs\" | \"sm\" | \"md\";\n margin?: string | 0;\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 id,\n name,\n disabled,\n onClick,\n onMouseEnter,\n onMouseLeave,\n onFocus,\n onBlur,\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 }\n\n const iconButton = (\n \n \n \n );\n\n return hideTooltip ? (\n iconButton\n ) : (\n \n {iconButton}\n \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 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 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 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 styled from \"styled-components\";\nimport { COLORS } from \"@constants\";\nimport { DropdownOptionGroup } from \"./DropdownOption\";\nimport Icon from \"../Icon\";\n\nconst DropdownGroup = (data: DropdownOptionGroup) => (\n <>\n {data.hasDivider && }\n \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 styled from \"styled-components\";\nimport { FONTS, COLORS, WINDOW_DIMENSIONS } from \"@constants\";\nimport Icon, { IconName } from \"@components/library/Icon/Icon\";\nimport { ReactElement } from \"react\";\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 \n );\n};\n\n// Only used in MoreActionsDropdown\nexport const MoreActionsOptionLabel = (option: ExtendedDropdownOption) => {\n return (\n \n {option.iconName ? (\n \n ) : null}\n \n \n {option.label}\n {option.rightLabelEl}\n \n {option.optionDescription && (\n \n {option.optionDescription}\n \n )}\n \n \n );\n};\n\nconst Option = styled.div`\n display: flex;\n color: ${({ color }) => color};\n align-items: ${({ optionDescription }) => (optionDescription ? \"flex-start\" : \"center\")};\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 { Dispatch, FunctionComponent, SetStateAction } from \"react\";\nimport { OnChangeValue, components } from \"react-select\";\nimport Validator from \"validator\";\nimport { usedPersonalEmail } from \"@utils/appUtils\";\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>;\n formatCreateLabel?: (input: string) => string;\n isPortal?: boolean;\n}\n\nconst EmailDropdown: FunctionComponent = ({\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) => {\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 \n );\n};\n\nexport default EmailDropdown;\n","import { COLORS, FONTS } from \"@constants\";\nimport styled from \"styled-components\";\n\nconst KeywordsDropdownCreateLabel = (inputValue: string) => (\n \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 { Checkbox, CheckboxText } from \"../MultiSelectDropdown\";\nimport styled from \"styled-components\";\n\nconst KeywordsDropdownOption = ({\n innerRef,\n innerProps,\n isSelected,\n label,\n data: { __isNew__ },\n}) => {\n return (\n // eslint-disable-next-line\n \n {!__isNew__ && (\n \n {isSelected && (\n \n \n \n )}\n \n )}\n {label}\n \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 { useCallback, useEffect, useMemo, useState } from \"react\";\nimport styled from \"styled-components\";\nimport MultiSelectDropdown from \"@components/library/Dropdowns/MultiSelectDropdown\";\nimport {\n createKeyword,\n getAreasOfExpertise,\n getDisciplines,\n getKeywordSuggestions,\n getTechniques,\n} from \"@requests/keywords\";\nimport type { DropdownOption, DropdownOptionOrGroup } from \"../DropdownOption\";\nimport { getOptionFromValue, getValueFromOption } from \"@utils/dropdownUtils\";\nimport { COLORS, FEATURE_FLAGS, FONTS } from \"@constants\";\nimport debounce from \"debounce-promise\";\nimport Fuse from \"fuse.js\";\nimport KeywordsDropdownCreateLabel from \"./KeywordsDropdownCreateLabel\";\nimport KeywordsDropdownOption from \"./KeywordsDropdownOption\";\n\nexport type KeywordType = \"disciplines\" | \"areas_of_expertise\" | \"techniques\";\n\nconst KEYWORD_TYPE_TO_CLASS = {\n disciplines: \"Discipline\",\n areas_of_expertise: \"AreaOfExpertise\",\n techniques: \"Technique\",\n} as const;\n\ninterface Props {\n type: KeywordType;\n currentUserKeywords?: {\n disciplines?: string[];\n areas_of_expertise?: string[];\n techniques?: string[];\n };\n showSuggestions?: boolean;\n value: string[];\n onChange: (selection: string[]) => void;\n maxValues?: number;\n placeholder?: string;\n menuPlacement?: \"top\" | \"auto\" | \"bottom\";\n isPortal?: boolean;\n maxMenuHeight?: string;\n maxValueContainerHeight?: string;\n helpText?: string;\n errors?: { hasError: boolean; errorMessage: string }[];\n}\n\nconst KeywordsDropdown = ({\n type,\n currentUserKeywords,\n showSuggestions = false,\n value,\n onChange,\n maxValues,\n placeholder,\n menuPlacement,\n isPortal = false,\n maxMenuHeight,\n maxValueContainerHeight = \"unset\",\n helpText,\n errors,\n}: Props) => {\n const [allKeywords, setAllKeywords] = useState([]);\n const [suggestions, setSuggestions] = useState([]);\n const [defaultOptions, setDefaultOptions] = useState([]);\n const [options, setOptions] = useState([]);\n const [isInputSuggestionsLoading, setIsInputSuggestionsLoading] = useState(false);\n\n // Grab set of raw keywords\n useEffect(() => {\n (async () => {\n let keywords: string[] = [];\n switch (type) {\n case \"disciplines\":\n keywords = await getDisciplines();\n break;\n case \"areas_of_expertise\":\n keywords = await getAreasOfExpertise();\n break;\n case \"techniques\":\n keywords = await getTechniques();\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 if (currentUserKeywords?.techniques?.length) {\n _options.push({\n label: \"Your techniques\",\n options: currentUserKeywords.techniques.map(getOptionFromValue) as DropdownOption[],\n });\n usedKeywords.push(...currentUserKeywords.techniques);\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(getKeywordSuggestions, 500),\n []\n );\n const debouncedGetKeywordSuggestionsForInput = useCallback(\n debounce(getKeywordSuggestions, 500),\n []\n );\n const getSuggestionsForValue = async (values: string[]) => {\n if (values.length === 0 || !showSuggestions || !FEATURE_FLAGS.KEYWORD_SUGGESTIONS) {\n setSuggestions([]);\n return;\n }\n setSuggestions(\n await debouncedGetKeywordSuggestionsForValue(values, KEYWORD_TYPE_TO_CLASS[type])\n );\n };\n const getSuggestionsForInput = async (input: string): Promise => {\n if (input.length === 0 || !showSuggestions || !FEATURE_FLAGS.KEYWORD_SUGGESTIONS) {\n return [];\n }\n return debouncedGetKeywordSuggestionsForInput([input], KEYWORD_TYPE_TO_CLASS[type]);\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(getOptionFromValue) as DropdownOption[],\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 const keywords = result.map((r: any) => r.item).slice(0, 50);\n setOptions(formatOptionsWithSuggestions(keywords, []));\n\n if (keywords.length > 10 || !FEATURE_FLAGS.KEYWORD_SUGGESTIONS) 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 testid = `${type}-dropdown`;\n\n return (\n
\n {\n const newValues = e.map(getValueFromOption) as string[];\n getSuggestionsForValue(newValues);\n onChange(newValues);\n }}\n options={options}\n placeholder={placeholder}\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={FEATURE_FLAGS.KEYWORD_SUGGESTIONS}\n onCreateOption={async (input: string) => {\n await createKeyword(input, KEYWORD_TYPE_TO_CLASS[type]);\n const newValues = [...value, input];\n getSuggestionsForValue(newValues);\n onChange(newValues);\n }}\n />\n {showSuggestions &&\n suggestions.length > 0 &&\n value.length > 0 &&\n value.length < maxValues! && (\n \n Suggested:{\" \"}\n {suggestions.map((suggestion, index) => (\n \n {index > 0 && \", \"}\n {\n setSuggestions(suggestions.filter((s) => s !== suggestion));\n onChange([...value, suggestion]);\n }}\n >\n {suggestion}\n \n \n ))}\n \n )}\n
\n );\n};\n\nexport default KeywordsDropdown;\n\nconst Suggestions = styled.div`\n margin-top: 8px;\n color: ${COLORS.BLACK};\n ${FONTS.REGULAR_3};\n`;\n\nconst Suggestion = styled.button`\n text-decoration: underline;\n cursor: pointer;\n color: ${COLORS.BLACK};\n border: none;\n background: none;\n`;\n","import { ReactNode } from \"react\";\nimport styled from \"styled-components\";\nimport DROPDOWN_STYLES from \"./dropdownStyles\";\nimport { ExtendedDropdownOptionOrGroup, MoreActionsOptionLabel } from \"./DropdownOption\";\nimport { COLORS, FONTS } from \"@constants\";\nimport { IconButton } from \"@components/library\";\nimport Select, { components } from \"react-select\";\nimport DropdownGroup from \"./DropdownGroup\";\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 the menu with width if using within a scrollable overflow\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 \n {props.selectProps.children ?? (\n \n )}\n \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 = \"300px\",\n portal,\n}: Props) => {\n return (\n !(\"options\" in e) && e.onSelect!()}\n margin={margin}\n menuPlacement=\"auto\"\n menuPosition={portal ? \"fixed\" : \"absolute\"}\n menuHorizontalPosition={menuHorizontalPosition}\n menuPortalTarget={portal && document.body}\n menuWidth={menuWidth}\n styles={{\n menuPortal: (base) => ({\n ...base,\n zIndex: 9999,\n width: menuWidth,\n }),\n }}\n menuShouldBlockScroll={portal}\n >\n {children}\n \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__menu {\n width: fit-content;\n padding: 8px 0;\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\n .Select__menu {\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\n .Select__control:hover:not(.Select__control--is-focused) {\n border: none;\n }\n`;\n","import styled, { css } from \"styled-components\";\nimport Select, {\n ClearIndicatorProps,\n DropdownIndicatorProps,\n MultiValueRemoveProps,\n components,\n createFilter,\n} from \"react-select\";\nimport CreatableSelect from \"react-select/creatable\";\nimport AsyncSelect from \"react-select/async\";\nimport AsyncCreatableSelect from \"react-select/async-creatable\";\nimport { COLORS, FONTS } from \"@constants\";\nimport { Icon } from \"@components/library\";\nimport debounce from \"debounce-promise\";\nimport type { DropdownOption, DropdownOptionOrGroup } from \"./DropdownOption\";\nimport DROPDOWN_STYLES, { MULTI_SELECT_TAG_STYLES } from \"./dropdownStyles\";\nimport DropdownGroup from \"./DropdownGroup\";\nimport { ReactNode } from \"react\";\n\ninterface SelectProps {\n placeholder?: string;\n label?: string;\n labelFont?: 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 components?: any;\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;\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[]) => void;\n};\n\nexport type SingleSelectProps = SelectProps & {\n value: DropdownOption | null;\n onChange: (value: DropdownOption | null) => void;\n};\n\ntype Props = MultipleSelectProps | SingleSelectProps;\n\nexport const Option = ({ innerRef, innerProps, isSelected, label }) => {\n // Disable some unnecessary handlers for performance\n // May need to consider virtualizing for even longer lists\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { onMouseMove, onMouseOver, ...filteredInnerProps } = innerProps;\n return (\n // From React-Select docs\n // eslint-disable-next-line\n \n \n {isSelected && (\n \n \n \n )}\n \n {label}\n \n );\n};\n\nconst DropdownIndicator = (props: DropdownIndicatorProps) => {\n return (\n \n \n \n );\n};\n\nexport const MultiValueRemove = (props: MultiValueRemoveProps) => {\n return (\n \n \n \n );\n};\n\nconst ClearIndicator = (props: ClearIndicatorProps) => {\n return (\n \n \n \n );\n};\n\nconst MultiSelectDropdown = ({\n options,\n value,\n onChange,\n placeholder = \"All\",\n isOptional = false,\n noOptionsMessage = \"No options\",\n label,\n labelFont = FONTS.SEMIBOLD_2,\n maxMenuHeight = \"250px\",\n maxValueContainerHeight = \"unset\",\n maxValues,\n menuPlacement = \"auto\",\n components: _components = {},\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 = (query: string, callback): void => {\n if (searchFn) searchFn(query).then(callback);\n };\n\n const debouncedLoadOptions = debounce(loadOptions, 500);\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 dropdown = searchFn ? (\n \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 }}\n hasError={hasAnyError}\n />\n ) : (\n 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 }}\n hasError={hasAnyError}\n />\n );\n\n return (\n \n {label ? (\n \n \n
{label}
\n {isOptional && Optional}\n
\n {dropdown}\n
\n ) : (\n {dropdown}\n )}\n {Number(helpText?.length) > 0 && {helpText}}\n {hasAnyError &&\n errors?.map(\n (error) =>\n error.hasError && (\n \n \n {error.errorMessage}\n \n )\n )}\n
\n );\n};\n\nexport default MultiSelectDropdown;\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 &:hover {\n background-color: ${COLORS.NEUTRAL_100};\n }\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 border-radius: 6px;\n margin-top: 8px;\n ${({ hasError }) =>\n hasError &&\n `\n border-color: ${COLORS.RED_600}; \n background-color: ${COLORS.RED_100};\n &:hover {\n &:not(.Select__control--is-focused) {\n border-color: ${COLORS.RED_600};\n }\n &.Select__control--is-focused {\n border-color: ${COLORS.RED_600};\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`;\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 ${({ labelFont }) => labelFont && labelFont};\n`;\nexport const LabelText = styled.div`\n display: flex;\n color: ${({ hasError }) => (hasError ? COLORS.RED_600 : COLORS.BLACK)};\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_600};\n`;\n","import { Dispatch, FunctionComponent, SetStateAction } from \"react\";\nimport { default as CreatableSelect_ } from \"react-select/creatable\";\nimport Select_, { MultiValueRemoveProps, MultiValueGenericProps, components } from \"react-select\";\nimport styled from \"styled-components\";\nimport Validator from \"validator\";\nimport DROPDOWN_STYLES from \"@components/library/Dropdowns/dropdownStyles\";\nimport { COLORS, FONTS, STYLES } from \"@constants\";\nimport { Icon, ProfilePicture } from \"@components/library\";\nimport { AdminTag, PremiumTag } from \"../Tags/users\";\n\nexport interface UserOption {\n value: string; // email or user.id\n label: string; // email or name\n user?: {\n id: number;\n name: string;\n email: string;\n image: {\n medium: {\n url: string | null;\n };\n };\n profile_info?: {\n isPremium: boolean;\n isAdmin: boolean;\n };\n };\n profilePic?: string;\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 {option.label};\n }\n // Menu label\n return (\n \n );\n }\n // Value label\n return (\n \n {option.label}\n \n );\n};\n\n// Customize value remove icon\nconst MultiValueRemove = (props: MultiValueRemoveProps) => {\n return (\n // eslint-disable-next-line react/jsx-props-no-spreading\n \n \n \n );\n};\n\n// Customize value label with premium icon\nconst MultiValueLabel = (props: MultiValueGenericProps) => {\n const { children, ...otherProps } = props;\n // TODO: (justinpchang) Show premium tooltip\n return {children};\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>;\n formatCreateLabel?: (input: string) => string;\n isPortal?: boolean;\n}\n\nconst UserDropdown: FunctionComponent = ({\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
\n 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
\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 { css } from \"styled-components\";\nimport { COLORS, FONTS, STYLES } from \"@constants\";\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 {SIZES[size]} and instances of hex color codes with {color}\n\n// NOTES:\n// - When adding a new RFP program icon, make sure to also add it to getRfpProgramName in rfpUtils.tsx\n\nimport styled from \"styled-components\";\nimport { COLORS } from \"@constants\";\n\ninterface Props {\n name: IconName;\n color?: string;\n size?: \"xxs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"xxl\";\n margin?: string | 0;\n display?: string;\n \"data-testid\"?: string;\n}\n\nconst Icon = ({\n name,\n color = COLORS.BLACK,\n size = \"md\",\n margin = 0,\n display = \"flex\",\n \"data-testid\": dataTestId,\n}: Props) => {\n const svg = getSvg(name, color, size);\n\n if (!svg) return null;\n\n return (\n \n {svg}\n \n );\n};\n\nexport default Icon;\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 IconContainer = styled.div`\n height: ${({ size }) => `${SIZES[size]}px`};\n width: ${({ size }) => `${SIZES[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 Up\"\n | \"Attachment\"\n | \"Attention\"\n | \"Attention Filled\"\n | \"Audio Mute\"\n | \"Audio Unmute\"\n | \"Australia\"\n | \"Bell\"\n | \"Burger\"\n | \"Calendar\"\n | \"Canada\"\n | \"Change\"\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 | \"Download\"\n | \"Easy Apply\"\n | \"Edit\"\n | \"Employees\"\n | \"Expand\"\n | \"Expertise\"\n | \"Facebook\"\n | \"Filter\"\n | \"Followers\"\n | \"Food\"\n | \"Funding\"\n | \"Help\"\n | \"Hide\"\n | \"History\"\n | \"Hygiene\"\n | \"Idea\"\n | \"India\"\n | \"Info\"\n | \"Info Small\"\n | \"Invite\" // From a mockup, not the design system\n | \"Lead Reviewer\"\n | \"LinkedIn\"\n | \"Location\"\n | \"Lock\"\n | \"Magic\"\n | \"Malaysia\"\n | \"Materials\"\n | \"Medal\"\n | \"Medicine\"\n | \"Message\"\n | \"Messaging\"\n | \"Mexico\"\n | \"Minimize\"\n | \"More Actions\"\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 | \"Reduce\"\n | \"Refresh\"\n | \"Reorder\"\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 | \"USA\"\n | \"Verified\"\n | \"View\"\n | \"Water\"\n | \"X\"\n | undefined;\n\nconst getSvg = (name: IconName, color: string, size: string) => {\n switch (name) {\n case \"Accelerator\": {\n return (\n \n \n \n \n \n );\n }\n case \"Accelerator Complete\": {\n return (\n \n \n \n \n \n );\n }\n case \"Add to Collection\": {\n return (\n \n \n \n );\n }\n case \"More Actions\": {\n return (\n \n \n \n );\n }\n case \"View\": {\n return (\n \n \n \n );\n }\n case \"Paused\": {\n return (\n \n \n \n );\n }\n case \"Play\": {\n return (\n \n \n \n );\n }\n case \"Tick\": {\n return (\n \n \n \n );\n }\n case \"Messaging\": {\n return (\n \n \n \n \n );\n }\n case \"Location\": {\n return (\n \n \n \n \n );\n }\n case \"Filter\": {\n return (\n \n \n \n );\n }\n case \"Notification Filled\": {\n return (\n \n \n \n \n );\n }\n case \"Open Call\": {\n return (\n \n \n \n \n );\n }\n case \"Open Call Paused\": {\n return (\n \n \n \n \n \n \n );\n }\n case \"Open Call Complete\": {\n return (\n \n \n \n \n \n );\n }\n case \"Medal\": {\n return (\n \n \n \n );\n }\n case \"Send Message\": {\n return (\n \n \n \n );\n }\n case \"X\": {\n return (\n \n \n \n );\n }\n case \"Change\": {\n return (\n \n \n \n );\n }\n case \"Twitter\": {\n return (\n \n \n \n \n );\n }\n case \"LinkedIn\": {\n return (\n \n \n \n \n );\n }\n case \"Facebook\": {\n return (\n \n \n \n \n );\n }\n case \"Delete\": {\n return (\n \n \n \n \n \n \n );\n }\n case \"Download\": {\n return (\n \n \n \n \n );\n }\n case \"Lead Reviewer\": {\n return (\n \n \n \n \n );\n }\n case \"Add\": {\n return (\n \n \n \n );\n }\n case \"Arrow Left\": {\n return (\n \n \n \n );\n }\n case \"Arrow Up\": {\n return (\n \n \n \n );\n }\n case \"Private\": {\n return (\n \n \n \n \n \n \n );\n }\n case \"Employees\": {\n return (\n \n \n \n \n \n \n );\n }\n case \"Proposal Privacy\": {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n }\n case \"Proposal\": {\n return (\n \n \n \n );\n }\n case \"Minimize\": {\n return (\n \n \n \n );\n }\n case \"Expand\": {\n return (\n \n \n \n );\n }\n case \"Reduce\": {\n return (\n \n \n \n );\n }\n case \"Calendar\": {\n return (\n \n \n \n );\n }\n case \"Share\": {\n return (\n \n \n \n );\n }\n case \"Open in a new tab\": {\n return (\n \n \n \n );\n }\n case \"Profile\": {\n return (\n \n \n \n );\n }\n case \"Message\": {\n return (\n \n \n \n );\n }\n case \"Chevron Down\": {\n return (\n \n \n \n );\n }\n case \"Chevron Up\": {\n return (\n \n \n \n );\n }\n case \"Chevron Left\": {\n return (\n \n \n \n );\n }\n case \"Chevron Right\": {\n return (\n \n \n \n );\n }\n case \"Copy\": {\n return (\n \n \n \n \n \n \n \n );\n }\n case \"Data\": {\n return (\n \n \n \n );\n }\n case \"Refresh\": {\n return (\n \n \n \n \n );\n }\n case \"Close\": {\n return (\n \n \n \n );\n }\n case \"Search\": {\n return (\n \n \n \n );\n }\n case \"Verified\": {\n return (\n \n \n \n \n );\n }\n case \"Agriculture\": {\n return (\n \n \n \n );\n }\n case \"Hygiene\": {\n return (\n \n \n \n );\n }\n case \"Water\": {\n return (\n \n \n \n );\n }\n case \"Bell\": {\n return (\n \n \n \n \n );\n }\n case \"Success\": {\n return (\n \n \n \n \n );\n }\n case \"Opportunity\": {\n return (\n \n \n \n \n \n );\n }\n case \"3D Printing\": {\n return (\n \n \n \n \n \n );\n }\n case \"Packaging\": {\n return (\n \n \n \n \n \n \n );\n }\n case \"Adhesives\": {\n return (\n \n \n \n \n );\n }\n case \"Food\": {\n return (\n \n \n \n );\n }\n case \"Medicine\": {\n return (\n \n \n \n );\n }\n case \"Private Company\": {\n return (\n \n \n \n \n \n \n \n \n );\n }\n case \"Easy Apply\": {\n return (\n \n \n \n );\n }\n case \"Attention\": {\n return (\n \n \n \n );\n }\n case \"Idea\": {\n return (\n \n \n \n \n \n \n \n \n );\n }\n case \"Info\": {\n return (\n \n \n \n \n \n );\n }\n case \"Info Small\": {\n return (\n \n \n \n \n \n );\n }\n case \"Invite\": {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n case \"Materials\": {\n return (\n \n \n \n );\n }\n case \"Arrow Right\": {\n return (\n \n \n \n );\n }\n case \"Attachment\": {\n return (\n \n \n \n );\n }\n case \"Help\": {\n return (\n \n \n \n \n \n \n \n );\n }\n case \"History\": {\n return (\n \n \n \n );\n }\n case \"USA\": {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n case \"Australia\": {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n case \"China\": {\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n }\n case \"India\": {\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n }\n case \"Canada\": {\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n }\n case \"Malaysia\": {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n case \"Mexico\": {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n case \"Burger\": {\n return (\n \n \n \n \n \n );\n }\n case \"Technology\": {\n return (\n \n \n \n );\n }\n case \"Funding\": {\n return (\n \n \n \n );\n }\n case \"Expertise\": {\n return (\n \n \n \n );\n }\n case \"Organization\": {\n return (\n \n \n \n );\n }\n case \"Compounds\": {\n return (\n \n \n \n );\n }\n case \"Checkup\": {\n return (\n \n \n \n \n \n \n \n \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 \n \n \n \n \n \n );\n }\n case \"Star\": {\n return (\n \n \n \n );\n }\n case \"Status\": {\n return (\n \n \n \n );\n }\n case \"Edit\": {\n return (\n \n \n \n \n );\n }\n case \"RFP\": {\n return (\n \n \n \n );\n }\n case \"RFP Complete\": {\n return (\n \n \n \n );\n }\n case \"RFP Filled\": {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n }\n case \"Row Height\": {\n return (\n \n \n \n );\n }\n case \"Row Height - Short\": {\n return (\n \n \n \n );\n }\n case \"Row Height - Medium\": {\n return (\n \n \n \n \n \n \n \n );\n }\n case \"Row Height - Full\": {\n return (\n \n \n \n );\n }\n case \"Save\": {\n return (\n \n \n \n );\n }\n case \"Sort\": {\n return (\n \n \n \n );\n }\n case \"Public\": {\n return (\n \n \n \n );\n }\n case \"Quota-Based RFP\": {\n return (\n \n \n \n );\n }\n case \"Hide\": {\n return (\n \n \n \n );\n }\n case \"Followers\": {\n return (\n \n \n \n \n );\n }\n case \"Reorder\": {\n return (\n \n \n \n );\n }\n case \"Sort By\": {\n return (\n \n \n \n );\n }\n case \"Thumb Up\": {\n return (\n \n \n \n );\n }\n case \"Thumb Up Filled\": {\n return (\n \n \n \n \n );\n }\n case \"Thumb Down\": {\n return (\n \n \n \n );\n }\n case \"Thumb Down Filled\": {\n return (\n \n \n \n \n );\n }\n case \"Attention Filled\": {\n return (\n \n \n \n \n );\n }\n case \"Audio Mute\": {\n return (\n \n \n \n \n \n \n );\n }\n case \"Audio Unmute\": {\n return (\n \n \n \n \n \n \n \n );\n }\n case \"Lock\": {\n return (\n \n \n \n \n \n \n );\n }\n case \"Unlocked\": {\n return (\n \n \n \n \n \n \n );\n }\n case \"Crown\": {\n return (\n \n \n \n \n );\n }\n case \"Magic\": {\n return (\n \n \n \n \n );\n }\n default: {\n return null;\n }\n }\n};\n","import { ReactElement, ReactNode, useEffect } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport styled from \"styled-components\";\nimport { COLORS, FONTS, WINDOW_DIMENSIONS, STYLES } from \"@constants\";\nimport IconButton from \"../Buttons/IconButton\";\nimport Icon from \"@components/library/Icon\";\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 children?: ReactNode;\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 children,\n}: BlankModalProps) => {\n const handleDimmerClick = () => {\n if (closeOnDimmerClick) {\n onClose();\n }\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 \n \n \n {!hideCloseButton && (\n \n \n \n )}\n {headerText && (\n <>\n
\n {headerIconName && }\n \n {headerText}\n {subHeaderText && (\n \n {subHeaderIconName && (\n \n )}\n
{subHeaderText}
\n
\n )}\n
\n
\n \n \n )}\n {children}\n
\n
\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 background-color: ${COLORS.BLACK};\n opacity: 0.7;\n z-index: 501;\n`;\n\nconst Wrapper = styled.div`\n z-index: 502;\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\nconst StyledModal = styled.div`\n z-index: 503;\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 { ReactNode, useState, useEffect } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport styled, { css } from \"styled-components\";\nimport { IconButton } from \"@components/library\";\nimport { COLORS, STYLES } from \"@constants\";\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 handleClose = () => {\n setShouldShowModal(false);\n setTimeout(() => onClose(), 300);\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\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 modal = (\n <>\n {!hideBackdrop && }\n \n {!hideCloseButton && (\n \n {customCloseButton ?? (\n \n )}\n \n )}\n {children}\n \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 \n \n \n \n \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 { useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { COLORS, FONTS } from \"@constants\";\nimport { getInitials } from \"@utils/textUtils\";\nimport Icon from \"../Icon\";\n\nexport interface ProfilePictureProps {\n user?: {\n image: { medium: { url: string | null } };\n name: string;\n };\n size: \"xxs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n margin?: string | 0;\n forMulti?: boolean;\n hidden?: boolean;\n}\n\nconst ProfilePicture = ({\n user,\n size,\n margin = 0,\n forMulti = false,\n hidden = false,\n}: ProfilePictureProps) => {\n const [didImageError, setDidImageError] = useState(false);\n\n return (\n \n {(() => {\n if (hidden || !user) return ;\n if (user.image?.medium?.url && !didImageError)\n return (\n {\n setDidImageError(true);\n }}\n />\n );\n return getInitials(user.name);\n })()}\n \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 `;\n }\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: 23px;\n height: 50px;\n 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 `;\n }\n case \"xl\": {\n return css`\n font-size: 32px;\n font-weight: 600;\n height: 96px;\n 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: ${({ size }) => (size === \"lg\" ? COLORS.NEUTRAL_100 : COLORS.NEUTRAL_200)};\n color: ${COLORS.BLACK};\n border: ${({ forMulti }) => (forMulti ? `1px solid ${COLORS.WHITE}` : \"none\")};\n margin: ${({ margin }) => margin};\n font-weight: 500;\n ${PROFILE_PICTURE_SIZE_STYLES}\n`;\n\nconst Picture = styled.img`\n height: 100%;\n width: 100%;\n ${FONTS.REGULAR_4};\n border-radius: 50%;\n`;\n","// Note: SearchBar 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 { ReactNode } from \"react\";\nimport styled from \"styled-components\";\nimport { COLORS, FONTS } from \"@constants\";\nimport { Icon } from \"@components/library\";\nimport { IconName } from \"../Icon/Icon\";\n\nexport type TagTheme = \"light\" | \"dark\" | \"neutral\";\n\nexport interface TagProps {\n content: ReactNode;\n iconName?: IconName;\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 border?: string;\n}\n\nconst ICON_SIZE = {\n xs: \"xxs\",\n sm: \"xs\",\n md: \"sm\",\n};\n\nconst ICON_MARGIN = {\n xs: \"0 3px 0 0\",\n sm: \"0 4px 0 0\",\n md: \"0 6px 0 0\",\n};\n\nconst Tag = ({\n content,\n iconName,\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 border,\n}: Props) => (\n \n {iconName && (\n \n )}\n {content}\n {onRemove && (\n
\n \n
\n )}\n \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: 36px;\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 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\n &:not(:last-of-type) {\n margin-right: 8px;\n }\n`;\n\nexport default Tag;\n","import Tooltip from \"@components/library/Tooltips/Tooltip\";\nimport { COLORS, LINKS } from \"@constants\";\nimport { t } from \"@utils/i18n\";\nimport { ReactNode } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport styled from \"styled-components\";\n\ninterface Props {\n children: ReactNode;\n}\nexport function PremiumTagTooltip({ children }: Props) {\n return (\n
\n {t(\"components.premium_tag_tooltip.text\")} }\n >\n {children}\n \n
\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 Tag from \"../Tag\";\nimport { PremiumTagTooltip } from \"./PremiumTagTooltip\";\nimport { useSelector } from \"react-redux\";\nimport { RootState } from \"@redux/store\";\n\nexport function PremiumTag() {\n const subscription = useSelector((state: RootState) => state.company.subscription);\n\n if (subscription?.plan === \"rfp_based\") return null;\n\n return (\n \n \n \n );\n}\n","import { COLORS } from \"@constants\";\nimport Tag from \"../Tag\";\n\nexport function AdminTag() {\n return (\n \n );\n}\n","import { COLORS, LINKS } from \"@constants\";\nimport { Icon, Tooltip } from \"@components/library\";\nimport { WhiteLink } from \"./PremiumTagTooltip\";\nimport { t } from \"@utils/i18n\";\n\ninterface Props {\n size?: \"xs\" | \"sm\";\n}\n\nexport function SuperAdminTag({ size = \"xs\" }: Props) {\n return (\n
\n {t(\"components.super_admin_tag.text\")} } tooltipWidth=\"290px\">\n \n \n
\n );\n}\n","import { useState, useEffect, useRef, ReactElement, cloneElement } from \"react\";\nimport styled from \"styled-components\";\nimport { COLORS, STYLES } from \"@constants\";\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([]);\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>();\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 toggleShow(true)} onMouseLeave={() => toggleShow(false)}>\n {children}\n \n {displayedTags.map((tag) => (\n \n {tag}\n \n ))}\n \n \n );\n};\n\nexport default TooltipWrapper;\n\nconst Wrapper = styled.div`\n position: relative;\n`;\nconst Container = styled.div`\n display: ${({ isHovered }) => (isHovered ? \"initial\" : \"none\")};\n position: absolute;\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 { useState, useRef, ReactNode, useEffect } from \"react\";\nimport styled from \"styled-components\";\nimport { COLORS, FONTS } from \"@constants\";\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 \"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 \"data-testid\": dataTestId,\n}: Props) => {\n const [showTooltip, setShowTooltip] = useState(false);\n\n const childrenRef = useRef(null);\n const timeoutRef = useRef>();\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 const childrenVerticalCenter = `${childrenHeight / 2 - 8}px`;\n const top = arrowOffsetTop ?? childrenVerticalCenter;\n\n return (\n \n toggleShow(true)}\n onMouseLeave={() => toggleShow(false)}\n ref={childrenRef}\n shouldFlex={shouldFlex}\n >\n {children}\n \n {\n e.stopPropagation();\n e.preventDefault();\n }}\n onMouseEnter={() => remainOnHover && toggleShow(true)}\n onMouseLeave={() => toggleShow(false)}\n data-testid={dataTestId}\n >\n {content}\n \n \n \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 width: 100%;\n ${({ shouldFlex }) => shouldFlex && \"display: flex;\"}\n`;\nconst StyledTooltip = styled.div`\n display: ${({ showTooltip }) => (showTooltip ? \"flex\" : \"none\")};\n flex-direction: column;\n align-items: center;\n gap: 4px;\n position: absolute;\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 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 z-index: 1;\n cursor: auto;\n`;\nconst ContentContainer = styled.div`\n width: 100%;\n white-space: ${({ shouldWrap }) => (shouldWrap ? \"normal\" : \"no-wrap\")};\n`;\nconst Arrow = styled.div`\n width: 0;\n height: 0;\n position: absolute;\n ${({ position, top }) => {\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 top: ${top};\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 top: ${top};\n `;\n }\n }}\n`;\n","import { ReactElement } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { COLORS, FONTS } from \"@constants\";\nimport { BaseButtonProps } from \"./Button\";\nimport { Link } from \"react-router-dom\";\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 | 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 \n {icon ? {icon} : null}\n {children}\n \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 styled from \"styled-components\";\nimport { COLORS, FONTS } from \"@constants\";\nimport { Link } from \"react-router-dom\";\n\ninterface Props {\n to: string | { pathname: string };\n children: any;\n color?: string;\n font?: string;\n underline?: boolean;\n newTab?: boolean;\n}\n\nconst TextLink = ({\n to,\n children,\n color = COLORS.BLACK,\n font = FONTS.MEDIUM_2,\n underline = false,\n newTab = false,\n}: Props) => {\n return (\n \n {children}\n \n );\n};\n\nexport default TextLink;\n\nconst StyledLink = styled(Link)`\n display: inline-flex;\n align-items: center;\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 styled from \"styled-components\";\nimport { COLORS, FONTS } from \"@constants\";\nimport Icon, { IconName } from \"@components/library/Icon/Icon\";\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}\n\nconst TextButton = ({\n text,\n size = \"md\",\n color = COLORS.HALO_BLUE,\n iconName = \"Chevron Down\",\n iconPosition = \"right\",\n margin,\n id,\n name,\n type = \"button\",\n disabled,\n onClick,\n onMouseEnter,\n onMouseLeave,\n onFocus,\n onBlur,\n \"data-testid\": dataTestId,\n}: Props) => {\n return (\n \n {text}\n {iconName && (\n \n )}\n \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: 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 &:focus {\n outline: none;\n }\n &:disabled {\n opacity: 0.4;\n }\n`;\n","import styled from \"styled-components\";\nimport { COLORS } from \"@constants\";\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([\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 setSortDirection(state!.next)}\n title=\"Change Sort\"\n >\n \n \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 styled from \"styled-components\";\nimport { COLORS, FONTS } from \"@constants\";\n\ninterface Props {\n children: number | string;\n marginLeft?: string;\n accent?: boolean;\n backgroundColor?: string;\n}\n\nconst InfoTag = ({ children, marginLeft = \"12px\", accent = false, backgroundColor }: Props) => {\n return (\n \n {children}\n \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}\n\nfunction FiltersButton({ variant, count, isOpen, setIsOpen }: 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.NEUTRAL_800;\n countTagBackgroundColor = COLORS.BLACK;\n break;\n }\n }\n\n return (\n setIsOpen(!isOpen)}\n >\n \n \n Filters\n {hasFilters && (\n \n {count}\n \n )}\n \n \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.NEUTRAL_800;\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.NEUTRAL_800;\n }\n }\n }};\n padding: 0 20px 0 12px;\n transition: background-color 0.1s ease;\n`;\n","import { ReactNode } from \"react\";\nimport styled from \"styled-components\";\nimport { COLORS, FONTS } from \"@constants\";\nimport DROPDOWN_STYLES from \"./dropdownStyles\";\nimport Select, { components } from \"react-select\";\nimport { TextButton } from \"@components/library\";\nimport { DropdownOption, ExtendedDropdownOption, OptionLabel } from \"./DropdownOption\";\n\ninterface Props {\n children?: ReactNode; // Trigger component. Defaults to a TextButton with the value label\n options: 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}\n\nconst DropdownIndicator = (props) => {\n const { children, value } = props.selectProps;\n\n return (\n // eslint-disable-next-line react/jsx-props-no-spreading\n \n {children ?? }\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\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}: Props) => {\n return (\n onChange(e)}\n isSearchable={isSearchable}\n menuWidth={menuWidth}\n maxMenuHeight={maxMenuHeight}\n menuHorizontalPosition={menuHorizontalPosition}\n menuPosition={isPortal ? \"fixed\" : \"absolute\"}\n menuPortalTarget={isPortal && document.body}\n styles={{\n menuPortal: (base) => ({\n ...base,\n zIndex: 9999,\n width: portalMenuWidth,\n }),\n option: (base, { isSelected }) => {\n return {\n ...base,\n color: COLORS.BLACK,\n ...(isSelected && { backgroundColor: COLORS.BLUE_LIGHT_400 }),\n };\n },\n }}\n menuShouldBlockScroll={isPortal}\n >\n {children}\n \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__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`;\n","import MultiSelectDropdown, { SingleSelectProps } from \"./MultiSelectDropdown\";\n\nconst SingleSelectDropdown = ({ placeholder = \"None\", ...props }: SingleSelectProps) => (\n // eslint-disable-next-line react/jsx-props-no-spreading\n \n);\n\nexport default SingleSelectDropdown;\n","import { ReactNode } from \"react\";\nimport styled from \"styled-components\";\nimport { COLORS, FONTS } from \"@constants\";\nimport { Icon } from \"@components/library\";\nimport DROPDOWN_STYLES from \"./dropdownStyles\";\nimport type { DropdownOption } from \"@components/library/Dropdowns/DropdownOption\";\nimport { MultiSelectDropdownBaseStyles, LabelText, Optional } from \"./MultiSelectDropdown\";\nimport Select from \"react-select\";\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 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 SelectOrCreateDropdown = ({\n value,\n options,\n onChange,\n placeholder,\n label,\n labelFont = FONTS.SEMIBOLD_2,\n isOptional = false,\n createOptionComponent = (\n \n \n Create new\n \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 \n );\n\n return (\n
\n {label ? (\n \n \n {label}\n {isOptional && Optional}\n \n {dropdown}\n \n ) : (\n dropdown\n )}\n {Number(helpText?.length) > 0 && {helpText}}\n {hasAnyError &&\n errors?.map(\n (error) =>\n error.hasError && (\n \n \n {error.errorMessage}\n \n )\n )}\n
\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 ${({ labelFont }) => labelFont};\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_600};\n`;\n","import { getValueFromOption } from \"@utils/dropdownUtils\";\nimport { useUniversityOptions } from \"src/views/Onboarding/Hooks\";\n\nimport { DropdownOption } from \"./DropdownOption\";\nimport MultiSelectDropdown from \"./MultiSelectDropdown\";\nimport Fuse from \"fuse.js\";\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 => {\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 \n );\n}\n","import { useState } from \"react\";\nimport styled from \"styled-components\";\nimport { COLORS, FONTS } from \"@constants\";\nimport { Icon } from \"@components/library\";\nimport DROPDOWN_STYLES, { MULTI_SELECT_TAG_STYLES } from \"../Dropdowns/dropdownStyles\";\nimport CreatableSelect from \"react-select/creatable\";\nimport { components } from \"react-select\";\nimport type { DropdownOption } from \"@components/library/Dropdowns/DropdownOption\";\nimport { getValueFromOption } from \"@utils/dropdownUtils\";\n\ninterface Props {\n value: DropdownOption[];\n onChange: (...args: any[]) => any;\n placeholder: string;\n createOptionText?: string; // e.g. \"Search proposals for\"\n suggestedOptions?: DropdownOption[];\n}\n\nconst CreateOptionLabel = (input: string, createOptionText?: string) => {\n return (\n \n \n {`${createOptionText ?? \"Search for\"} \"${input}\"`}\n \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: string[] = getValue().map(getValueFromOption);\n const filteredChildren = children?.filter(({ value }: DropdownOption) => !values.includes(value));\n\n if (!filteredChildren?.length)\n return (\n \n \n Search by title, content, keywords, researcher, or organization\n \n );\n\n return (\n
\n Try searching for\n {children\n .filter(({ value }: DropdownOption) => !values.includes(value))\n .map(({ value, label }: DropdownOption) => (\n selectOption({ label, value })}>\n \n {value}\n \n ))}\n
\n );\n};\n\nexport const ClearIndicator = (props) => {\n const {\n getStyles,\n innerProps: { ref, ...restInnerProps },\n } = props;\n\n return (\n \n \n \n );\n};\n\nconst MultiValueRemove = ({ ...props }) => {\n return (\n // From the React-Select docs\n /* eslint-disable-next-line */ //@ts-ignore\n \n \n \n );\n};\n\nconst SearchBar = ({ value, placeholder, onChange, createOptionText, suggestedOptions }: Props) => {\n const [inputValue, setInputValue] = useState(\"\");\n\n return (\n \n \n \n \n CreateOptionLabel(input, createOptionText)}\n noOptionsMessage={() => suggestedOptions}\n inputValue={inputValue}\n onInputChange={(e) => setInputValue(e)}\n isMulti\n openMenuOnFocus={true}\n />\n \n );\n};\n\nexport default SearchBar;\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 Dropdown = styled(CreatableSelect)`\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`;\n","import { ChangeEvent, ForwardedRef, forwardRef, ReactNode } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { COLORS, FONTS } from \"@constants\";\nimport { Icon } from \"@components/library\";\nimport resizeGrabber from \"@images/icons/resize_grabber.svg\";\n\ninterface Props {\n id?: string;\n value: string;\n onChange: (e: ChangeEvent) => void;\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?: { hasError: boolean; errorMessage: string }[];\n textarea?: boolean;\n type?: string;\n hideClearButton?: boolean;\n resize?: string;\n startingHeight?: string;\n min?: number;\n max?: number;\n \"data-testid\"?: string;\n}\n\nconst TextInput = (\n {\n id,\n value,\n onChange,\n label,\n labelFont,\n placeholder,\n placeholderColor,\n type = \"text\",\n onBlur,\n optional = false,\n characterLimit,\n warningLimit,\n errors,\n hideClearButton = false,\n textarea = false,\n resize = \"vertical\",\n startingHeight,\n min,\n max,\n \"data-testid\": dataTestId,\n }: Props,\n ref: ForwardedRef\n) => {\n const hasExceededCharacterLimit = characterLimit && value.length > characterLimit;\n const hasExceededWarningLimit = warningLimit && value.length > warningLimit;\n const hasAnyError =\n // If the other error conditions are all false, we still want to check the character limit\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n errors?.map((error) => error.hasError).includes(true) || 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 ) => onChange(e)}\n onBlur={onBlur}\n ref={ref}\n startingHeight={startingHeight}\n resize={resize}\n hasError={hasAnyError}\n data-testid={dataTestId}\n />\n ) : (\n \n ) => onChange(e)}\n onBlur={onBlur}\n ref={ref}\n hasError={hasAnyError}\n hideClearButton={hideClearButton}\n min={min}\n max={max}\n data-testid={dataTestId}\n />\n {value && !hideClearButton && (\n handleClear(e)}>\n \n \n )}\n \n );\n\n const errorIcon = ;\n\n return (\n \n {label ? (\n \n ) : (\n input\n )}\n {characterLimit && (\n \n {hasExceededCharacterLimit && errorIcon}\n {value.length} of {characterLimit} characters including spaces\n \n )}\n {errors?.map(\n (error) =>\n error.hasError && (\n \n {errorIcon}\n {error.errorMessage}\n \n )\n )}\n \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 SelectOrCreateDropdown\nexport const Label = styled.label`\n ${({ labelFont }) => labelFont ?? FONTS.SEMIBOLD_2};\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin: 0;\n`;\nexport const LabelText = styled.div`\n display: flex;\n color: ${({ hasError }) => (hasError ? COLORS.RED_600 : COLORS.BLACK)};\n`;\nexport const Optional = styled.span`\n position: relative;\n top: 2px;\n ${FONTS.MEDIUM_2};\n color: ${COLORS.NEUTRAL_500};\n margin-left: 16px;\n`;\nconst inputStyles = css`\n ${FONTS.REGULAR_2};\n border: 1px solid ${({ hasError }) => (hasError ? COLORS.RED_600 : COLORS.NEUTRAL_300)};\n border-radius: 6px;\n height: 36px;\n width: 100%;\n ${({ hasError }) => hasError && `background-color: ${COLORS.RED_100}`};\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_600 : COLORS.HALO_BLUE)};\n }\n`;\nconst TextArea = styled.textarea`\n ${inputStyles};\n padding: 6px 10px;\n height: ${({ startingHeight }) => startingHeight ?? \"84px\"};\n min-height: 38px;\n resize: ${({ resize }) => 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_600 : COLORS.NEUTRAL_500)};\n }\n`;\nconst InputContainer = styled.div`\n position: relative;\n &:hover input:not(:focus) {\n border: 1px solid ${({ hasError }) => (hasError ? COLORS.RED_600 : COLORS.NEUTRAL_500)};\n }\n`;\nconst Input = styled.input`\n ${inputStyles};\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_600;\n else if (hasWarning) return COLORS.ORANGE;\n return COLORS.BLACK;\n }};\n`;\nconst ErrorRow = styled.div`\n display: flex;\n ${FONTS.MEDIUM_3};\n color: ${COLORS.RED_600};\n`;\n","import { useState, useEffect, useRef, ChangeEvent } from \"react\";\nimport styled from \"styled-components\";\nimport { COLORS, FONTS } from \"@constants\";\nimport { string } from \"prop-types\";\n\ninterface Props {\n label: 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 onChange: (e: ChangeEvent) => void;\n size?: \"md\" | \"sm\";\n \"data-testid\"?: string;\n}\n\nconst Checkbox = ({\n label,\n isChecked,\n isPartiallyChecked,\n isDisabled,\n onChange,\n size = \"md\",\n \"data-testid\": dataTestId,\n}: Props) => {\n const [isHovered, setIsHovered] = useState(false);\n const [isFocused, setIsFocused] = useState(false);\n\n const checkboxRef = useRef(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 setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n \n {\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(size);\n if (isPartiallyChecked) return renderPartialCheckIcon(size);\n })()}\n \n {label}\n \n );\n};\n\nexport default Checkbox;\n\nconst Label = styled.label`\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0;\n ${({ size }) => (size === \"md\" ? FONTS.REGULAR_1 : FONTS.REGULAR_2)};\n color: ${COLORS.BLACK};\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 ${({ isHovered, isFocused, isChecked, isPartiallyChecked }) => {\n if (isFocused || isChecked || isPartiallyChecked) return COLORS.BLUE_600;\n if (isHovered) return COLORS.BLACK;\n return COLORS.NEUTRAL_400;\n }};\n border-radius: 4px;\n background-color: ${({ isChecked, isPartiallyChecked }) =>\n isChecked || isPartiallyChecked ? COLORS.BLUE_LIGHT_400 : COLORS.WHITE};\n cursor: pointer;\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 = (size: \"md\" | \"sm\") => (\n \n \n \n);\nconst renderPartialCheckIcon = (size: \"md\" | \"sm\") => (\n \n \n \n);\n","import { useState, useEffect, useRef, ReactNode, ChangeEvent } from \"react\";\nimport styled from \"styled-components\";\nimport { COLORS } from \"@constants\";\nimport { TextInput, TextButton, InputTooltip } from \"@components/library\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { startsWithVowel } from \"@utils/textUtils\";\nimport { Label, LabelText, Optional } from \"@components/library/Inputs/TextInput\";\n\ninterface Props {\n values: string[];\n onChange: (values: string[]) => void;\n label?: string;\n labelFont?: string;\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 \"data-testid\"?: string;\n}\n\nconst MultiTextInput = ({\n values,\n onChange,\n label,\n labelFont,\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 \"data-testid\": dataTestId,\n}: Props) => {\n const inputKeysRef = useRef(values.map(() => uuidv4()));\n const didAddOrRemoveRef = useRef(false);\n const hiddenInputRef = useRef(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, 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, 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 =\n errors?.map((error) => error.hasError).includes(true) ||\n (characterLimit && values.some((entry) => entry.length > characterLimit));\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 \n \n {values.map((value, i) => {\n const inputComponent = (\n 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 \n {tooltipContent ? (\n \n {inputComponent}\n \n ) : (\n inputComponent\n )}\n \n handleRemove(e, i)}\n data-testid=\"remove-button\"\n />\n \n \n );\n })}\n \n );\n\n return (\n \n {label ? (\n \n ) : (\n inputs\n )}\n \n \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 RemoveButtonContainer = styled.div`\n position: absolute;\n bottom: -4px;\n right: 0;\n`;\n","import { ChangeEvent } from \"react\";\nimport styled from \"styled-components\";\nimport { RemovableInputWrapper, ChipCheckbox } from \"@components/library\";\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 \"data-testid\"?: string;\n}\n\nconst ChipsInput = ({\n label,\n options,\n selectedValues,\n disabledValues = [],\n onChange,\n \"data-testid\": dataTestId,\n}: Props) => {\n const handleChange = (e: ChangeEvent, 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 return (\n
\n onChange(null)}\n isInitiallyOpen={Number(selectedValues?.length) > 0}\n data-testid={`${dataTestId}-wrapper`}\n >\n \n \n {options.map((option) => (\n handleChange(e, option.value)}\n />\n ))}\n \n \n
\n );\n};\n\nexport default ChipsInput;\n\nconst Chips = styled.div`\n display: flex;\n flex-wrap: wrap;\n gap: 16px 8px;\n`;\n","import styled from \"styled-components\";\nimport ReactSwitch from \"react-switch\";\nimport { COLORS, FONTS } from \"@constants\";\n\ninterface Props {\n checked: boolean;\n onChange: (checked: boolean) => any;\n size?: \"sm\" | \"lg\";\n labelLeft?: string;\n labelRight?: string;\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 \n {labelLeft}\n \n \n \n {labelRight}\n \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 { useState, useEffect, useRef, ReactNode, LegacyRef } from \"react\";\nimport styled from \"styled-components\";\nimport { COLORS, FONTS } from \"@constants\";\nimport { TextButton, Icon } from \"@components/library\";\n\ninterface Props {\n children: ReactNode;\n label: ReactNode;\n isInitiallyOpen?: boolean;\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 isInitiallyOpen = false,\n onOpen,\n onRemove,\n errors,\n \"data-testid\": dataTestId,\n}: Props) => {\n const [isExpanded, setIsExpanded] = useState(isInitiallyOpen);\n\n const inputRef = useRef(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 = ;\n\n return (\n \n \n {label}\n {isExpanded ? (\n {\n onRemove();\n setIsExpanded(false);\n }}\n data-testid=\"remove-button\"\n />\n ) : (\n {\n onOpen?.();\n setIsExpanded(true);\n }}\n iconPosition=\"left\"\n data-testid=\"add-button\"\n />\n )}\n \n {isExpanded && (\n <>\n
}>{children}
\n {hasAnyError && (\n \n {errors?.map(\n (error) =>\n error.hasError && (\n \n {errorIcon}\n {error.errorMessage}\n \n )\n )}\n \n )}\n \n )}\n
\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 { Dispatch, ReactNode, SetStateAction } from \"react\";\nimport styled from \"styled-components\";\nimport { COLORS, FONTS } from \"@constants\";\nimport { InfoTag, Icon } from \"@components/library\";\n\ninterface Props {\n children: ReactNode;\n label: string;\n isExpanded: boolean;\n setIsExpanded: Dispatch>;\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 \n setIsExpanded(!isExpanded)}>\n {label}\n \n {areAllSelected ? \"All\" : tagText}\n \n \n \n {isExpanded && (\n <>\n {children}\n {shouldShowInfoText && infoText && (\n \n \n {infoText}\n \n )}\n \n )}\n \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 { MouseEventHandler, useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\nimport { useHistory } from \"react-router-dom\";\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(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 =>\n () => {\n if (link?.isExternal) {\n window.location.href = url;\n } else {\n history.push(url);\n }\n };\n\n return (\n \n {icon && }\n {text}\n {link?.text && link?.url && {link.text}}\n \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 styled from \"styled-components\";\n\nimport { FONTS } from \"@constants\";\nimport BlankModal, { BlankModalProps } from \"../ModalBases/BlankModal\";\nimport Button from \"../Buttons/Button\";\nimport { IconName } from \"../Icon/Icon\";\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}: Props &\n Pick) => {\n if (!isOpen) return null;\n\n return (\n \n \n {headerText}\n {subHeaderText}\n {children}\n \n \n \n {confirmButtonText ?? \"Confirm\"}\n \n \n \n \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 { useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { setMessengerState } from \"@redux/actions/messengerActions\";\nimport { MessengerData } from \"@redux/reducers/messengerReducer\";\nimport styled from \"styled-components\";\nimport { COLORS, FONTS, STYLES } from \"@constants\";\nimport { Link } from \"react-router-dom\";\nimport ProfilePicture from \"../ProfilePicture/ProfilePicture\";\nimport { TruncatedText, TextButton } from \"@components/library\";\nimport { PremiumTag, SuperAdminTag } from \"../Tags/users\";\n\ninterface Props {\n size?: \"sm\" | \"md\" | \"lg\" | \"xl\";\n user?: {\n name: string;\n image: { medium: { url: string | null } };\n profile_id?: string;\n title?: string;\n location?: string;\n profile_info: {\n title: string;\n location?: string;\n is_premium?: boolean;\n is_super_admin?: boolean;\n };\n };\n disableLink?: boolean;\n withMessageButton?: boolean;\n messengerData?: MessengerData;\n userRole?: 0 | 1 | 2;\n hidden?: boolean;\n tooltipPosition?: \"top\" | \"bottom\" | \"left\" | \"right\";\n showSponsorRoles?: boolean;\n}\n\nconst UserPreview = ({\n size = \"sm\",\n user,\n disableLink = false,\n withMessageButton = false,\n messengerData,\n userRole = 0,\n hidden = false,\n tooltipPosition = \"top\",\n showSponsorRoles = false,\n}: Props) => {\n const [isMessageButtonHovered, setIsMessageButtonHovered] = useState(false);\n\n const dispatch = useDispatch();\n\n const disabled = disableLink || userRole !== 0 || hidden;\n\n const handleMessageClick = (e) => {\n e.preventDefault();\n\n if (messengerData) {\n dispatch(setMessengerState(messengerData));\n }\n };\n\n let association = (\n \n {userRole === 1 && hidden ? \"Reviewer\" : user?.profile_info?.title ?? user?.title}\n \n );\n\n if (userRole === 0) {\n association = (\n \n );\n }\n\n return (\n \n \n \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: ${({ disabled, isMessageButtonHovered }) =>\n disabled || isMessageButtonHovered ? \"none\" : \"underline\"};\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","// 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 styled, { css } from \"styled-components\";\nimport { COLORS } from \"@constants\";\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 ;\n }\n const displayedUsers = users.slice(0, size === \"md\" ? 1 : displayedUserCount);\n const shouldShowAdditionalUsers = (size === \"md\" ? 1 : displayedUserCount) < users.length;\n\n return (\n \n {displayedUsers.map((user, index) => {\n return (\n
\n \n
\n );\n })}\n {shouldShowAdditionalUsers && (\n \n +{users.length - (size === \"md\" ? 1 : displayedUserCount)}\n \n )}\n
\n );\n};\n\nexport default Thumbnail;\n\nconst MulitReviewersContainter = 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 styled from \"styled-components\";\nimport Thumbnail from \"../Thumbnail\";\nimport { FONTS, STYLES } from \"@constants\";\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 \n \n
\n \n {users.map((user, index) => {\n return (\n \n {user.name}\n {/* 4 total can be displayed */}\n {index !== users.length - 1 && index < 3 && \", \"}\n \n );\n })}\n \n {users[0].location}\n
\n
\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 { useState, useEffect, useRef, ChangeEvent } from \"react\";\nimport styled from \"styled-components\";\nimport { COLORS, FONTS } from \"@constants\";\nimport { Icon } from \"@components/library\";\n\ninterface Props {\n label: string;\n checked: boolean;\n disabled?: boolean;\n onChange: (e: ChangeEvent) => void;\n borderColor?: string;\n}\n\nconst ChipCheckbox = ({\n label,\n checked,\n disabled,\n onChange,\n borderColor = COLORS.NEUTRAL_300,\n}: Props) => {\n const [isFocused, setIsFocused] = useState(false);\n\n const checkboxRef = useRef(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 \n );\n};\n\nexport default ChipCheckbox;\n\nconst Label = styled.label`\n display: flex;\n align-items: center;\n width: fit-content;\n height: 36px;\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 &&& {\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`;\nconst Checkbox = styled.input`\n display: none;\n`;\n","import { useState, useEffect, ReactElement, cloneElement } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { RootState } from \"@redux/store\";\nimport styled from \"styled-components\";\nimport { COLORS } from \"@constants\";\nimport { Tag, TagTooltip } from \"@components/library\";\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([]);\n const [displayedTags, setDisplayedTags] = useState([]);\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;\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 \n {invisibleTags}\n {displayedTags}\n {children.length > 0 && (\n \n {/* This needs to be in its own div to prevent the not(:last-of-type) styles */}\n \n \n \n \n )}\n \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","import styled from \"styled-components\";\nimport { COLORS, FONTS } from \"@constants\";\nimport { Icon } from \"@components/library\";\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) => pageNumber > 0 && 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 \n {currentPage > 5 && (\n \n )}\n {pageNumbers.map((pageNumber) => (\n typeof pageNumber === \"number\" && setCurrentPage(pageNumber)}\n >\n {pageNumber}\n \n ))}\n {totalPages > currentPage + 4 && (\n \n )}\n \n );\n};\n\nexport default Pagination;\n\nconst Container = styled.div`\n display: flex;\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 { ReactNode } from \"react\";\nimport styled from \"styled-components\";\nimport { COLORS, STYLES, WINDOW_DIMENSIONS } from \"@constants\";\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 \n {children}\n \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 &:hover {\n background-color: ${COLORS.NEUTRAL_50};\n outline: none;\n ${({ showHoverBorder }) => showHoverBorder && `border-top: 4px solid ${COLORS.HALO_BLUE};`}\n box-shadow: ${STYLES.SHADOW_C};\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 { useState, useEffect, useRef, ReactNode } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { RootState } from \"@redux/store\";\nimport styled from \"styled-components\";\nimport { FONTS } from \"@constants\";\nimport { Tooltip } from \"@components/library\";\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(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 \n {text}\n \n );\n\n if (isTruncated && withTooltip) {\n textElement = (\n \n {textElement}\n \n );\n }\n\n if (!text) return null;\n\n return isTruncated ? {textElement} : 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 { useState, ReactNode } from \"react\";\nimport styled from \"styled-components\";\nimport { COLORS, FONTS } from \"@constants\";\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 setIsInputFocused(true)} onBlur={() => setIsInputFocused(false)}>\n {children}\n \n \n \n {content}\n \n \n \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 { ReactNode, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { COLORS, FONTS } from \"@constants\";\nimport { InfoTag } from \"@components/library\";\n\ninterface Props {\n activeTab: string;\n setActiveTab: (newTab: string) => void;\n tabs: {\n key: string;\n label: string | ReactNode;\n count?: number;\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}: Props) => {\n const [hoveredTab, setHoveredTab] = useState();\n\n return (\n \n {tabs.map((tab) => {\n const isActive = activeTab === tab.key;\n return (\n {\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 {\n if (isActive) {\n return activeColor ?? (variant === \"normal\" ? COLORS.BLACK : COLORS.ORANGE_900);\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 \n )}\n \n );\n })}\n \n );\n};\n\nexport default Tabs;\n\nconst Container = styled.div`\n display: flex;\n gap: ${({ tabDistance }) => tabDistance};\n ${({ margin }) => margin && `margin: ${margin}`};\n`;\nconst Tab = styled.button`\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`;\n","import styled from \"styled-components\";\nimport { COLORS, FONTS } from \"@constants\";\nimport { Icon } from \"@components/library\";\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}\n\nconst ProgressStep = ({\n stepNumber,\n label,\n onClick,\n isCurrent,\n isComplete,\n isDisabled,\n needsUpdate,\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 \n {(() => {\n if (stepStyle === \"complete\")\n return ;\n if (stepStyle === \"needsUpdate\") return Attention;\n return {stepNumber};\n })()}\n {label}\n \n );\n};\n\nexport default ProgressStep;\n\nconst Container = styled.button`\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 0;\n background-color: transparent;\n border: none;\n text-align: left;\n color: ${({ stepStyle }) => {\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 ${({ stepStyle }) =>\n [\"current\", \"complete\", \"needsUpdate\"].includes(stepStyle) ? FONTS.SEMIBOLD_3 : FONTS.MEDIUM_3};\n &:focus:not(:active) {\n outline: none;\n & > span {\n ${({ stepStyle }) =>\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`;\nconst StepNumber = styled.div`\n display: flex;\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 \n \n \n \n);\n","import { ReactNode } from \"react\";\nimport styled from \"styled-components\";\nimport { COLORS, FONTS } from \"@constants\";\nimport { Icon } from \"@components/library\";\n\ninterface Props {\n shouldDisplay?: boolean;\n text: ReactNode;\n type?: \"info\" | \"attention-dark\" | \"attention-orange\";\n width?: string;\n margin?: string;\n padding?: string;\n \"data-testid\"?: string;\n}\n\nconst InfoBanner = ({\n shouldDisplay = true,\n text,\n type = \"info\",\n width = \"fit-content\",\n margin,\n padding = \"16px\",\n \"data-testid\": dataTestId,\n}: Props) => {\n let icon = ;\n if (type.includes(\"attention\")) {\n icon = (\n \n );\n }\n\n return shouldDisplay ? (\n \n {icon}\n {text}\n \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 background-color: ${({ type }) => (type === \"info\" ? COLORS.NEUTRAL_100 : COLORS.ORANGE_100)};\n ${({ type }) => (type === \"attention-orange\" ? FONTS.MEDIUM_2 : FONTS.REGULAR_3)};\n color: ${({ type }) => (type === \"attention-orange\" ? COLORS.ORANGE_900 : COLORS.BLACK)};\n`;\n","import { MouseEvent } from \"react\";\nimport styled from \"styled-components\";\nimport { MessageAttachmentAsJson } from \"@requests/messages\";\nimport { COLORS, FONTS, STYLES } from \"@constants\";\nimport { formatBytes, formatMIMEContentType } from \"@utils/textUtils\";\n\nimport IconButton from \"../Buttons/IconButton\";\n\ninterface Props {\n attachment: Partial;\n isInbox?: boolean;\n uploadPercentage?: number; // integer within [0, 100]; undefined means the attachment is sent\n onRemove?: () => void;\n onClick?: () => void;\n}\n\nconst MessageAttachment = ({ attachment, isInbox, uploadPercentage, onRemove, onClick }: Props) => {\n const handleRemove = (event: MouseEvent) => {\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 size = formatBytes(size_in_bytes);\n const type = formatMIMEContentType(mime_content_type);\n const isImage = mime_content_type?.startsWith(\"image/\");\n\n return (\n \n \n {(() => {\n // Display thumbnail if thumbnail exists\n if (thumbnail_url) return ;\n // Otherwise, display loading bar (max out at 95% until thumbnail is done loading too)\n return ;\n })()}\n \n
\n {name}\n \n {type} • {size}\n \n
\n {isForUpload && (\n \n \n \n )}\n
\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 }) =>\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\nexport default MessageAttachment;\n","import styled from \"styled-components\";\nimport { WINDOW_DIMENSIONS } from \"@constants\";\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 styled from \"styled-components\";\n\nexport default styled.div`\n display: flex;\n justify-content: center;\n`;\n","import { ReactNode } from \"react\";\nimport styled from \"styled-components\";\n\nimport { COLORS, FONTS } from \"@constants\";\nimport BlankModal, { BlankModalProps } from \"../ModalBases/BlankModal\";\nimport Button from \"../Buttons/Button\";\nimport Icon from \"../Icon\";\n\ninterface Props {\n message?: ReactNode;\n}\n\nconst ErrorModal = ({\n message,\n isOpen,\n onClose,\n}: Props & Pick) => {\n if (!isOpen || !message) return null;\n\n return (\n \n \n \n \n
\n {message}\n
\n \n \n \n \n
\n \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 { COLORS, STYLES, 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 children: ReactNode;\n}\n\ninterface ContainerProps {\n hasTopDivider: boolean;\n hasPaddingTop: boolean;\n hasPaddingBottom: boolean;\n}\n\nconst PageContainer = ({\n hasTopDivider = false,\n hasPaddingTop = true,\n hasPaddingBottom = true,\n children,\n}: Props) => {\n return (\n \n {children}\n \n );\n};\n\nexport default PageContainer;\n\nconst Container = styled.div`\n padding: ${({ hasPaddingTop, hasPaddingBottom }) => `${hasPaddingTop ? \"69px\" : \"0px\"} ${\n STYLES.SIDE_PADDING\n }px\n ${hasPaddingBottom ? \"69px\" : \"0px\"}`};\n\n ${({ hasTopDivider }: ContainerProps) =>\n hasTopDivider && `border-top: 1px solid ${COLORS.NEUTRAL_100};`}\n\n ${WINDOW_DIMENSIONS.TABLET_MEDIA_QUERY} {\n padding: 16px;\n }\n`;\nconst Children = styled.div`\n max-width: ${STYLES.MAX_WINDOW_WIDTH}px;\n margin: 0 auto; ;\n`;\n","import { useState } from \"react\";\nimport styled from \"styled-components\";\nimport { COLORS } from \"@constants\";\nimport { Icon } from \"@components/library\";\n\ninterface Props {\n imageUrl?: string | null;\n isPrivate?: boolean;\n size?: \"sm\" | \"md\" | \"lg\";\n}\n\nconst CompanyAvatar = ({ imageUrl, isPrivate = false, size = \"lg\" }: Props) => {\n const [hasError, setHasError] = useState(false);\n\n return (\n \n {(() => {\n if (isPrivate) return ;\n if (imageUrl && !hasError)\n return setHasError(true)} />;\n return ;\n })()}\n \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 ${({ size }) => {\n if (size === \"sm\") {\n return `\n width: 40px;\n height: 40px;\n border-radius: 4px;\n `;\n }\n 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 === \"sm\") {\n return `\n max-width: 30px;\n max-height: 30px;\n `;\n }\n 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 { ReactNode } from \"react\";\nimport styled from \"styled-components\";\nimport { COLORS, FONTS, WINDOW_DIMENSIONS } from \"@constants\";\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 \n {title && {title}}\n {subtitle && {subtitle}}\n {children}\n \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 styled from \"styled-components\";\nimport { COLORS } from \"@constants\";\nimport { Icon } from \"@components/library\";\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 \n \n \n );\n }\n case \"trial\": {\n return (\n \n \n \n );\n }\n case \"active\": {\n return (\n \n \n \n );\n }\n case \"inactive\": {\n return (\n \n \n \n );\n }\n case \"complete\": {\n return (\n \n \n \n );\n }\n case \"open call\": {\n return (\n \n \n \n );\n }\n case \"open call paused\": {\n return (\n \n \n \n );\n }\n case \"open call complete\": {\n return (\n \n \n \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","const COLORS = {\n NEUTRAL_900: \"#111827\",\n BLACK: \"#232D38\", // NEUTRAL_800\n NEUTRAL_700: \"#374151\",\n NEUTRAL_600: \"#4B5563\",\n NEUTRAL_500: \"#6B7280\",\n NEUTRAL_400: \"#9CA3AF\",\n NEUTRAL_350: \"#C5CAD2\",\n NEUTRAL_300: \"#D1D5DB\",\n NEUTRAL_250: \"#DCE2E8\",\n NEUTRAL_200: \"#E5E7EB\",\n NEUTRAL_100: \"#E4EBF1\",\n NEUTRAL_50: \"#F8FAFC\",\n WHITE: \"#FFFFFF\", // NEUTRAL_0\n\n BLUE_900: \"#004980\",\n BLUE_650: \"#0C76C4\",\n BLUE_600: \"#0088D6\",\n HALO_BLUE: \"#009CEA\", // BLUE_500\n BLUE_450: \"#2BB3F6\",\n BLUE_LIGHT_700: \"#6BB1EC\",\n BLUE_LIGHT_600: \"#93CDFF\",\n BLUE_LIGHT_500: \"#C6E5FF\",\n BLUE_LIGHT_400: \"#D9EEFF\",\n BLUE_LIGHT_350: \"#DEF0FF\",\n BLUE_LIGHT_300: \"#EEF6FD\",\n BLUE_LIGHT_250: \"#F2F9FF\",\n BLUE_LIGHT_100: \"#F5FBFF\",\n BLUE_LIGHT_50: \"#F9FDFF\",\n BLUE_GRADIENT: \"linear-gradient(91.99deg, #0068a7 0%, #009cea 100%)\",\n\n RED_700: \"#AC2B42\",\n RED_600: \"#C9334E\",\n RED: \"#DE3957\", // RED_500\n RED_300: \"#FDBFC9\",\n RED_200: \"#FFCED6\",\n RED_100: \"#FFE6EB\",\n RED_50: \"#FFF6F8\",\n ACCENT_800: \"#9A1A67\",\n ACCENT_600: \"#C92D80\",\n ACCENT_100: \"#F9E1FA\",\n ORANGE_900: \"#AF5000\",\n ORANGE: \"#D47200\", // ORANGE_800\n ORANGE_700: \"#E7820E\",\n ORANGE_500: \"#FAB228\",\n ORANGE_300: \"#FFD88B\",\n ORANGE_200: \"#FFEAB1\",\n ORANGE_100: \"#FFF3D3\",\n ORANGE_50: \"#FFF9E9\",\n GREEN_800: \"#007C01\",\n GREEN: \"#1A9A1F\", // GREEN_700\n GREEN_400: \"#3FD445\",\n GREEN_200: \"#CEF6D0\",\n GREEN_100: \"#E1FAE2\",\n PINK_800: \"#9A1A67\",\n PINK_700: \"#B22474\",\n PINK_600: \"#C92D80\",\n PINK_200: \"#F6CFEC\",\n PINK_100: \"#F9E1FA\",\n PINK_50: \"#FDF5FD\",\n\n // Used for Get Started page\n PURPLE: \"#723af5\",\n // Currently used in CompanyPage hero gradient\n PURPLE_LIGHT: \"#EAE8F8\",\n\n // Used for Reckitt Benckiser\n RB_PINK: \"#EA3592\",\n RB_PINK_LIGHT: \"#da96b1\",\n RB_PINK_BORDER: \"#da1c7e\",\n RB_PINK_DARK: \"#c71470\",\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: \"\",\n};\n","export default {\n HALO_ID: 0,\n BASF_ID: 1710,\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\nconst BASE_WINDOW_WIDTH = 1350;\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};\n","const PROPOSAL_STATUSES_SCIENTIST = {\n // Order\n 0: \"Awaiting review\",\n 3: \"Advanced\",\n 4: \"Finalist\",\n 5: \"Awarded\",\n 2: \"Declined\",\n};\n\nexport default PROPOSAL_STATUSES_SCIENTIST;\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","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","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 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_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: 28px;\n `,\n HEADING_5_MEDIUM: `\n font-weight: 500;\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_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 REGULAR_1: `\n font-weight: 325;\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_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_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 = {\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 // @ts-ignore This weight is specific to this font style. Adding it to the type values causes\n // a linting error everywhere else that a font type is used\n fontWeight: 325,\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};\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 CONTENT_WIDTH: 1275,\n // From analysis of common user screen widths. 1920px covers 80+% of users across all types\n MAX_WINDOW_WIDTH: 1920,\n SIDE_PADDING: 82,\n HERO_MEDIA_QUERY: `@media screen and (max-width: 1440px)`,\n};\n","const PROPOSAL_TYPES = {\n NORMAL: \"\",\n MATERIALS: \"ChemicalCompoundProposal\",\n};\n\nexport default PROPOSAL_TYPES;\n","export const PATENT_STATUSES = [\n { key: \"provisional\", text: \"Provisional\" },\n { key: \"non_provisional\", text: \"Non-provisional\" },\n { key: \"issued\", text: \"Issued\" },\n];\n","import { PATENT_STATUSES } from \"@tsTypes/patents\";\n\nexport const PATENT_STATUS_OPTIONS = PATENT_STATUSES.map((status) => ({\n key: status.key,\n text: status.text,\n value: status.key,\n}));\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};\n","// Note: Make sure to add new flags to `app/services/flipper_gates.rb` too!\nconst FEATURE_FLAGS = [\n \"NOTIFICATION_CAMPAIGNS_SCHEDULING\",\n \"NOTIFICATION_RFP_CAMPAIGNS\",\n \"NOTIFICATION_RFP_ENGAGED_VIEWER_SEQUENCE\",\n \"NOTIFICATION_RFP_LAUNCH_DIRECT_SEQUENCE\",\n \"HUBSPOT_FORM_SUBMISSION_SYNC\",\n \"HUBSPOT_SHADOW_PROFILE_LIST_SYNC\",\n \"HUBSPOT_TAXONOMY_SYNC\",\n \"UNCLAIMED_COMPANY_PAGE\",\n \"REQUEST_FOR_STARTUPS\",\n \"KEYWORD_SUGGESTIONS\",\n \"PROPOSAL_TECHNOLOGY_READINESS_LEVEL\",\n \"PROPOSAL_REVIEW_SYSTEM_V2\",\n \"HOW_DID_YOU_HEAR_ABOUT_US\",\n \"SIGN_OUT_ON_ONBOARDING\",\n \"SESSION_TIMEOUT\",\n] as const;\n\n// Export object of { [name as symbol]: boolean }\nexport default FEATURE_FLAGS.reduce(\n (obj, flag) => ({ ...obj, [flag]: gon.global?.feature_flags?.includes(flag) }),\n {}\n) as { [F in typeof FEATURE_FLAGS[number]]: boolean };\n","export default {\n HALO_INTRO_LINK: \"https://meetings.hubspot.com/hana-moss/halo-intro\",\n GET_MORE_SEATS: \"https://meetings.hubspot.com/hana-moss/halo-intro\", // TODO: (justinpchang) Fill in\n ROLES_AND_PERMISSIONS_FAQS: \"/\", // TODO: (justinpchang) Fill in\n};\n","import COLORS from \"./colors\";\n// @ts-ignore\nimport PROPOSAL_STATUSES, { PROPOSAL_STATUS_TO_TAB } from \"./proposalStatuses.js.erb\";\n// @ts-ignore\nimport CREDENTIALS from \"./credentials.js.erb\";\n// @ts-ignore\nimport COMPANIES from \"./companies.js.erb\";\nimport WINDOW_DIMENSIONS from \"./windowDimensions\";\nimport PROPOSAL_STATUSES_SCIENTIST from \"./proposalStatusesScientist\";\nimport HUBSPOT from \"./hubspot\";\nimport HEADERS from \"./company_headers\";\nimport BLOCKED_EMAIL_DOMAINS from \"./blockedEmailDomains\";\nimport RFP_MAX_CHAR_COUNT from \"./CharLimitConst\";\nimport { TESTING4AG, CORTEVA } from \"./requestForMaterials\";\nimport FONTS, { JS_FONTS } from \"./fonts\";\nimport STYLES from \"./styles\";\nimport PROPOSAL_TYPES from \"./proposalTypes\";\nimport { PATENT_STATUS_OPTIONS } from \"./materials\";\nimport COUNTRY_OPTIONS from \"./countryOptions\";\nimport ENV from \"./env\";\nimport FEATURE_FLAGS from \"./featureFlags\";\nimport LINKS from \"./links\";\n\nexport const SUBSCRIPTION_END_WARNING_START = 60;\nexport const HALO_INTRO_LINK = \"https://meetings.hubspot.com/hana-moss/halo-intro\";\n\nexport {\n COLORS,\n PROPOSAL_STATUSES,\n PROPOSAL_STATUS_TO_TAB,\n PROPOSAL_STATUSES_SCIENTIST,\n HUBSPOT,\n WINDOW_DIMENSIONS,\n HEADERS,\n BLOCKED_EMAIL_DOMAINS,\n RFP_MAX_CHAR_COUNT,\n TESTING4AG,\n CORTEVA,\n FONTS,\n JS_FONTS,\n STYLES,\n PROPOSAL_TYPES,\n PATENT_STATUS_OPTIONS,\n COUNTRY_OPTIONS,\n ENV,\n CREDENTIALS,\n COMPANIES,\n FEATURE_FLAGS,\n LINKS,\n};\n","import type { MessengerData } from \"@redux/reducers/messengerReducer\";\nimport { payloadActionGenerator } from \"@utils/redux\";\nimport { batch } from \"react-redux\";\n\nimport { getMessageByRecipients, getMessageByUserProposal } 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\";\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);\n\nexport const fetchCurrentThreadByProposal = (userId: number, proposalId: number) => {\n return async (dispatch) => {\n dispatch(setIsMessengerThreadLoading(true));\n const response = await getMessageByUserProposal({ userId, proposalId });\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 initiatorUserId: number,\n recipientUserId: number\n) => {\n return async (dispatch) => {\n dispatch(setIsMessengerThreadLoading(true));\n const response = await getMessageByRecipients({\n initiatorUserId,\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 appsignal from \"@utils/appsignal\";\nimport request from \"./request\";\n\nexport const getDisciplines = async () => {\n const response = await request.get(\"/disciplines\");\n return response.data;\n};\n\nexport const getAreasOfExpertise = async () => {\n const response = await request.get(\"/areas_of_expertise\");\n return response.data;\n};\n\nexport const getTechniques = async () => {\n const response = await request.get(\"/techniques\");\n return response.data;\n};\n\nexport const getKeywords = async (): Promise<{\n disciplines: string[];\n areas_of_expertise: string[];\n techniques: string[];\n}> => {\n const response = await request.get(\"/keywords\");\n return response.data;\n};\n\nexport const createKeyword = async (\n name: string,\n type: \"Discipline\" | \"AreaOfExpertise\" | \"Technique\"\n): Promise => {\n try {\n await request.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 getKeywordSuggestions = async (\n keywords: string[],\n type: \"All\" | \"Discipline\" | \"AreaOfExpertise\" | \"Technique\"\n): Promise => {\n try {\n const response = await request.post(\"/keywords/suggestions\", { keywords, type });\n return response.data.suggestions;\n } catch (err) {\n appsignal.sendError(err, (span) => {\n span.setAction(\"keywords#getKeywordsSuggestion\");\n span.setTags({\n keywords: keywords.join(\";\"),\n });\n });\n return [];\n }\n};\n","import { Dispatch, SetStateAction } from \"react\";\nimport { MessageAttachment } from \"@tsTypes/schema\";\nimport request from \"./request\";\nimport { MessageThreadsIndexResponse } from \"@tsTypes/message_threads\";\nimport {\n MessageAttachmentPartial,\n MessageThreadLookupResponse,\n MessageThreadsShowResponse,\n} from \"@tsTypes/index\";\n\nexport type MessageAttachmentAsJson = MessageAttachment & {\n file_url: string;\n thumbnail_url: string;\n download_url: string;\n};\n\nexport const getMessageThreads = async (): Promise => {\n const response = await request.get(\"/message_threads\");\n return response.data;\n};\n\nexport const getMessages = async (messageThreadId: number): Promise => {\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 });\n\n return response.data;\n};\n\nexport const setDraftMessage = async ({\n proposalId,\n content,\n attachmentIds,\n}: {\n proposalId: number;\n content: string;\n attachmentIds: number[];\n}) => {\n const response = await request.post(`/draft_messages`, {\n proposal_id: proposalId,\n content,\n attachment_ids: attachmentIds,\n });\n\n return response.data;\n};\n\nexport const getDraftMessage = async (\n proposalId: number\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 proposal_id: proposalId,\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 getMessageByUserProposal = async ({\n userId,\n proposalId,\n}): Promise => {\n try {\n const response = await request.get(`/message_threads/lookup`, {\n params: {\n user_id: userId,\n proposal_id: proposalId,\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 getMessageByRecipients = async ({\n initiatorUserId,\n recipientUserId,\n}): Promise => {\n try {\n const response = await request.get(\"/message_threads/lookup\", {\n params: {\n initiator_user_id: initiatorUserId,\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 proposalId,\n userId,\n content,\n attachmentIds,\n}: {\n proposalId?: number;\n userId: number;\n content: string;\n attachmentIds: number[];\n}) => {\n const response = await request.post(`/message_threads`, {\n proposal_id: proposalId,\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>\n): Promise => {\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\nconst api = axios.create({\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n \"X-CSRF-Token\": authenticityToken()!,\n },\n});\n\n// JWT refresh interceptor\napi.interceptors.response.use(\n (res) => res,\n async (error) => {\n if (\n error.response.data.error === \"jwt expired\" ||\n error.response.data.error === \"No authorization token was found\"\n ) {\n // referesh the token\n const tokenResponse = await api.get(\"/token\");\n\n // token returned successfully\n if (tokenResponse?.status === 200) {\n // retry the last request\n return api.request(error.config);\n }\n } else if (error.response.data.error === \"logged out\") {\n window.location.href = \"/login\";\n return Promise.reject(error);\n }\n\n // Return error if none of these conditions apply\n return Promise.reject(error);\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 return;\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","export enum RequestableType {\n OPEN_CALL = \"OpenCall\",\n RFP = \"Rfp\",\n REQUEST_FOR_STARTUP = \"RequestForStartup\",\n}\n\nexport enum LaunchableRequestStatus {\n ACTIVE = \"ACTIVE\",\n CLOSED = \"CLOSED\",\n COMING_SOON = \"COMING_SOON\",\n IN_EXTENSION = \"IN_EXTENSION\",\n}\n","export enum RfpPartnershipModel {\n SPONSORED_RESEARCH = \"SPONSORED_RESEARCH\",\n GIFT = \"GIFT\",\n CO_DEVELOPMENT = \"CO_DEVELOPMENT\",\n EQUITY_INVESTMENT = \"EQUITY_INVESTMENT\",\n ACQUISITION = \"ACQUISITION\",\n SUPPLY_PURCHASE = \"SUPPLY_PURCHASE\",\n LICENSING = \"LICENSING\",\n MATERIAL_TRANSFER = \"MATERIAL_TRANSFER\",\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.EQUITY_INVESTMENT]: \"Equity investment\",\n [RfpPartnershipModel.ACQUISITION]: \"Acquisition\",\n [RfpPartnershipModel.SUPPLY_PURCHASE]: \"Supply/purchase\",\n [RfpPartnershipModel.LICENSING]: \"Licensing\",\n [RfpPartnershipModel.MATERIAL_TRANSFER]: \"Material transfer\",\n};\n\nexport enum RfpBenefitType {\n SPONSORED_RESEARCH = \"sponsored_research\",\n GIFT = \"gift\",\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}\n\nexport enum ReviewTeamRole {\n NORMAL = 0,\n ADMIN = 1,\n EXPERT = 2,\n}\n\nexport enum RfpStatus {\n ACTIVE = \"ACTIVE\",\n CLOSED = \"CLOSED\",\n COMING_SOON = \"COMING_SOON\",\n IN_EXTENSION = \"IN_EXTENSION\",\n}\n\nexport enum RfpFeedbackDeadlineStatus {\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","import { BLOCKED_EMAIL_DOMAINS } from \"@constants\";\nimport moment from \"moment\";\nimport { MouseEvent, lazy, useRef } from \"react\";\n\ndeclare global {\n interface Window {\n __skipJsPageTitleGeneration: boolean;\n analytics: any;\n }\n const analytics: any;\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_rfp_ids;\n delete profileInfo.proposals;\n delete profileInfo.verified;\n\n const userProperties = {\n ...userInfo,\n ...profileInfo,\n };\n\n return userProperties;\n};\n\nexport const identify = (currentUser) => {\n window?.analytics?.identify(currentUser.id, getUserInfo(currentUser));\n if (location.host === \"localhost:3000\") {\n console.log(`Analytics: identify() %o`, currentUser);\n }\n};\n\nexport const page = () => {\n window?.analytics?.page();\n if (location.host === \"localhost:3000\") {\n console.log(`Analytics: page()`);\n }\n};\n\nexport const track = (eventName: string, info = {}) => {\n window?.analytics?.track(eventName, info);\n if (location.host === \"localhost:3000\") {\n console.log(`Analytics: track(%s) %o`, eventName, info);\n }\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\n// Takes a DateTime in UTC and returns the remaining full days from the user's time zone.\nexport const daysUntilLocalDate = (date) => {\n if (!date?.includes(\"Z\")) return;\n\n const localDate = moment(date);\n const daysUntilDate = Math.ceil(localDate.diff(Date.now(), \"days\", true));\n\n return daysUntilDate;\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\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 title = `${format(path[3])} | ${format(path[2])}`;\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","import Appsignal from \"@appsignal/javascript\";\nimport { CREDENTIALS } from \"@constants\";\n\nimport { plugin as breadcrumbsPlugin } from \"@appsignal/plugin-breadcrumbs-console\";\nimport { plugin as networkBreadcrumbsPlugin } from \"@appsignal/plugin-breadcrumbs-network\";\nimport { plugin as windowEventsPlugin } from \"@appsignal/plugin-window-events\";\nimport { plugin as pathDecoratorPlugin } from \"@appsignal/plugin-path-decorator\";\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});\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 (location.hostname === \"localhost\" || location.hostname === \"127.0.0.1\") {\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 \"@requests/sponsors\";\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 onlyPremium = 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 (onlyPremium && !sponsorUser.profile_info.premium) {\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 isPremium: sponsorUser.profile_info.premium,\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 \"i18n-js\";\nimport en from \"./generated/en.json\";\n\nconst i18n = new I18n(en);\n\nexport default i18n;\n","import ReactDOMServer from \"react-dom/server\";\nimport { ReactElement } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport i18n from \"@locales\";\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\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 | 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 ;\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 \n {parts[0]}\n {link}\n {parts[1]}\n \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(t(\"error.default_with_code\", { status: error.status }));\n};\n","import Tooltip from \"../components/Tooltip\";\nimport ReactMarkdown from \"react-markdown\";\nimport gfm from \"remark-gfm\";\nimport remark from \"remark\";\nimport strip from \"strip-markdown\";\nimport { COLORS, JS_FONTS } from \"@constants\";\nimport { compactStringArray } from \"./appUtils\";\nimport { format } from \"date-fns\";\nimport { utcToZonedTime } from \"date-fns-tz\";\n\nexport const formatDateToEastern = (date: string, fmt: string) => {\n return format(utcToZonedTime(date, \"America/New_York\"), fmt);\n};\n\nexport const renderNewlines = (text) =>\n text?.split(\"\\n\").map((m, i) => (\n \n {i ?
: <>}\n {m}\n
\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 (????????)\n return text?.replace(/~~\\?\\?\\?\\?.*?\\?\\?\\?\\?~~/gs, \"\");\n};\n\nconst renderTooltip = (text) => {\n if (!matchTooltip(text)) {\n return ;\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 \n \n \n );\n};\n\nexport const stripMarkdownText = (section) =>\n new Promise((resolve, reject) => {\n // required due to the callback from remark\n if (section?.length) {\n remark()\n .use(strip)\n .process(section, (err, { contents }) => (err ? reject(err) : resolve(contents)));\n }\n });\n\nexport const renderMarkdownText = (section: string | null, customStyle?) => {\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 ...customStyle, // overwrite defaults\n };\n // split for tooltip here\n return (\n {\n return

;\n },\n h2: ({ node, ...props }) => {\n return

;\n },\n h3: ({ node, ...props }) => {\n return

;\n },\n h4: ({ node, ...props }) => {\n return
;\n },\n h5: ({ node, ...props }) => {\n return
;\n },\n h6: ({ node, ...props }) => {\n return
;\n },\n // update p style\n p: ({ node, children, ...props }) => {\n return

;\n },\n strong: ({ node, children, ...props }) => {\n return ;\n },\n // update horizontal line style\n hr: ({ node, ...props }) => {\n return


;\n },\n // Apply special styles to li and ul with correct spacing.\n li: ({ node, ...props }) => (\n
  • \n ),\n ul: ({ node, ...props }) =>
      ,\n ol: ({ node, ...props }) =>
        ,\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].props.href + children[2];\n return renderTooltip(rawText);\n }\n return renderTooltip(children[0]);\n },\n }}\n >\n {section}\n \n );\n }\n};\n\nexport const convertToSnakeCase = (text) => text?.replace(/ /g, \"_\").toLowerCase();\n\n// Generates options for SemanticUI dropdown menu\nexport const generateOptions = (list) =>\n list?.map((text) => {\n return {\n key: convertToSnakeCase(text),\n text: text,\n value: text,\n };\n });\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 if (index === 0 || index === allNames.length - 1) {\n acc = `${acc}${curr.charAt(0).toUpperCase()}`;\n }\n return 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","import { useEffect, useState } from \"react\";\nimport api from \"@requests/request\";\nimport { getOptionFromValue } from \"@utils/dropdownUtils\";\nimport { DropdownOption } from \"@components/library/Dropdowns/DropdownOption\";\n\n/**\n * @returns {[companyOptions, addCompanyOption]}\n */\nfunction useCompanyOptions() {\n const [companyOptions, setCompanyOptions] = useState([]);\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 response = await api.get(\"/companies\", { params: { for_onboarding: true } });\n const { companies } = response.data;\n\n setCompanyOptions(companies?.map(getOptionFromValue));\n })();\n }, []);\n\n return [companyOptions, addCompanyOption];\n}\n\nexport default useCompanyOptions;\n","import { useEffect, useState } from \"react\";\nimport { convertToSnakeCase } from \"@utils/textUtils\";\nimport api from \"@requests/request\";\n\nfunction useUniversityOptions() {\n const [universitiesOptions, setUniversitiesOptions] = useState([]);\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","var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 30867,\n\t\"./ar-dz\": 14130,\n\t\"./ar-dz.js\": 14130,\n\t\"./ar-kw\": 96135,\n\t\"./ar-kw.js\": 96135,\n\t\"./ar-ly\": 56440,\n\t\"./ar-ly.js\": 56440,\n\t\"./ar-ma\": 47702,\n\t\"./ar-ma.js\": 47702,\n\t\"./ar-sa\": 16040,\n\t\"./ar-sa.js\": 16040,\n\t\"./ar-tn\": 37100,\n\t\"./ar-tn.js\": 37100,\n\t\"./ar.js\": 30867,\n\t\"./az\": 31083,\n\t\"./az.js\": 31083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 68338,\n\t\"./bg.js\": 68338,\n\t\"./bm\": 67438,\n\t\"./bm.js\": 67438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 76225,\n\t\"./bn-bd.js\": 76225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 11560,\n\t\"./bo.js\": 11560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 80622,\n\t\"./bs.js\": 80622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 50877,\n\t\"./cv.js\": 50877,\n\t\"./cy\": 47373,\n\t\"./cy.js\": 47373,\n\t\"./da\": 24780,\n\t\"./da.js\": 24780,\n\t\"./de\": 59740,\n\t\"./de-at\": 60217,\n\t\"./de-at.js\": 60217,\n\t\"./de-ch\": 60894,\n\t\"./de-ch.js\": 60894,\n\t\"./de.js\": 59740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 50837,\n\t\"./el.js\": 50837,\n\t\"./en-au\": 78348,\n\t\"./en-au.js\": 78348,\n\t\"./en-ca\": 77925,\n\t\"./en-ca.js\": 77925,\n\t\"./en-gb\": 22243,\n\t\"./en-gb.js\": 22243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-il\": 47207,\n\t\"./en-il.js\": 47207,\n\t\"./en-in\": 44175,\n\t\"./en-in.js\": 44175,\n\t\"./en-nz\": 76319,\n\t\"./en-nz.js\": 76319,\n\t\"./en-sg\": 31662,\n\t\"./en-sg.js\": 31662,\n\t\"./eo\": 92915,\n\t\"./eo.js\": 92915,\n\t\"./es\": 55655,\n\t\"./es-do\": 55251,\n\t\"./es-do.js\": 55251,\n\t\"./es-mx\": 96112,\n\t\"./es-mx.js\": 96112,\n\t\"./es-us\": 71146,\n\t\"./es-us.js\": 71146,\n\t\"./es.js\": 55655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 77763,\n\t\"./eu.js\": 77763,\n\t\"./fa\": 76959,\n\t\"./fa.js\": 76959,\n\t\"./fi\": 11897,\n\t\"./fi.js\": 11897,\n\t\"./fil\": 42549,\n\t\"./fil.js\": 42549,\n\t\"./fo\": 94694,\n\t\"./fo.js\": 94694,\n\t\"./fr\": 94470,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 52330,\n\t\"./fr-ch.js\": 52330,\n\t\"./fr.js\": 94470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 29295,\n\t\"./ga.js\": 29295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 38794,\n\t\"./gl.js\": 38794,\n\t\"./gom-deva\": 27884,\n\t\"./gom-deva.js\": 27884,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 95349,\n\t\"./gu.js\": 95349,\n\t\"./he\": 24206,\n\t\"./he.js\": 24206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 30316,\n\t\"./hr.js\": 30316,\n\t\"./hu\": 22138,\n\t\"./hu.js\": 22138,\n\t\"./hy-am\": 11423,\n\t\"./hy-am.js\": 11423,\n\t\"./id\": 29218,\n\t\"./id.js\": 29218,\n\t\"./is\": 90135,\n\t\"./is.js\": 90135,\n\t\"./it\": 90626,\n\t\"./it-ch\": 10150,\n\t\"./it-ch.js\": 10150,\n\t\"./it.js\": 90626,\n\t\"./ja\": 39183,\n\t\"./ja.js\": 39183,\n\t\"./jv\": 24286,\n\t\"./jv.js\": 24286,\n\t\"./ka\": 12105,\n\t\"./ka.js\": 12105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 18758,\n\t\"./km.js\": 18758,\n\t\"./kn\": 79282,\n\t\"./kn.js\": 79282,\n\t\"./ko\": 33730,\n\t\"./ko.js\": 33730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 33291,\n\t\"./ky.js\": 33291,\n\t\"./lb\": 36841,\n\t\"./lb.js\": 36841,\n\t\"./lo\": 55466,\n\t\"./lo.js\": 55466,\n\t\"./lt\": 57010,\n\t\"./lt.js\": 57010,\n\t\"./lv\": 37595,\n\t\"./lv.js\": 37595,\n\t\"./me\": 39861,\n\t\"./me.js\": 39861,\n\t\"./mi\": 35493,\n\t\"./mi.js\": 35493,\n\t\"./mk\": 95966,\n\t\"./mk.js\": 95966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 10370,\n\t\"./mr.js\": 10370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 41237,\n\t\"./ms-my.js\": 41237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 72126,\n\t\"./mt.js\": 72126,\n\t\"./my\": 56165,\n\t\"./my.js\": 56165,\n\t\"./nb\": 64924,\n\t\"./nb.js\": 64924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 93901,\n\t\"./nl-be\": 59814,\n\t\"./nl-be.js\": 59814,\n\t\"./nl.js\": 93901,\n\t\"./nn\": 83877,\n\t\"./nn.js\": 83877,\n\t\"./oc-lnc\": 92135,\n\t\"./oc-lnc.js\": 92135,\n\t\"./pa-in\": 15858,\n\t\"./pa-in.js\": 15858,\n\t\"./pl\": 64495,\n\t\"./pl.js\": 64495,\n\t\"./pt\": 89520,\n\t\"./pt-br\": 57971,\n\t\"./pt-br.js\": 57971,\n\t\"./pt.js\": 89520,\n\t\"./ro\": 96459,\n\t\"./ro.js\": 96459,\n\t\"./ru\": 21793,\n\t\"./ru.js\": 21793,\n\t\"./sd\": 40950,\n\t\"./sd.js\": 40950,\n\t\"./se\": 10490,\n\t\"./se.js\": 10490,\n\t\"./si\": 90124,\n\t\"./si.js\": 90124,\n\t\"./sk\": 64249,\n\t\"./sk.js\": 64249,\n\t\"./sl\": 14985,\n\t\"./sl.js\": 14985,\n\t\"./sq\": 51104,\n\t\"./sq.js\": 51104,\n\t\"./sr\": 49131,\n\t\"./sr-cyrl\": 79915,\n\t\"./sr-cyrl.js\": 79915,\n\t\"./sr.js\": 49131,\n\t\"./ss\": 95606,\n\t\"./ss.js\": 95606,\n\t\"./sv\": 98760,\n\t\"./sv.js\": 98760,\n\t\"./sw\": 91172,\n\t\"./sw.js\": 91172,\n\t\"./ta\": 27333,\n\t\"./ta.js\": 27333,\n\t\"./te\": 23110,\n\t\"./te.js\": 23110,\n\t\"./tet\": 52095,\n\t\"./tet.js\": 52095,\n\t\"./tg\": 27321,\n\t\"./tg.js\": 27321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 19005,\n\t\"./tk.js\": 19005,\n\t\"./tl-ph\": 75768,\n\t\"./tl-ph.js\": 75768,\n\t\"./tlh\": 89444,\n\t\"./tlh.js\": 89444,\n\t\"./tr\": 72397,\n\t\"./tr.js\": 72397,\n\t\"./tzl\": 28254,\n\t\"./tzl.js\": 28254,\n\t\"./tzm\": 51106,\n\t\"./tzm-latn\": 30699,\n\t\"./tzm-latn.js\": 30699,\n\t\"./tzm.js\": 51106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 67691,\n\t\"./uk.js\": 67691,\n\t\"./ur\": 13795,\n\t\"./ur.js\": 13795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 60588,\n\t\"./uz-latn.js\": 60588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 65666,\n\t\"./vi.js\": 65666,\n\t\"./x-pseudo\": 14378,\n\t\"./x-pseudo.js\": 14378,\n\t\"./yo\": 75805,\n\t\"./yo.js\": 75805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 55726,\n\t\"./zh-hk.js\": 55726,\n\t\"./zh-mo\": 99807,\n\t\"./zh-mo.js\": 99807,\n\t\"./zh-tw\": 74152,\n\t\"./zh-tw.js\": 74152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;"],"names":["Toaster","styled","ToastContainer","attrs","enableMultiContainer","containerId","position","autoClose","hideProgressBar","closeOnClick","closeButton","rtl","pauseOnFocusLoss","theme","draggable","pauseOnHover","COLORS","FONTS","toast","success","message","toastify","className","error","styles","StyleSheet","Tooltip","height","right","top","Tooltip_popupContents","JS_FONTS","padding","Tooltip_link","color","popupStyles","borderColor","maxWidth","borderRadius","zIndex","PureComponent","constructor","props","super","toggle","isOpen","this","setState","timeoutToggle","timeout","clearTimeout","setTimeout","renderTrigger","customTrigger","iconColor","customTriggerStyle","iconName","Icon","name","onMouseLeave","questionIcon","purpleQuestionIcon","blueQuestionIcon","src","css","state","renderLearnMoreLink","linkUrl","linkText","href","target","rel","render","text","Popup","hoverable","onMouseEnter","trigger","open","onClose","onOpen","style","variant","to","isExternalLink","size","width","margin","iconPosition","children","id","type","disabled","form","onClick","onFocus","onBlur","dataTestId","StyledComponent","StyledLink","StyledButton","as","undefined","ButtonContent","BaseStyles","includes","Link","tooltipText","tooltipWidth","tooltipPosition","hideTooltip","iconButton","Button","content","remainOnHover","SIZES","xs","sm","md","data","hasDivider","Divider","Label","label","OptionLabel","option","metaData","isActive","selectValue","value","Option","optionColor","optionDescription","Content","LabelContainer","rightLabelEl","OptionDescription","isDisabled","MoreActionsOptionLabel","MoreActionsOption","WINDOW_DIMENSIONS","options","maxMenuHeight","maxValueContainerHeight","placeholder","onChange","setError","formatCreateLabel","input","isPortal","newValue","emails","map","e","errorMsg","forEach","email","Validator","usedPersonalEmail","creatable","inputValue","Add","innerRef","innerProps","isSelected","__isNew__","CheckboxLabel","ref","isNew","viewBox","fill","xmlns","fillRule","clipRule","d","stroke","strokeLinecap","strokeLinejoin","KEYWORD_TYPE_TO_CLASS","disciplines","areas_of_expertise","techniques","currentUserKeywords","showSuggestions","maxValues","menuPlacement","helpText","errors","useState","allKeywords","setAllKeywords","suggestions","setSuggestions","defaultOptions","setDefaultOptions","setOptions","isInputSuggestionsLoading","setIsInputSuggestionsLoading","useEffect","keywords","getDisciplines","getAreasOfExpertise","getTechniques","_options","usedKeywords","length","push","getOptionFromValue","filter","keyword","debouncedGetKeywordSuggestionsForValue","useCallback","debounce","getKeywordSuggestions","debouncedGetKeywordSuggestionsForInput","getSuggestionsForValue","async","values","FEATURE_FLAGS","formatOptionsWithSuggestions","querySuggestions","fuse","useMemo","Fuse","threshold","testid","MultiSelectDropdown","components","KeywordsDropdownOption","KeywordsDropdownCreateLabel","newValues","getValueFromOption","onInputChange","search","r","item","slice","getSuggestionsForInput","then","inputSuggestions","filterOption","isLoading","isCreatable","onCreateOption","createKeyword","Suggestions","suggestion","index","Suggestion","s","DropdownIndicator","c","selectProps","menuHorizontalPosition","menuWidth","portal","Dropdown","classNamePrefix","formatOptionLabel","formatGroupLabel","DropdownGroup","onSelect","menuPosition","menuPortalTarget","document","body","menuPortal","base","menuShouldBlockScroll","Select","DROPDOWN_STYLES","onMouseMove","onMouseOver","filteredInnerProps","Checkbox","CheckboxText","MultiValueRemove","ClearIndicator","isOptional","noOptionsMessage","labelFont","_components","isMulti","closeOnMenuSelect","searchFn","isClearable","createFilter","ignoreAccents","debouncedLoadOptions","query","callback","shouldHideOptions","Array","hasAnyError","hasError","AsyncDropdownComponent","AsyncCreatableDropdown","AsyncDropdown","SyncDropdownComponent","SyncCreatableDropdown","SyncDropdown","dropdown","loadOptions","hideSelectedOptions","closeMenuOnSelect","menuIsOpen","Container","DropdownLabel","LabelText","Optional","Number","HelpText","ErrorMessage","errorMessage","MultiSelectDropdownBaseStyles","AsyncSelect","MULTI_SELECT_TAG_STYLES","AsyncCreatableSelect","CreatableSelect","meta","context","CreateLabel","user","OptionName","TagContainer","profile_info","isAdmin","isPremium","OptionEmail","MultiValueLabel","otherProps","Select_","CreatableSelect_","STYLES","IndicatorSeparator","multiValue","fontSize","multiValueRemove","backgroundColor","display","svg","getSvg","IconContainer","xxs","lg","xl","xxl","strokeWidth","x","y","rx","x1","y1","x2","y2","cx","cy","mask","maskType","maskUnits","clipPath","gradientUnits","stopColor","offset","transform","Background","Wrapper","StyledModal","Header","HeaderContent","SubHeader","HeaderText","hasHeader","CloseButton","closeOnDimmerClick","headerText","headerIconName","subHeaderText","subHeaderIconName","hideCloseButton","disableBackgroundScroll","onKeyDown","event","code","addEventListener","modals","querySelectorAll","anchor","querySelector","overflow","removeEventListener","modal","tabIndex","role","ReactDOM","direction","customCloseButton","hideBackdrop","shouldShowModal","setShouldShowModal","handleClose","Modal","Outline","PROFILE_PICTURE_SIZE_STYLES","forMulti","hidden","didImageError","setDidImageError","image","medium","url","Picture","alt","onError","getInitials","ICON_SIZE","ICON_MARGIN","BACKGROUND_TYPE","light","dark","neutral","XS_STYLES","SM_STYLES","MD_STYLES","StyledTag","isValid","border","font","onRemove","PremiumTagTooltip","shouldFlex","t","WhiteLink","PremiumTag","useSelector","company","subscription","plan","Tag","AdminTag","SuperAdminTag","tags","isHovered","setIsHovered","displayedTags","setDisplayedTags","updatedTags","tag","updatedTag","cloneElement","timeoutRef","useRef","toggleShow","newState","current","key","contentWidth","arrowOffsetTop","shouldWrap","showTooltip","setShowTooltip","childrenRef","childrenHeight","clientHeight","ChildrenContainer","StyledTooltip","stopPropagation","preventDefault","ContentContainer","Arrow","maxHeight","icon","underline","newTab","$underline","SORT_STATES","Map","inverted","next","sortDirection","setSortDirection","get","title","marginLeft","accent","count","setIsOpen","hasFilters","countTagBackgroundColor","isSearchable","portalMenuWidth","createOptionComponent","onCreate","optionsWithCreate","hasCreateOption","Boolean","UniversityDropdown","universityOptions","useUniversityOptions","keys","NoOptionsMessage","getValue","selectOption","filteredChildren","SuggestedOptionsHeader","SuggestedOptionLabel","SuggestedOptionText","NoOptionsLabel","getStyles","restInnerProps","createOptionText","suggestedOptions","setInputValue","CreateOptionLabel","openMenuOnFocus","TextInput","placeholderColor","optional","characterLimit","warningLimit","hideClearButton","textarea","resize","startingHeight","min","max","hasExceededCharacterLimit","hasExceededWarningLimit","TextArea","autoComplete","InputContainer","Input","ClearButton","newEvent","handleClear","errorIcon","CharacterLimit","hasWarning","ErrorRow","forwardRef","inputStyles","resizeGrabber","isChecked","isPartiallyChecked","isFocused","setIsFocused","checkboxRef","isFocusedRef","click","CheckboxContainer","checked","renderCheckIcon","renderPartialCheckIcon","itemName","asTextArea","tooltipContent","tooltipOffsetTop","tooltipArrowOffsetTop","inputKeysRef","uuidv4","didAddOrRemoveRef","hiddenInputRef","focus","blur","lastInputId","getElementById","some","entry","addButtonText","startsWithVowel","inputs","Inputs","HiddenInput","i","inputComponent","splice","handleInputChange","RemoveButtonContainer","currentKey","handleRemove","uniqueId","selectedValues","disabledValues","areAllSelected","isInitiallyOpen","Chips","nonDisabledValues","selectedValue","handleChange","labelLeft","labelRight","disabledColor","hasTwoLabels","SwitchContainer","onColor","offColor","uncheckedIcon","checkedIcon","activeBoxShadow","handleDiameter","isExpanded","setIsExpanded","inputRef","isExpandedRef","textInput","Top","ErrorsContainer","Banner","isSticky","Text","link","history","useHistory","setIsSticky","onScrollSticky","window","scrollY","MARGIN_TOP","isExternal","location","onConfirm","confirmIconName","confirmButtonText","BlankModal","ButtonContainer","disableLink","withMessageButton","messengerData","userRole","showSponsorRoles","isMessageButtonHovered","setIsMessageButtonHovered","dispatch","useDispatch","association","UserAssociation","profile_id","ProfilePicture","TopRow","Name","setMessengerState","handleMessageClick","is_super_admin","SuperAdminTagContainer","is_premium","PremiumTagContainer","getMargin","users","displayedUserCount","single","displayedUsers","shouldShowAdditionalUsers","MulitReviewersContainter","AdditionalParticipants","NameContainer","StyledName","maxLines","maxTags","invisibleTags","setInvisibleTags","debouncedWidth","setDebouncedWidth","timer","tagsWithIds","tagWithId","clearInterval","firstTag","firstTagTopOffset","pageYOffset","getBoundingClientRect","tagsToDisplay","finalRowTags","currentTag","currentTagTopOffset","currentRow","Math","round","xMoreTagElement","finalRowTagWidths","tagElement","offsetWidth","container","containerWidth","remainingTagsCount","finalRowTotalTagWidth","reduce","a","b","textContent","pop","hiddenTags","InvisibleTags","TagTooltip","XMore","currentPage","setCurrentPage","totalPages","marginTop","pageNumbers","from","_","pageNumber","getPageButtonNumbers","isCurrent","minHeight","showHoverBorder","lines","textWidth","withTooltip","isTruncated","setIsTruncated","windowWidth","textRef","offsetHeight","scrollHeight","scrollWidth","textElement","isInputFocused","setIsInputFocused","TooltipContainer","activeTab","setActiveTab","tabs","activeColor","tabDistance","hoveredTab","setHoveredTab","tab","Tab","stepNumber","isComplete","needsUpdate","stepStyle","Attention","StepNumber","shouldDisplay","Preview","ProgressBar","percentage","Thumbnail","Info","isInbox","isForUpload","isImage","attachment","uploadPercentage","filename","size_in_bytes","mime_content_type","thumbnail_url","formatBytes","formatMIMEContentType","startsWith","IconButton","Body","Message","hasTopDivider","hasPaddingTop","hasPaddingBottom","Children","imageUrl","isPrivate","setHasError","Avatar","subtitle","Title","Subtitle","status","NEUTRAL_900","BLACK","NEUTRAL_700","NEUTRAL_600","NEUTRAL_500","NEUTRAL_400","NEUTRAL_350","NEUTRAL_300","NEUTRAL_250","NEUTRAL_200","NEUTRAL_100","NEUTRAL_50","WHITE","BLUE_900","BLUE_650","BLUE_600","HALO_BLUE","BLUE_450","BLUE_LIGHT_700","BLUE_LIGHT_600","BLUE_LIGHT_500","BLUE_LIGHT_400","BLUE_LIGHT_350","BLUE_LIGHT_300","BLUE_LIGHT_250","BLUE_LIGHT_100","BLUE_LIGHT_50","BLUE_GRADIENT","RED_700","RED_600","RED","RED_300","RED_200","RED_100","RED_50","ACCENT_800","ACCENT_600","ACCENT_100","ORANGE_900","ORANGE","ORANGE_700","ORANGE_500","ORANGE_300","ORANGE_200","ORANGE_100","ORANGE_50","GREEN_800","GREEN","GREEN_400","GREEN_200","GREEN_100","PINK_800","PINK_700","PINK_600","PINK_200","PINK_100","PINK_50","PURPLE","PURPLE_LIGHT","RB_PINK","RB_PINK_LIGHT","RB_PINK_BORDER","RB_PINK_DARK","PROPOSAL_STATUS_TO_TAB","PENDING","OPEN","QUALIFIED","SHORTLISTED","FINALIST","DECLINED","FUNDED","APPSIGNAL_FRONTEND_API_KEY","HALO_ID","BASF_ID","EXTRA_WIDE","DESKTOP","TABLET_LANDSCAPE","TABLET","MOBILE","EXTRA_WIDE_MEDIA_QUERY","DESKTOP_MEDIA_QUERY","TABLET_LANDSCAPE_MEDIA_QUERY","TABLET_MEDIA_QUERY","MOBILE_MEDIA_QUERY","BASE_WINDOW_WIDTH","OTHER_SUBMISSION_BULLETS","CORTEVA","UNIVERSITY_SUBMISSION_BULLETS","STARTUP_SUBMISSION_BULLETS","COMPOUND_EXAMPLES","DESIGN_PRINCIPLE_EXAMPLES","RATIONALE_EXAMPLES","TESTING4AG","HEADING_1_SEMIBOLD","HEADING_2_SEMIBOLD","HEADING_3_SEMIBOLD","HEADING_3_REGULAR","HEADING_4_SEMIBOLD","HEADING_4_REGULAR","HEADING_5_MEDIUM","HEADING_5_SEMIBOLD","HEADING_5_REGULAR","HEADING_JUMBO","REGULAR_1","REGULAR_2","REGULAR_3","REGULAR_4","MEDIUM_1","MEDIUM_2","MEDIUM_3","SEMIBOLD_1","SEMIBOLD_2","SEMIBOLD_3","SEMIBOLD_4","BOLD_2","BOLD_3","BUTTON_1","BUTTON_2","BUTTON_3","BUTTON_4","TAG_MEDIUM_1","TAG_MEDIUM_2","TAG_MEDIUM_3","TAG_SEMIBOLD_1","TAG_BOLD_2","TAG_BOLD_3","TAG_REGULAR_1","TAG_ACCENT","fontWeight","lineHeight","SHADOW_A","SHADOW_B","SHADOW_C","SHADOW_D","SHADOW_E","SHADOW_CARD","ONE_LINE","ONE_LINE_ALT","TWO_LINES","CONTENT_WIDTH","MAX_WINDOW_WIDTH","SIDE_PADDING","HERO_MEDIA_QUERY","NORMAL","MATERIALS","PATENT_STATUS_OPTIONS","countriesData","getData","uk","find","country","sort","countryData","WITH_DOWNLOAD_PROPOSAL_AS_PDF","process","obj","flag","gon","global","feature_flags","HALO_INTRO_LINK","GET_MORE_SEATS","ROLES_AND_PERMISSIONS_FAQS","SUBSCRIPTION_END_WARNING_START","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","setMessengerData","payloadActionGenerator","clearMessengerState","setMessengerThread","setHasUnreadMessage","setIsMessengerOpen","setIsMessengerMinimized","setIsMessengerExpanded","setIsMessengerThreadLoading","fetchCurrentThreadByProposal","userId","proposalId","response","getMessageByUserProposal","batch","message_thread","unread_for_current_user","fetchCurrentThreadByParticipants","initiatorUserId","recipientUserId","getMessageByRecipients","request","getKeywords","err","appsignal","span","setAction","setTags","join","getMessageThreads","getMessages","messageThreadId","addMessageToThread","attachmentIds","message_thread_id","attachment_ids","setDraftMessage","proposal_id","getDraftMessage","params","user_id","initiator_user_id","recipient_user_id","createMessageThread","uploadAttachment","file","abortSignal","setUploadPercentage","formData","FormData","append","signal","onUploadProgress","progressEvent","loaded","total","aborted","api","axios","headers","Accept","authenticityToken","interceptors","use","res","config","Promise","reject","RequestableType","LaunchableRequestStatus","RfpPartnershipModel","PARTNERSHIP_MODEL_LABELS","SPONSORED_RESEARCH","GIFT","CO_DEVELOPMENT","EQUITY_INVESTMENT","ACQUISITION","SUPPLY_PURCHASE","LICENSING","MATERIAL_TRANSFER","RfpBenefitType","ReviewTeamRole","RfpStatus","RfpFeedbackDeadlineStatus","identify","currentUser","analytics","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_rfp_ids","proposals","getUserInfo","host","console","log","page","track","eventName","info","isJson","str","JSON","parse","setSearchParam","searchParams","URLSearchParams","set","pathname","toString","replace","deleteSearchParam","has","delete","domain","BLOCKED_EMAIL_DOMAINS","endsWith","daysUntilLocalDate","date","localDate","moment","ceil","diff","Date","now","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","trim","getArrayFromRubyRange","range","Error","getRubyRangeFromArray","Appsignal","CREDENTIALS","ignoreErrors","breadcrumbsPlugin","networkBreadcrumbsPlugin","windowEventsPlugin","pathDecoratorPlugin","addDecorator","currentUserId","current_user_id","hostname","addOverride","_data","generateEmailDropdownOptions","companyMembers","excludedEmails","onlyPremium","sponsorUser","first_name","last_name","excludedEmail","premium","is_admin","getYearOptions","getFullYear","bottom","year","String","I18n","en","scope","interpolations","i18n","t_html","escapedInterpolations","fromEntries","entries","k","v","ReactDOMServer","dangerouslySetInnerHTML","__html","t_link","translation","parts","emptyActionGenerator","payload","token","HTMLMetaElement","getCookie","cookie","match","getUrlParameter","trimmed","results","RegExp","exec","decodeURIComponent","toastErrorHandler","_variables","_context","formatDateToEastern","fmt","utcToZonedTime","renderNewlines","m","fixMarkdownNewlines","matchTooltip","withoutTooltip","renderTooltip","toolTipString","toolTipWithoutLink","linkMatch","linkString","renderMarkdownText","section","customStyle","heading","marginBottom","p","li","ul","hr","borderTop","bold","remarkPlugins","gfm","disallowedElements","h1","node","h2","h3","h4","h5","h6","strong","ordered","ol","del","rawText","convertToSnakeCase","toLowerCase","truncate","n","substr","bulletTextToStringArray","bulletText","substring","stringArrayToBulletText","list","allNames","acc","curr","isValidURL","test","bytes","decimals","dm","floor","parseFloat","pow","toFixed","firstLetterLowercase","isTrimmedLengthInRange","lowerBound","upperBound","trimmedText","listArrayElements","lastElement","companyOptions","setCompanyOptions","companies","for_onboarding","newOption","universitiesOptions","setUniversitiesOptions","universities","webpackContext","req","webpackContextResolve","__webpack_require__","o","resolve","module","exports"],"sourceRoot":""}