{"version":3,"sources":["utils/Functions.tsx","../../common/src/api/PlanTier.ts","../../common/src/components/atoms/Stack.tsx","../../common/src/analytics/Analytics.tsx","utils/actions/GlobalAppContext.tsx","../../common/src/interfaces/AdvertisingText.tsx","../../common/src/interfaces/ContentGeneration.tsx","../../common/src/hooks/useLocalStorage.tsx","api/User.tsx","../../common/src/atoms/Icon.tsx","../../common/src/interfaces/Tutorial.tsx","utils/Constants.tsx","../../common/src/hooks/UseIsMobile.tsx","../../common/src/interfaces/Research.tsx","../../common/src/api/LanguageModel.tsx","../../common/src/interfaces/Blog.tsx","../../common/src/HOC/WithPaginationByWindowSize.tsx","../../common/src/utils/context/ToolCardContext.tsx","../../common/src/components/EnhancedButton.tsx","../../common/src/utils/Constants.tsx","../../common/src/utils/Snackbar.tsx","../../common/src/components/molecules/SimpleDialog.tsx","../../common/src/atoms/Colors.tsx","../../common/src/atoms/button/interfaces.ts","../../common/src/hooks/hocify.tsx","../../common/src/integrations/GoogleTagManager/Interfaces.ts","../../common/src/utils/Functions.tsx","utils/context/TrialUserContext.tsx","../../common/src/utils/SSE.ts","../../common/src/components/ToolLibrary/assets/blank_document.svg","../../common/src/components/ToolLibrary/cards/BlankDocumentCard.tsx","../../common/src/components/ToolLibrary/cards/BlogArticleCard.tsx","../../common/src/components/ToolLibrary/cards/HypoDocCard.tsx","../../common/src/components/ToolLibrary/cards/HypochatCard.tsx","../../common/src/components/ToolLibrary/assets/v2/ai_image_generator.svg","../../common/src/components/ToolLibrary/cards/ImageGeneratorCard.tsx","../../common/src/components/ToolLibrary/assets/v2/product_description_bulk.svg","../../common/src/components/ToolLibrary/cards/ProductDescriptionCard.tsx","../../common/src/components/ToolLibrary/CardGroups.tsx","../../common/src/assets/plan-cancellation-icon.svg","../../common/src/components/ToolLibrary/cards/ProductDescriptionRewriterCard.tsx","../../common/src/hooks/useGenerationAPI.tsx","../../common/src/components/LabelFlag.tsx","../../common/src/api/Organization.ts","../../common/src/components/liveFeed/api.ts","../../common/src/atoms/BlackButton.tsx","../../common/src/utils/context/CatalogueTemplateContext.tsx","../../common/src/assets/error.svg","../../common/src/analytics/utils.ts","../../common/src/api/Analytics.tsx","../../common/src/api/User.tsx","../../common/src/components/ToolLibrary/ToolCardGroup.tsx","../../common/src/components/ToolLibrary/assets/default_template.svg","../../common/src/components/ToolLibrary/cards/SuggestionCard.tsx","../../common/src/components/ToolLibrary/useStore.ts","../../common/src/components/ToolLibrary/ToolLibrary.tsx","../../common/src/components/ToolLibrary/ToolLibraryHeader.tsx","../../common/src/components/documents/types.ts","../../common/src/components/advertising/AdTextConstants.ts","../../common/src/integrations/HelpScout/BeaconProvider.tsx","../../common/src/integrations/HelpScout/useBeacon.tsx","../../common/src/integrations/HelpScout/components/HelpArticleLink.tsx","../../common/src/api/Settings.tsx","../../common/src/components/entityReference/types.ts","../../common/src/components/ToolLibrary/cards/TemplateCard.tsx","../../common/src/api/Blog.tsx","utils/reducers/GlobalAppContext.tsx","utils/context/GlobalAppContext.tsx","../../common/src/components/Loaders.tsx","hooks/useUserCountryCode.tsx","../../common/src/components/assetsDisplay/utils.ts","components/main/trial/TrialBanner/TrialBannerBase.tsx","assets/icons/pricing/FreePlanIcon.svg","assets/icons/pricing/Individual-plan-icon.svg","assets/icons/pricing/Team-plan-icon.svg","assets/icons/pricing/basic-plan-icon.svg","assets/icons/pricing/enterprise-plan-icon.svg","../../common/src/components/atoms/Spacer.tsx","components/pages/settings/pricing/components/PlanDescriptionField.tsx","../../common/src/assets/CheckTapered.svg","components/pages/settings/pricing/components/PlanDetailsList.tsx","components/pages/settings/pricing/components/PlanPricingRow.tsx","components/pages/settings/pricing/components/PlanSelectorSlider.tsx","components/pages/settings/pricing/components/PricingPlanCardCTAButton.tsx","components/pages/settings/pricing/components/PricingPlanHeader.tsx","components/pages/settings/pricing/MultiPricingPlanCard.tsx","components/pages/settings/pricing/SocialProof.tsx","api/Pricing.tsx","components/pages/settings/pricing/components/PlanCategoryTabSelector.tsx","components/pages/settings/pricing/components/PlanDurationTabs.tsx","components/pages/settings/pricing/PricingPage.tsx","../../common/src/components/atoms/Overlay.tsx","../../common/src/hooks/react-use/useMountedState.tsx","../../common/src/utils/ApiClient.tsx","../../common/src/components/ToolLibrary/assets/v2/blog_article.svg","../../common/src/components/ToolLibrary/assets/v2/hypodoc.svg","../../common/src/components/ToolLibrary/assets/v2/hypochat.svg","../../common/src/components/ToolLibrary/assets/v2/product_description_rewriter.svg","../../common/src/components/ToolLibrary/assets/v2/automapper.svg","../../common/src/components/ToolLibrary/cards/AutomapperToolCard.tsx","../../common/src/interfaces/Products.tsx","../../common/src/utils/ColorUtils.ts","../../common/src/components/liveFeed/types.ts","analytics/Analytics.tsx","../../common/src/atoms/button/IconButton.tsx","../../common/src/utils/Products.tsx","components/utils/LetterAvatar.tsx","../../common/src/components/ToolLibrary/assets/v2/ask_ai_anything.svg","../../common/src/components/ToolLibrary/assets/v2/bio_writer.svg","../../common/src/components/ToolLibrary/assets/v2/category_page_descriptions.svg","../../common/src/components/ToolLibrary/assets/v2/email_copy.svg","../../common/src/components/ToolLibrary/assets/v2/facebook_ads.svg","../../common/src/components/ToolLibrary/assets/v2/google_ads.svg","../../common/src/components/ToolLibrary/assets/v2/instagram_caption.svg","../../common/src/components/ToolLibrary/assets/v2/landing_page_content.svg","../../common/src/components/ToolLibrary/assets/v2/linkedin_posts.svg","../../common/src/components/ToolLibrary/assets/v2/marketing_angles.svg","../../common/src/components/ToolLibrary/assets/v2/meta_titles_and_descriptions.svg","../../common/src/components/ToolLibrary/assets/v2/press_release.svg","../../common/src/components/ToolLibrary/assets/v2/rewriter.svg","../../common/src/components/ToolLibrary/assets/v2/simplify_language.svg","../../common/src/components/ToolLibrary/assets/v2/summarize_content.svg","../../common/src/components/ToolLibrary/assets/v2/video_hook_and_introduction.svg","../../common/src/components/ToolLibrary/assets/v2/website_headlines_and_taglines.svg","../../common/src/components/ToolLibrary/assets/v2/youtube.svg","../../common/src/components/ToolLibrary/mappings.tsx","../../common/src/components/molecules/SimpleRedirectDialog.tsx","components/pages/settings/pricing/components/useUpdateUserPlan.ts","assets/icons/generic-plan-icon.svg","assets/icons/plan-change-icon.svg","components/pages/settings/pricing/components/ChangePlanDialog.tsx","components/main/payment/PayInvoiceModal.tsx","components/pages/settings/pricing/components/PausePlanDialog.tsx","../../common/src/assets/piggy-bank.svg","components/pages/settings/pricing/components/DiscountPlanDialog.tsx","../../common/src/components/atoms/WhiteButton.tsx","../../common/src/atoms/Tooltip.tsx","../../common/src/icons/StyledIcons.tsx","../../common/src/components/StyledTooltips.tsx","../../common/src/api/Documents.ts","components/utils/Interfaces.tsx","../../common/src/hooks/useMonetizationAwarenessModal.tsx","../../common/src/components/SearchBar.tsx","api/Catalogue.tsx","../../common/src/assets/custom-writer-on-enterprise-nudge.png","../../common/src/assets/product-enrichment-on-enterprise-nudge.png","../../common/src/assets/rewriter-on-enterprise-nudge.png","../../common/src/assets/seo-keywords-on-enterprise-nudge.png","../../common/src/hooks/useEnterpriseFeatureModal.tsx","components/GeneralModal.tsx","../../common/src/hooks/useWordUsage.tsx","api/Analytics.tsx","utils/context/assets/exploration-others.svg","utils/context/assets/keys-small-team.svg","utils/context/assets/magnet-agency.svg","utils/context/assets/patty-paintbrush.svg","utils/context/assets/public-speaking-education.svg","utils/context/OnboardingContext.tsx","components/main/payment/PaymentFailureBanner.tsx","components/main/trial/TrialBanner/useTrialBanner.tsx","components/main/trial/TrialBanner/TrialBanner.tsx","../../common/src/hooks/react-use/index.ts","../../common/src/hooks/useContentRecommendation.tsx","../../common/src/api/Word.tsx","assets/logo.svg","assets/hypotenuse_logo_text_dark.svg","assets/hypotenuse_logo_text_light.svg","assets/logo_stacked.png","components/Logos.tsx","../../common/src/atoms/button/Button.tsx","../../common/src/integrations/HelpScout/Constants.ts","../../common/src/hooks/react-use/useAsyncFn.tsx","../../common/src/components/ToolLibrary/ToolLibraryModal.tsx","../../common/src/components/BaseModal/ModalTitle.tsx","../../common/src/components/BaseModal/ModalActions.tsx","../../common/src/components/BaseModal/ModalContent.tsx","api/NetPromoterScore.tsx","../../common/src/api/Referrals.tsx","../../common/src/atoms/Typography.tsx","../../common/src/assets/apply_image_edits_in_bulk.png","components/teams/hooks/useTeamInviteDetails.ts","../../common/src/components/atoms/PingDot.tsx","../../common/src/components/ToolLibrary/cards/BaseToolCard.tsx","api/Billing.tsx","api/PlanTier.tsx","../../common/src/components/BaseModal/BaseModal.tsx","../../common/src/components/BaseModal/PrimaryButton.tsx","../../common/src/components/BaseModal/SecondaryButton.tsx","../../common/src/components/BaseModal/DangerButton.tsx","../../common/src/utils/context/UserContext.tsx","utils/Colors.tsx","utils/Theme.tsx","../../common/src/hooks/useHooks/useBoolean.tsx","../../common/src/hooks/useHooks/useInterval.tsx","../../common/src/hooks/useConfirmation.ts","../../common/src/hooks/useIsFirstRender.ts","../../common/src/utils/Interfaces.tsx","hooks/usePremiumPlanTier.tsx","../../common/src/pages/public/ArticlePreviewRedirect.tsx","../../common/src/components/auth/RequiresAPIAccessToken.tsx","hooks/usePremiumAuth.tsx","../../common/src/assets/bug_fixing.svg","../../common/src/components/error/GeneralError.tsx","../../common/src/components/error/UnexpectedError.tsx","../../common/src/components/error/ErrorFallback.tsx","../../common/src/utils/ProtectedRoute.tsx","hooks/useAppVersion.ts","hooks/useNewVersionRefreshSnackbar.tsx","../../common/src/hooks/usePrevious.ts","assets/icons/intercom-icon.svg","components/main/trial/TrialEndedModal.tsx","components/ApiErrorModal.tsx","../../common/src/components/InsufficientCreditsModal.tsx","components/PremiumInsufficientCreditsModal.tsx","components/PremiumInsufficientWordsModal.tsx","components/main/organization/WelcomeMemberModal/celebrate.svg","components/main/organization/WelcomeMemberModal/index.tsx","components/main/payment/PaymentInterfaces.tsx","components/main/payment/PaymentFailureModal.tsx","components/main/trial/RatelimitCTAModal.tsx","assets/icons/G2.svg","components/netPromoterScore/G2Modal.tsx","App.tsx","api/Intercom.tsx","AuthenticatedApp.tsx","components/pages/AccountDisabledPage.tsx","components/pages/AttemRefreshTokenPage.tsx","components/pages/ReferralLandingPage.tsx","components/pages/auth/AuthErrorPage.tsx","components/pages/auth/LoginPage.tsx","components/pages/auth/LogoutPage.tsx","components/pages/auth/PostLoginPage.tsx","AppContainer.tsx","../public/logo.svg","components/SuperTokensProvider.tsx","serviceWorker.ts","../../common/src/utils/Telemetry.tsx","index.tsx"],"names":["convertEpochTimeToDate","timeElapsedInSeconds","date","Date","getMonth","getDate","getFullYear","toTitleCase","text","split","map","w","toUpperCase","substr","toLowerCase","join","extractNameFromEmailAddress","username","test","makeQueryFromFilter","filter","page","step","start","end","getIsTutorialComplete","user","completedToursIds","includes","HELPHERO_TUTORIAL_TOUR","id","setPreviousInputMappings","mappings","localStorage","setItem","PREVIOUS_INPUT_MAPPINGS","JSON","stringify","getPreviousInputMappings","parse","getItem","undefined","capitalize","replace","c","hashText","Math","abs","reduce","a","b","charCodeAt","redirectToStripeCheckoutSession","async","stripe","loadStripe","STRIPE_TEST_PUBLISHABLE_KEY","sessionId","handleCreateStripeCheckoutSession","plan_id","redirectToCheckout","paidAndActivePlansPredicate","activePlanTier","planBillingPeriod","planTier","plan_billing_period","plan_type","PlanType","free","enterprise","isWordsEnabled","platform_type","PlatformType","shopify","Boolean","service_configs","feature_flags","enable_words","canAccessPlagiarismChecker","premiumPlanTier","isTeamPlan","isEnterprisePlan","isUnlimitedPlan","formatUnixTimeStamp","timestamp","moment","unix","toDate","toLocaleString","userLocale","apiFetchPlanTierListObject","apiClient","get","data","Stack","React","forwardRef","props","ref","direction","spacing","style","restProps","theme","useTheme","display","flexDirection","gap","AnalyticsContext","createContext","AnalyticsProvider","children","initialUsername","disableTracking","logRocketAppId","logRocketExcludedUsernamePatterns","googleAnalyticsTrackingCode","setUsername","useState","planType","setUserPlanType","isIdentifiedAnalyticsInitialized","setIsIdentifiedAnalyticsInitialized","logRocketInitRef","useRef","identify","useCallback","LogRocket","name","ReactGA","set","userId","amplitude","getGlobalAppData","global_feature_flags","enable_posthog_monitoring","posthog","Sentry","email","ip_address","getSessionURL","url","scope","setExtra","error","level","isUsernameExcludedFromLogRocketTracking","pattern","some","v","initializeAnalyticsAnonymous","initialize","initializeAnalyticsWithUser","init","release","APP_VERSION","setupLogRocketReact","current","checkIfLogRocketInitAndThrowSentryError","useEffect","then","trackEvent","category","event","params","track","isError","action","trackPageView","handleTrackPageVisit","path","pageview","Provider","value","useAnalytics","context","useContext","Error","InnerAnalyticsConfigurator","setUseAnalyticsRef","useAnalyticsRef","useAnalyticsRefProp","AnalyticsConfigurator","notConfiguredError","Analytics","GLOBAL_APP_ACTION","AdTextType","BulkWorkflowOtherContentTypes","AdTextFormField","product","moreDescriptions","keywords","tone","outputLength","advancedOptions","targetAudience","brand","adTextTabs","Object","entries","key","generationTypeMap","instagram","ContentGenerationType","advertising_text_instagram","google","advertising_text_google","facebook","advertising_text_facebook","headline","advertising_text_headline","linkedin","advertising_text_linkedin","rewriter","advertising_text_rewriter","category_page","advertising_text_category_page","landing_page","advertising_text_landing_page","eli5","advertising_text_eli5","advertising_text_email","video_intro","advertising_text_video_intro","meta_desc","advertising_text_meta_desc","marketing_angles","advertising_text_marketing_angles","press_release","advertising_text_press_release","summarise","advertising_text_summarise","youtube_title","advertising_text_youtube_title","bio_writer","advertising_text_bio_writer","ask_anything","advertising_text_ask_anything","blog","advertising_text_blog","rewrite_for_seo","advertising_text_rewrite_for_seo","feedbackContentTypeMap","FeedbackContentGenerationType","AD_TEXT_TYPES_WITH_EXTRA_LONG_FORM_PRODUCT_TYPE_FIELD","Set","AD_TEXT_TYPES_WITH_LONG_FORM_PRODUCT_TYPE_FIELD","AD_TEXT_TYPES_WITH_EXTRA_LONG_FORM_MAX_PRODUCT_CHARS","AD_TEXT_TYPES_WITH_LONG_FORM_MAX_PRODUCT_CHARS","GenerateAdTextErrorType","errorToFieldMap","empty_fields","target_audience_too_long","brand_too_long","keywords_too_long","product_type_too_long","AdvertisementTextActions","AdTextLength","BeaconArticleIdSlots","formExceptionMap","image","requiredFieldMap","customAdTextCsvFieldsMap","getExcludedFieldsForAdTextType","adTextType","getRequiredFieldsForAdTextType","adHeaders","BLOG_CONTENT_TYPE","adCrossWorkflowDescription","adSubHeaders","customProductFieldNames","RewriterIntentionType","UserInputType","isLongForm","getMaxChars","BLOG_MAX_PRODUCT_CHARS","LONG_FORM_MAX_PRODUCT_CHARS","SHORT_FORM_MAX_PRODUCT_CHARS","adTextToDocumentTypeMap","DocumentType","ContentGenerationCategory","GenerationStatusFilterKey","GenerationInputType","useLocalStorage","initialValue","storedValue","setStoredValue","item","window","console","log","setValue","valueToStore","Function","removeItem","apiLogout","PREMIUM_LEGACY_LOGOUT_PATH","apiFetchUser","apiResendVerificationEmail","post","apiTryVerifyEmail","apiRequestPhoneVerificationCode","phone_number","phoneNumber","apiCheckPhoneVerificationCode","code","apiGetIsPhoneVerified","upsertUserOnboardInfoForm","userOnboardInfoForm","isOnboardingFormSubmission","user_onboard_form","is_onboarding_form_submission","apiUpdateUserHasVisitedMetaDesc","apiGetUserCountryCode","apiDeleteAccount","delete","snackbar","show","variant","e","apiGetIsAntiSpamConfigupdated","apiCheckIfUserAdminPanelled","useStyles","makeStyles","root","stroke","strokeWidth","height","width","maxHeight","maxWidth","minHeight","minWidth","IconSize","SIZING_MAP","small","medium","large","inherit","Icon","icon","IconComponent","size","strokeWidthProp","heightProp","widthProp","iconProps","rest","useMemo","defaultStrokeWidth","defaultHeight","defaultWidth","classes","className","TourType","COLOR_GRADIENTS_HEX_CODE","CONTENT_CARDS_BOX_SHADOWS","HOVERED_CONTENT_CARD_BOX_SHADOW","type","helphero","HELPHERO_GENERATE_FIVE_PRODUCTS_TOUR_ID","GENERATE_WITHOUT_TAGS_DIALOG_ID","MARK_AS_DONE_WITHOUT_SELECTING_DESCRIPTIONS_DIALOG_ID","DELETE_PRODUCT_DIALOG_ID","HELPHERO_APP_ID","PRODUCT_TITLE_MAX_CHARS","PRODUCT_BRAND_MAX_CHARS","PRODUCT_TAGS_MAX_CHARS","DOWNVOTE_DEBOUNCE_TIME","STAGE","process","IS_PRODUCTION","IS_STAGING","IS_DEPLOYED","SERVER","PREMIUM_LEGACY_LOGIN_URL","PREMIUM_LEGACY_POST_LOGIN_URL","BACKEND_API_DATA_DOCS_URL","AMPLITUDE_API_KEY","POSTHOG_API_KEY","PUBLIC_POSTHOG_URL","G2_LINKED_ITEM_ID_PLACEHOLDER","GTM_CONTAINER_ID","GTM_PREVIEW","REACT_APP_GTM_PREVIEW","GTM_AUTH","REACT_APP_GTM_AUTH","USE_JWT_AUTH","LOGOUT_PAGE_PATH","LOGIN_PAGE_PATH","POST_LOGIN_PAGE_PATH","AUTH_ERROR_PAGE_PATH","LOGOUT_REDIRECT_PATH","EMAIL_VERIFICATION_PAGE_PATH","DISABLED_ACCOUNT_REDIRECT_PATH","DELETED_ACCOUNT_REDIRECT_PATH","SHADOW_BANNED_ACCOUNT_REDIRECT_PATH","PRICING_PAGE_PATH","SUPERTOKENS_API_BASE_PATH","SUPERTOKENS_UI_BASE_PATH","HELPSCOUT_BEACON_ID","INTERCOM_APP_ID","palette","primary","FINGERPRINT_PRO_PUBLIC_API_KEY","FINGERPRINT_ENDPOINT","SENTRY_DSN","SENTRY_TRACE_SAMPLE_RATE","GOOGLE_ANALYTICS_TRACK_CODE","LOGROCKET_APP_ID","SEMANTIC_POPUP_OVERFLOW_PREVENTION_PROPS","preventOverflow","boundariesElement","BulkDescribeModals","DEFAULT_CATALOGUE_NAME","TAB_VALUES","TabKey","new","label","ProductTabLabel","loading","reviewing","saved","all","BASE_TAB_VALUES","tab","GENERATION_STATUS_FILTER_VALUES","GenerationStatusFilterLabel","generation_error","generated","not_generated","ALL_GENERATION_FILTERS_TYPES","GenerationFilterType","descriptions","seo_keywords","enrich_from_image","enrich_from_web","enrich_from_url","enrich_from_upc","ALL_FILTER_STATUSES","DEFAULT_IMPORT_HEADERS","title","imgSrc","multiImgSrcs","tags","seoKeywords","rootKeyword","retailer","enrichUrl","sku","upc","EXISTING_DETAILS_IMPORT_HEADERS","existingDescription","existingBullets","DEFAULT_PAYMENT_FAILURE_MESSAGE","SIDEBAR_WORD_USAGE_THRESHOLD_PERCENT","DEFAULT_REFERRAL_WORDS","ShopifyBillingPlanIds","ShopifyPlanListId","getMobileBreakpoint","breakpoints","down","useIsMobile","useMediaQuery","ProductResearchSourceType","bulkEnrichmentFallbackOrder","specific_url","web_search","NO_PRODUCTS_MET_REQUIREMENT_ERROR_TYPE","BatchJobType","PRODUCT_RESEARCH_SOURCE_TYPE_TO_BATCH_JOB_TYPE_MAPPING","apiGenerateContent","config","requestConfig","apiGenerateBlogAdText","apiCompose","body","document_id","prefix","suffix","apiHighlightCommand","command_type","commandType","command_trigger","commandTrigger","custom_prompt","customPrompt","selection","additional_prompt_inputs","additionalPromptInputs","apiHighlightResearchCommand","apiAnalyzeTone","input_type","inputType","input_value","inputValue","apiGenerateBatch","product_ids","productIds","prod_desc_query","prodSearchQuery","ad_text_query","adTextQuery","job_name","jobName","generation_type","generationType","split_output","splitOutput","apiCheckContentFollowsBrandGuidelines","brands","apiGenerateProductDescriptionWithCallback","productId","toneIds","retailerId","catalogueTemplateName","product_id","tone_ids","retailer_id","catalogue_template_name","BlogStepper","BlogCurrStep","SelectedBlogTab","BLOG_GENERATION_TIMEOUT_IN_SECONDS","BlogTheme","OutlineDetailCreationType","OutlineCreationMethodType","outlineCreationMethodToContentFeedbackTypeMap","default","blog_outline_default","all_serp","blog_outline_all_serp","improve","blog_outline_improve","manual","blog_outline_manual","BlogOverviewSortBy","BlogWriteMoreAction","SIZES","DEVICE_SIZE","XL","LG","MD","SM","DEVICE_SIZE_TO_ITEM_COUNT_MAP","getNumPerPage","sizeToCount","innerWidth","getStartAndEndIndex","numPerPage","currPage","usePaginate","totalItems","setTotalItems","setPage","index","numPages","max","ceil","useNonInitialEffect","usePaginateByWindowSize","deviceSizeToItemCountMap","setNumPerPage","useQueryParam","withDefault","NumberParam","updateSize","addEventListener","removeEventListener","withPaginateByWindowSize","WrappedComponent","ComponentWithWindowSize","paginateProps","displayName","ToolCardContext","ToolCardProvider","useToolCardContext","createStyles","outlinedSuccess","borderColor","success","color","outlinedError","outlinedWarning","warning","outlinedInfo","info","main","containedSuccess","backgroundColor","contrastText","containedError","containedWarning","containedInfo","dark","Button","endIcon","overrideClassName","colorProp","indexOf","clsx","HAS_SEEN_PAPERCUPS","TEAM_INVITE_ID","IS_HIDE_EMPTY_METADATA_ROWS","PREMIUM_HAS_CONTACTED_US","IMPORT_CONTACT_US","IS_FIRST_MARK_AS_DONE","IS_HYPOCHAT_ENHANCED_QUALITY","IS_HYPOCHAT_REAL_TIME_WEB_DATA","IS_HYPOCHAT_CLOSED","ADTEXT_PING_DOT_LIST","HAS_USER_DISMISSED_BULK_GEN_NUDGE","HAS_USER_DISMISSED_BULK_IMPORT_NUDGE","OPENTELEMETRY_SERVER","FRONTEND_HOST","CONTACT_US_LINK","BLOG_PRO_CONTACT_US_LINK","API_CONTACT_US_LINK","COMMAND_SELECTION_COLOR","TEXT_TO_IMAGE_PROMPT_MAX_CHARS","DEFAULT_NUM_OUTPUTS_FOR_TEXT_TO_IMAGE","BLOG_CONTENT_BRIEF_TUTORIAL_BANNER_TEXT","BLOG_KNOWLEDGE_TUTORIAL_BANNER_TEXT","BRAND_BACKGROUND_MAX_LIMIT","TOPIC_CHAR_MAX_LIMIT","KEYWORDS_MAX_LIMIT","TOTAL_KEYWORDS_CHAR_MAX_LIMIT","TOTAL_SEO_KEYWORDS_CHAR_MAX_LIMIT","TITLE_CHAR_MAX_LIMIT","TARGET_AUDIENCE_MAX_CHARS","PRODUCT_DETAILS_MAX_CHARS","OUTLINE_CHAR_MAX_LIMIT","OUTLINE_MAX_TOTAL_CHARACTER_COUNT","NON_SELECTED_INDEX","ORIGINAL_TITLE_INDEX","RELATED_KEYWORDS_PASSING_SCORE","MIN_EXPECTED_OUTLINES","BLOG_MAX_OUTLINES","EXISTING_BLOG_OUTLINE_MAX_CHAR_COUNT","EXISTING_CONTENT_MAX_CHAR_COUNT_FOR_SEO_REWRITER","MAX_OUTLINE_DETAILS","OUTLINE_DETAILS_MAX_LIMIT","DEFAULT_MAX_NUM_OF_BLOG_REFERENCES","DEFAULT_MAX_NUM_OF_REFERENCES","GOOGLE_HEADLINE_CHAR_MAX_LIMIT","GOOGLE_DESCRIPTION_CHAR_MAX_LIMIT","LINKEDIN_POST_CHAR_MAX_LIMIT","DEFAULT_AD_TONE","BLOG_PREVIEW_BASE_PATH","GENERATED_IMAGE_PREVIEW_BASE_PATH","DEFAULT_REFERRAL_CREDITS","DEFAULT_HYPOCHAT_THREAD_DISPLAY_NAME","DEFAULT_MAX_HYPOCHAT_THREAD_DISPLAY_NAME_LENGTH","HYPOCHAT_CHAT_THREAD_DRAWER_WIDTH_DESKTOP","HYPOCHAT_CHAT_THREAD_DRAWER_WIDTH_MOBILE","DEBOUNCED_TIMING","CATALOG_QUERY_DEBOUNCED_TIMING","CUSTOM_TONE_OPTION","DESKTOP_DRAWER_WIDTH_OPEN","DESKTOP_DRAWER_WIDTH_CLOSE","MOBILE_DRAWER_WIDTH_OPEN","SHOW_REFERRAL_SIDEBAR_LINK","ICON_SIZE","ICON_STROKE","COMPOSE_MIN_WORDS","EDITOR_MAX_WIDTH","PROMOTION_COUNTRY_CODES","MAX_FILE_SIZE","IMDA_BLOG_MAX_OUTLINES","AppFeatures","blog_feature","hypodoc","IMDA_MAX_OUTLINE_DETAILS","IMDA_LINKEDIN_TALKING_POINTS_MAX_CHARACTERS","BUTTON_BOX_SHADOW","PAPA_PLAN_FACEBOOK_TEMPLATE_CARD_SUBTITLE","PAPA_PLAN_FACEBOOK_TEMPLATE_CARD_TITLE","DEFAULT_NUM_OUTPUTS_FOR_TEMPLATES","DEFAULT_NUM_OUTPUTS_FOR_BLOG_TITLES","DEFAULT_NUM_OUTPUTS_FOR_BLOG_OUTLINES","PRODUCT_DESCRIPTION_NUM_OF_GENERATES_BEFORE_BULK_GEN_NUDGE","PRODUCT_DESCRIPTION_NUM_OF_ADDITIONS_BEFORE_BULK_IMPORT_NUDGE","PRODUCT_DESCRIPTION_MAX_GENERATION_LENGTH","PRODUCT_DESCRIPTION_MIN_GENERATION_LENGTH","PRODUCT_DESCRIPTION_DEFAULT_GENERATION_LENGTH","DOCUMENT_OVERVIEW_PAGE_TYPES","general","file","folder","MOVABLE_DOCUMENT_TYPES","WindowSize","DEVICE_SIZE_TO_ASSET_COUNT_MAP","US_COUNTRY_ISO_CODE","US_COUNTRY_NAME","BUBBLE_MENU_WIDTH","BUBBLE_MENU_OFFSET","SEO_REGION_SERVICE_CONFIG_KEY","SUGGESTED_VALUES_ALLOWED_DURING_ENRICHMENT_KEY","openChat","InnerSnackbarUtilsConfigurator","setUseSnackbarRef","useSnackbar","useSnackbarRef","useSnackbarRefProp","SnackbarConfigurator","defaultOptions","onClick","closeSnackbar","fontWeight","defaultVariantOptions","autoHideDuration","SnackbarContentEllipsisDiv","styled","div","msg","options","mergedOptions","enqueueSnackbar","close","DialogTransition","SimpleDialog","topDivider","closeButtonSize","disableTopBox","onClose","dialogProps","TransitionComponent","justifyContent","p","light","BASE_COLORS","white","black","gray","blue","red","purple","green","yellow","COLOR_ALIASES","ButtonColor","ButtonSize","ICON_SIZE_MAP","xxs","xs","sm","md","lg","makePropInjectorHOCFromHook","hook","Component","WrapperComponent","hookResult","GtmEvents","GtmDataLayerTypes","constructAdDescription","description","parseAdDescription","parts","content","length","slice","desc","trimStart","showWithSnackbar","message","result","snackbarOptions","onEnter","_node","_key","_event","reason","onExit","snackbarKey","buttonText","argSort","unsortedArr","compareFn","sort","isStringUrl","possible_url","stripProtocolFromUrl","stripHtml","s","countCharacters","trimEnd","numberWithCommas","x","toString","isoDateFormat","isIsoDateString","handleDates","keys","parseISO","convertDatetimeToLocaleString","datetime","includeTime","day","month","year","hour","minute","hour12","getDatetimeSince","currDate","diffDays","diffMonths","diffYears","fromNow","formatDateString","dateFormat","format","useInterval","callback","delay","savedCallback","setInterval","clearInterval","scrollToElementById","elementId","element","document","getElementById","scrollIntoView","behavior","effect","deps","initialRender","trimNewlineAndWhitespace","downloadFile","filename","link","createElement","href","setAttribute","appendChild","click","removeChild","copyPromisedStringToClipboard","navigator","clipboard","write","clipboardItem","ClipboardItem","Blob","writeText","parseBytesToHumanReadable","bytes","decimals","k","dm","sizes","i","floor","parseFloat","pow","toFixed","INVALID_LINK_ERR_MSG","INVALID_LINK_TYPE_ERR_MSG","validateLinkIsValid","isMediaLink","validateLink","turndownService","TurndownService","headingStyle","codeBlockStyle","addRule","replacement","keep","htmlContentToHtmlFile","htmlContentWithTitle","wrappedContent","replaceEmptyParagraphsWithLineBreaks","downloadCsv","downloadLink","fileName","response","fetch","ok","statusText","fileBlob","blob","fileURL","URL","createObjectURL","download","sanitizeFileName","TrialUserContext","isTrial","isEnterpriseUser","isUnlimitedUser","premiumHasContactedUs","handlePremiumContactUs","importContactUs","setImportContactUs","isHideEmptyMetadataRows","setIsHideEmptyMetadataRows","isFirstMarkAsDone","setIsFirstMarkAsDone","handleTrackLearnMore","refreshTrialStatus","useTrialUserContext","TrialUserProvider","userPlanTier","mutate","usePremiumPlanTier","unlimited","setPremiumHasContactedUs","isContactedUs","handleTrackCustomerContactUs","_response","catch","_error","feature","handleTrackCustomerLearnMore","XHRStates","SSEOptionsMethod","EventType","SSE","constructor","listeners","readyState","INITIALIZING","chunk","progress","xhr","method","listener","this","push","filteredListeners","lis","stream","_setReadyState","CONNECTING","XMLHttpRequest","onreadystatechange","_checkStreamClosed","onprogress","evt","_onStreamProgress","onload","_onStreamLoaded","onerror","_onStreamFailure","onabort","_onStreamAbort","open","header","headers","headerValue","setRequestHeader","withCredentials","send","payload","CLOSED","abort","dispatchEvent","onHandler","hasOwnProperty","call","defaultPrevented","every","state","CustomEvent","failureEvent","status","target","abortEvent","openEvent","OPEN","responseText","substring","forEach","part","trim","chunkEvent","_parseEventChunk","streamData","retry","line","trimRight","field","trimLeft","isNaN","DONE","TITLE","SUBTITLE","BlankDocumentCard","history","useHistory","currentFolderId","StringParam","BaseToolCard","subtitle","newDocument","apiCreateDocument","folderId","isHidden","folder_id","logoSrc","blank_document_logo","metadata","searchTerms","BlankDocumentCardWithMetadata","card","IMDA_SPEECH_TITLE","IMDA_SPEECH_SUBTITLE","BlogArticleCard","useUserContext","isPapaPlanUser","is_papa_user","isImdaUser","is_imda_user","currentTopicRecommendationId","targetEntityReferences","ReferenceableEntityType","topicRecommendation","apiCreateBlog","queryParams","blogId","pathname","search","blogIcon","BlogArticleCardWithMetadata","imdaMetadata","IMDASpeechArticleCardWithMetadata","HypoDocCard","hypodoc_logo","HypoDocCardWithMetadata","HypoChatCard","hypochat_logo","HypoChatCardWithMetadata","ImageGeneratorCard","image_generator_logo","ImageGeneratorCardWithMetadata","ProductDescriptionCard","handleUserClick","location","productDescriptionBulkIcon","ProductDescriptionCardWithMetadata","FeaturedCardGroup","ToolCardGroupType","featured","subTitle","cards","ProductDescriptionRewriterCardWithMetadata","GeneralCardGroup","AutomapperCardWithMetadata","AskAiAnythingCardWithMetadata","RewriterCardWithMetadata","SummarizerCardWithMetadata","MarketingAnglesCardWithMetadata","Eli5CardWithMetadata","SocialAdsCardGroup","ads_social","InstagramCaptionsCardWithMetadata","GoogleAdsCardWithMetadata","FacebookAdsCardWithMetadata","LinkedinPostCardWithMetadata","YoutubeTitleCardWithMetadata","VideoIntroCardWithMetadata","SiteCardGroup","site","HeadlineCardWithMetadata","LandingPageCardWithMetadata","MetaDescCardWithMetadata","CategoryPageCardWithMetadata","BioWriterCardWithMetadata","NewslettersCommsCardGroup","newsletters_comms","EmailCardWithMetadata","PressReleaseCardWithMetadata","DEFAULT_CARD_GROUPS","HomePageFeaturedCardGroup","LiveFeedPageFeaturedCardGroup","SuggestionFeedFeaturedCardGroup","SuggestionFeedGeneralCardGroup","HOMEPAGE_CARD_GROUPS","LIVE_FEED_CARD_GROUPS","SUGGESTION_FEED_CARD_GROUPS","HomePageFeaturedCardGroupWithSeoRewriter","RewriteForSeoCardWithMetadata","PapaHomePageFeaturedCardGroup","HOMEPAGE_CARD_GROUPS_WITH_SEO_REWRITER","PAPA_HOMEPAGE_CARD_GROUPS","IMDAHomePageFeaturedCardGroup","IMDALinkedinCardWithMetadata","IMDADocumentOverviewPageFeaturedCardGroup","IMDASocialAdsCardGroup","IMDALiveFeedPageFeaturedCardGroup","IMDASuggestionFeedFeaturedCardGroup","IMDA_HOMEPAGE_CARD_GROUPS","IMDA_DOCUMENT_OVERVIEW_CARD_GROUPS","IMDA_LIVE_FEED_CARD_GROUPS","IMDA_SUGGESTION_FEED_CARD_GROUPS","REWRITER_CARD_ID","ProductDescriptionRewriterCard","rewriterTemplateId","useCatalogueTemplateContext","productDescriptionRewriterIcon","GenerationAPIContext","GenerationAPIProvider","onRateLimitExceeded","planListId","openModal","openMonetizationAwarenessModal","useMonetizationAwarenessModal","openEnterpriseFeatureModal","useEnterpriseFeatureModal","showInsufficientCreditsModal","setShowInsufficientCreditsModal","showInsufficientWordsModal","setShowInsufficientWordsModal","handleKnownGenerationErrors","axios","isAxiosError","detail","service_name","RateLimitedServiceName","instagram_image_caption","featureName","Nudge","InstagramImageCaption","trackingId","rewrite_product_description","contactUsProps","modalProps","EnterpriseNudgeFeature","ProductDescriptionRewriter","handleCTAClick","handleContactUs","ServerErrorType","outOfCredits","apiGenerateAdvertisingText","referenceLinks","referenceFileIds","numOutputs","entityReferences","isReferencingKnowledgeBase","entity_references","reference_links","reference_file_ids","num_outputs","is_referencing_knowledge_base","apiGenerateBlogAdtext","apiGenerateBlog","blogStepper","subSteps","isSeoModeEnabled","outlineHeaders","primaryKeywordResearchResultId","seoRegion","finalGenerationType","blog_title","OUTLINE","blog_outline","INTRO","blog_introduction","FULL_ARTICLE","blog_paragraph","PARAGRAPH","CONCLUSION","blog_conclusion","stepper_tuples","outline_headers","primary_keyword_research_result_id","seo_region","is_seo_mode_enabled","apiGenerateProductDescription","isRewriterGeneration","product_descriptions","is_rewriter_generation","apiCancelDescribeProduct","apiGenerateBatchContextual","apiGenerateComposeContextual","apiGenerateHighlightCommand","apiGenerateHighlightResearchCommand","apiGenerateToneAnalysis","providerValue","useGenerationAPI","_props","withGenerationAPI","componentProps","generationAPIHookResult","LabelFlag","memo","leadingIcon","typographyProps","borderRadius","padding","whiteSpace","lineHeight","ml","alignSelf","apiDeleteOrganizationMember","organizationId","apiSetOrganizationMemberRole","role","put","apiCreatePublicOrganizationInvite","apiRevokeOrganizationInvite","inviteId","apiAcceptOrganizationInvite","resp","apiSendOrganizationInviteEmail","apiFetchOrganizationInfo","apiFetchOrganizationUsers","apiListOrganizationMemberWordUsageStates","apiUpdateOrganizationMemberChipUsageLimit","wordsUsageLimit","words_usage_limit","apiRemoveOrganizationMemberChipUsageLimit","apiHandleChangeUserCredits","organizationName","creditsChange","credits_change","apiGetUpcomingInvoice","apiUpdateUserMonthlyAssignedCredits","new_credits_assigned_monthly","fetchOrganizationCreditHistory","timePeriod","time_period","apiGetOrganizationOwnerEmail","apiGetTopicRecommendation","topicId","apiGetTopicRecommendationCrawlJobs","apiGetRecommendedTopics","apiCreateTopicRecommendations","sort_criteria","sortCriteria","apiGetTopicRecommenderSettings","apiGetSuggestedTopics","apiCreateSuggestedTopicRecommendations","apiGetRecommendedTools","apiCreateContentRecommendation","contentGenerationTools","generationTriggerSource","topicRecommendationCollectionType","waitForInputGeneration","content_generation_tools","topic_recommendation_collection_type","generation_trigger_source","wait_for_input_generation","apiGetContentRecommendation","apiGetSingleContentRecommendation","contentRecommendationId","apiGetExistingContent","apiDeleteRecommendation","boxShadow","BlackButton","defaultProps","CatalogueTemplateContext","CatalogueTemplateProvider","planIdOnCard","contactUsLink","source","handlePremiumCustomerEnterprisePlanContactUs","integrationOption","parsedElementId","encodeURIComponent","handleTrackAdvertisingTextAdvancedOptionsClick","isOpen","is_open","handleTrackDescriptionSelect","handleTrackDescriptionCopy","handleTrackDescriptionDelete","handleTrackCustomerViewApiDocs","_resp","sectionId","element_id","section_id","handleClickSubscribe","planId","plan_list_id","handleElementShown","handleChurnModalShown","handleTrackExportBlogPosts","exportType","blog_id","export_type","handleTrackExportDocuments","documentId","handleTrackBlogLinkSettingsSaved","handleTrackTextToImageDownload","text_prompt","imageId","image_id","apiTrackContentRepurposingEvent","contentTypeFrom","contentToolId","contentTypeTo","choicesShown","content_type_from","content_from_id","content_type_to","choices_shown","handleTrackExportDocumentDisabled","documentType","document_type","handleTrackExportDocumentAttempt","handleTrackDeleteGeneratedImage","generationId","imageType","generation_id","image_type","handleTrackBlogAddOutlineHeader","handleTrackBlogToggleSeoMode","seo_toggle","handleTrackBlogToggleHighlightSeoIssues","highlight_toggle","handleTrackSeoSuggestionImprove","suggestion","handleTrackPricePlanModalOpen","handleTrackEnterpriseFeatureModalOpen","handleTrackPremiumViewPlans","redirectType","redirect_type","integration_option","plan_id_on_card","handleTrackWordCountLimitModalOpen","handleTrackContentSuggestionRemoved","topicRecommendationId","contentGenerationTool","isUrlUsedForRecommendation","topic_recommendation_id","content_generation_tool","is_url_used_for_recommendation","handleTrackContentSuggestionUsed","handleTrackDocumentCreated","topicRecommendationTitle","recommendationSource","topic_recommendation_title","recommendation_source","handleTrackTryExampleUsed","sourceUrl","inputs","source_url","handleTrackExportPdb","databaseType","databaseName","database_type","database_name","handleTrackPdbImportJobDelete","importType","import_type","handleTrackFileUploadOnDatabase","file_name","handleTrackProductDeletionFromDatabase","numProductsTotal","num_products_total","handleTrackLovAdditionOnDatabase","fieldDataType","optionName","field_datatype","option_name","getUserOnboardInfo","apiUpdateUserServiceConfigs","subHeader","marginTop","marginBottom","ToolCardGroup","Typography","ToolCardGroupBody","Grid","container","SuggestionCard","suggestion_logo","useStore","create","immer","setTab","newTab","setTimeout","elementToScrollTo","block","setSearch","mainCard","transition","shadows","shape","common","cursor","flexGrow","alignItems","SEARCH_RESULT_SECTION_ID","SuggestionSection","recommendedTools","onOpenChat","cardGroups","showBulkRewriterCard","templateModalOpen","setTemplateModalOpen","onSeeAllContent","ToolLibraryModal","tool","SuggestionForYouCard","iconSrc","catalogIcon","blog_article","chat_message","hypoChatIcon","chat_message_file_upload","generationTypeToAdTextMap","toolLogos","_href","marketingRoutes","_onClick","loadingClick","useAsyncFn","Link","textDecoration","position","Overlay","CircularProgress","src","alt","textAlign","ToolLibrary","isToolRecommendationEnabled","hasRewriteForSeoTool","enable_rewrite_for_seo","isCatalogueTemplateEnabled","enable_catalogue_templates","show_bulk_rewriter_card","showAutomapperCard","enable_automapper","filteredCardGroups","AUTOMAPPER_CARD_ID","suggestionCard","baseCardGroups","filteredCards","cardsWithMetadata","flatMap","group","matchedCards","cardWithMetadata","findIndex","other","term","margin","tabBar","fontSize","border","TabsValues","values","ToolLibraryHeader","tabValue","store","onTabChange","handleOnSearch","SearchBar","debouncedTiming","placeholder","searchTerm","Tabs","TabIndicatorProps","hidden","onChange","_","selectionFollowsFocus","Tab","DocumentTypeLabels","chat","uploaded_files_folder","product_description","documentRoutes","DocumentOverviewSortBy","EXTRA_LONG_FORM_MAX_PRODUCT_CHARS","PRESS_RELEASE_MAX_PRODUCT_CHARS","LONG_FORM_MAX_ROWS","LONG_FORM_MIN_ROWS","SHORT_FORM_MIN_ROWS","SHORT_FORM_MAX_ROWS","MAX_TARGET_AUDIENCE_CHARS","MAX_BRAND_CHARS","MAX_TOTAL_KEYWORDS_CHARS","SUMMARIZE_OUTPUT_FORMAT_OPTIONS","BIO_WRITER_TONE_OPTIONS","IMDA_DEFAULT_AD_TONE","IMDA_DEFAULT_TARGET_AUDIENCE","SupportedFileTypes","SUPPORTED_FILE_TYPE_TO_NAME_MAP","PDF","DOCX","TXT","CSV","XLS","XLSX","PNG","WEBP","JPEG","TIFF","RAW","AVIF","DEFAULT_UPLOADABLE_FILE_TYPES","IMAGE_FILE_TYPES","BeaconContext","InnerBeaconProvider","disableBeaconLinks","loadChat","useChat","isBeaconLoaded","setIsBeaconLoaded","beacon","Beacon","BeaconProvider","beaconId","LiveChatLoaderProvider","provider","providerKey","useBeacon","beaconContext","HelpArticleLink","article","articleId","openMode","verticalAlign","rel","preventDefault","apiGetCountryList","fetchAvailableTranslationLanguages","fetchTranslationConfig","handleTranslationConfigChange","updateForm","apiSaveWebEnrichmentIncludeExcludeLinks","includeLinks","excludeLinks","include_links","exclude_links","apiGetIncludeLinksFromFile","formData","FormData","append","apiGetExcludeLinksFromFile","apiGetIncludeExcludeLinks","TemplateCard","pingsToRender","setPingsToRender","referencedItems","referencedItemsEncoded","isPingRendered","makeCardWithMetadata","isIMDA","apiGetBlogById","target_entity_references","apiUpdateBlog","blogUpdateForm","apiBlogDeleteOutline","outlineId","apiGetBlogGenCost","apiBlogCreatePreview","apiGetLatestBlogPreviewId","apiGetEnrichedContentForBlogGeneration","blogTitle","blogTopic","blogOutline","webEnrichmentLinksConfig","blog_topic","web_enrichment_links_config","apiGenerateBlogOutline","apiGenerateBlogIntroEventSource","POST","apiGenerateBlogConclusionEventSource","apiGenerateBlogParagraphsEventSource","apiCheckRateLimitForBlogEnrichment","initialState","catalogues","cataloguesList","catTopThreeProducts","catalogues_loading","defaultDownvoteReasons","brandPlaceholderText","brandHelperText","blogToneOptions","blogLengthOptions","globalFeatureFlags","globalAppReducer","sortBy","dateA","createdAt","getTime","cat","CLEAR_CATALOGUES","UPDATE_CATALOGUES","DELETE_CATALOGUES","UPDATE_TOP_THREE_PRODUCTS","GLOBAL_FEATURE_FLAGS","GlobalAppContext","useGlobalAppContext","withGlobalAppContext","GlobalAppProvider","dispatch","useReducer","SpinnerOnDimmer","active","inverted","ResponsiveLoader","in","timeout","animation","useBlurredBackgroundLoaderStyles","_theme","backdropRoot","backdropFilter","loadingText","paddingTop","BlurredBackgroundLoader","zIndex","loaderHeight","loaderWidth","loaderZIndex","appBar","AnimatedLoadingStep","onCompleteLoading","timeToCompleteStep","neverShowCompleted","showCompletedAsFailure","showCompleted","setShowCompleted","showCompletedTimer","clearTimeout","mountOnEnter","unmountOnExit","animationData","failureAnimation","successAnimation","onLoopComplete","AnimatedGenerationLoader","loadingTexts","isLoading","lottieAnimation","mainLoadingHeader","retryOrCancelGenerationConfig","loadingStepIndex","setLoadingStepIndex","isDimmerOpen","setIsDimmerOpen","isPendingCancel","setIsPendingCancel","cancelledGeneration","setCancelledGeneration","currDateTime","setCurrDateTime","handleLoadingStepCompleted","nextStep","modal","canShowRetryingMessage","generationExpiredAt","generationLoadingAt","canShowCancelButton","handleCancelGeneration","useUserCountryCode","userCountryCode","useSWR","isUserSingaporean","downloadAsset","cache","copyAssetLinkToClipboard","languages","borderStyle","borderWidth","updateBtn","toMaterialShade","subtitleText","titleText","fontweight","TrialBannerBase","bannerTitle","bannerSubtitle","ctaButtonLabel","hideCtaButton","isMobile","py","px","component","to","_defs","_g","_extends","assign","bind","arguments","prototype","apply","SvgFreePlanIcon","_ref","svgRef","titleId","xmlns","xmlnsXlink","viewBox","fill","y","opacity","d","fillRule","transform","ForwardRef","_rect","_path","SvgIndividualPlanIcon","rx","strokeLinecap","strokeLinejoin","SvgTeamPlanIcon","SvgBasicPlanIcon","SvgEnterprisePlanIcon","Spacer","greyText","darkTheme","PlanDescriptionField","isDarkTheme","SvgCheckTapered","clipRule","checkIcon","paddingLeft","lightText","darkText","PlanDetailsList","benefits","lastIndex","benefit","SvgIcon","CheckTapered","Tooltip","bulk_product_descriptions","max_items_per_job","placement","Box","PlanPrice","isCustom","price","priceDisplayString","pricePrefix","currency","isYearly","isActive","isPaused","isCancelAtPeriodEnd","isUnlimitedDifferentPlan","shouldShowPriceForEnterprisePlan","currencySymbol","CURRENCY_SYMBOL_MAPPING","formattedPrice","bgcolor","sliderRoot","thumb","marginLeft","rail","mark","PlanSelectorSlider","planTiers","currentPlanTier","setCurrentPlanTier","isWordsFeatureEnabled","planMonthlyChipAmount","plan_monthly_chip_amount","toolTipMessage","estimated_blog_post_amount","estimated_product_description_amount","helpIconWithToolTip","typography","fontWeightBold","arrow","enterTouchDelay","interactive","creditsPerMonth","plan_monthly_credit_amount","wordsPerMonth","marks","multiTier","multiTierView","Slider","defaultValue","min","newValue","err","singleTierView","FormControl","fullWidth","darkThemeColor","buttonDarkTheme","getContrastText","PricingPlanCardCTAButton","onSelect","_onSelect","onCancel","_onCancel","ctaName","cancellableByUser","isTrialablePlan","hasTrialedPlan","trialDuration","loadingSelect","loadingCancel","planTierListObject","isFetchingPlanTierListObjectLoading","disabled","is_free_user","PricingPlanHeader","planName","darkBackground","greyBackground","lightBox","activeTheme","activeBox","MultiPricingPlanCard","activePlanId","isPromotionCountryCode","isLegacyPlan","timeToNextInvoice","isLoadingUpcomingInvoice","currTrialingPlan","isFetchingStripeBillingInfo","timeToBillingPeriodEnds","currentBillingPeriodEndString","upcomingInvoiceDate","defaultPlanTier","comparisonPredicate","defaultTierOrdering","previous","curr","orgPlanTierDetails","isLoadingOrgPlanTierDetails","fetchPremiumPlanTier","isFreePlan","is_trialable_plan","trial_duration","previously_trialed_plan_ids","contact_us_link","planPrice","plan_price_mapping","plan_price","forced_plan_type","starter","planCurrency","isDefaultDarkTheme","theme_override","PlanTierTheme","isActiveTheme","language","shopifyBillingPeriodEndString","shopify_subscription","billing_period_end","toLocaleDateString","Paper","overflow","plan_display_name","Divider","flexItem","orientation","pb","flex","plan_description","plan_display_price","plan_price_prefix","PlanBillingPeriod","yearly","cancel_at_period_end","plan_incentives","underline","cancellable_by_user","Skeleton","SocialProof","autoPlay","indicators","interval","navButtonsAlwaysVisible","pt","Image","left","indicator","top","borderBottom","flexContainer","PlanCategoryTabSelector","currentPlanCategoryTab","setCurrentPlanCategoryTab","defaultPlanCategoryTab","setDefaultPlanCategoryTab","handleTabChange","PlanCategoryTab","seo","eCommerce","isMediumScreen","up","isLargeScreen","indicatorColor","tabsRoot","tabButton","PlanDurationTabs","currentTab","setCurrentTab","discountPercentage","iconAnnualBadge","iconAnnual","centered","monthly","PLAN_TYPE_TO_PRICING_CARD_ICON_MAP","FreePlanIcon","basic","BasicPlanIcon","IndividualPlanIcon","premium","TeamPlanIcon","EnterprisePlanIcon","ZeroMarginAccordion","withStyles","Accordion","button","textMargins","socialProofContainer","hoverUnderlineText","textDecorationThickness","PricingPage","refreshUser","isOwner","OrganizationMemberRole","owner","openDialog","setOpenDialog","openPauseDialog","setOpenPauseDialog","isDiscountDialogOpen","setIsDiscountDialogOpen","selectedPlanTierId","setSelectedPlanTierId","hasPaymentFailed","setHasPaymentFailed","paymentFailureMessage","setPaymentFailureMessage","selectedReason","setSelectedReason","cancellationDescription","setCancellationDescription","pauseDuration","setPauseDuration","billingPeriod","initialBillingPeriod","isFetchingPlanTierListObject","orgPlanTierList","orgName","fetchOrganizationPlanTierList","isUserOnShopifyPlanTierList","_currentTab","handleSetCurrentTab","isShowingPayInvoiceModal","setIsShowingPayInvoiceModal","isEnterpriseClient","stripeBillingInfo","mutateStripeBillingInfo","fetchUserBillingInfo","nextBillingDate","subscription_info","next_billing_date","nextBillingDateString","_handleSelectPlan","StripeSubscriptionStatus","unpaid","past_due","is_paused","updateUserPlan","PlanChangeType","new_subscription","handleSelectPlan","showCancelPlanConfirmation","freePlanTier","find","handleOpenDiscountDialog","handleCloseDiscountDialog","useUpdateUserPlan","billingInfo","openPaymentFailureModal","_handleUpdateUserPlan","planChangeType","loadingUpdate","handleUpdateUserPlan","handleCancelPlan","cancellation","_pauseUserPlan","apiPausePlanTier","loadingPause","pauseUserPlan","noPermissionPageContent","Alert","severity","AlertTitle","PayInvoiceModal","setIsOpen","SimpleRedirectDialog","icon_src","plan_cancellation_icon","rightButtonText","onRedirect","handleCreateStripeCustomerPortal","portalUrl","ChangePlanDialog","onOpenDiscountDialog","PausePlanDialog","DiscountPlanDialog","onCancelPlan","PaymentFailureBanner","TrialBanner","has_plan_category_tabs","PricingPlanCardGroup","planTierList","onSelectPlanTab","onSelectPlan","onCancelActivePlan","align","PricingFAQs","pricingFAQs","fetchPricingFAQs","mockFAQ","AccordionSummary","expandIcon","question","AccordionDetails","dangerouslySetInnerHTML","__html","answer","shouldOnlyShowEnterprisePlans","orgMonthlyPlanTierList","orgYearlyPlanTierList","customPeriodPlanTierList","custom","planTierListMap","openIntercom","useIntercom","currentBillingPeriodEnd","upcomingInvoice","created","filteredPricingCards","pricingPlanCardGroupProps","hideActivePlanIfNotInPlanTierList","planTable","activePlanTierId","paused_plan_id","addActivePlanCard","numberOfCards","flat","plan","plan_category_tab","acc","xsValue","smValue","mdValue","lgValue","planTypesList","_plan_id","cta_name","should_show_price_for_enterprise_plan","filterOutPricingCards","trialing","handleClick","mb","borderTop","discount_percentage","PlanSelector","showPaidPlansOnly","isValidating","isLoadingPlans","planTierListToShow","overlayColor","right","bottom","useMountedState","mountedRef","baseURL","interceptors","use","originalResponse","request","responseURL","Session","attemptRefreshingSession","Promise","resolve","reject","AutomapperCard","automapper_logo","GeneratedStatus","ProductErrorType","ProductImportSource","productImportSourceToCardId","csvExcel","wooCommerce","bigCommerce","airTable","amazon","contentful","customPim","ProductStepper","GenerationFilterTypeLabel","ImportErrorState","ImportErrorStateMessage","MISSING_SKU_FIELD","MappingTypeEnum","CatalogueTemplateMappingKeys","fieldHelpText","avoidKeywords","product_page_url","multiValueFieldsSet","fixedFieldsMappings","isSkuRequired","display_name","is_required","defaultFieldMappings","templateToStandardMapping","existing_description","existing_bullet_points","avoid_keywords","enrich_url","standardToTemplateMapping","enrichmentFieldsUrl","enrichmentFieldsUpc","fieldsOrderMapping","fieldsOrderComparisonFunction","primaryComparisonValue","secondaryComparisonValue","primaryColor","materialShade","mainColor","colord","lighten","toHex","darken","A100","rotate","A200","A400","A700","makeMaterialPalette","TopicRecommendationType","TopicRecommendationTriggerSource","TopicRecommendationCollectionType","CrawlJobStatus","SpecialDomain","SortCriteria","CommonAnalytics","IconButtonVariant","VARIANT_MAP","outlined","plain","iconButton","outline","disabledInternalStyling","inheritLabelStyling","IconButton","classesOverrides","buttonProps","classRootNames","classesRoot","classesLabel","classesRest","currentDate","expiredAt","loadingAt","minTimeAfterGenerate","LetterAvatar","firstName","overrideBackgroundColor","initials","word","charAt","getInitials","hexCode","getAvatarStyle","facebook_logo","linkedin_logo","google_ads_logo","instagram_logo","headlines_logo","rewriter_logo","category_page_logo","landing_page_logo","eli5_logo","email_logo","video_intro_logo","meta_desc_logo","marketing_angles_logo","press_release_logo","summarise_logo","youtube_title_logo","bio_writer_logo","ask_anything_logo","redirectLink","isRedirect","setIsRedirect","updateSuccess","form","cancellation_reason","cancellation_description","updatePremiumPlanTier","handleCancellation","TagManager","dataLayer","PHOENIX_CHECKOUT_STARTED","organization","transactionId","uuidv4","oldPlanId","newPlanId","dataLayerName","GTM_SUBSCRIPTION_LAYER","handleCreateShopifyCheckoutSession","handleNewSubscription","handlePlanChange","StripePaymentFailureErrorType","error_message","annualToAnnualDowngrade","annualToMonthlyUpgrade","annualToMonthlyDowngrade","monthlyToMonthlyDowngrade","CANCELLATION_REASONS","CancellationReason","difficult_to_use","i_cant_afford","missing_features_i_need","dont_need_it_anymore","bad_content_quality","will_be_back","SHUFFLED_CANCELLATION_REASON_OPTIONS","shuffle","others","textFieldRef","Dialog","renderDialogInformation","dialogInformationProps","newPlanTier","changeSelectedReason","focus","newPlanMonthlyCurrencies","newPlanMonthlyBilledAmount","currentPlanChange","computePlanChange","ResetBillingCycleDialogContent","resume_subscription","ResumeBillingCycleDialogContent","CancelPlanDialogContent","monthlyToMonthlyUpgrade","monthlyToAnnualUpgrade","monthlyToAnnualDowngrade","annualToAnnualUpgrade","KeepBillingCycleDialogContent","SchedulePlanChangeDialogContent","getMonthlyAmountAndCurrencySymbol","isNewPlanYearly","billedAmountMonthly","billedAmountToday","planBannerInDialog","alignContent","genericPlanIcon","newMonthlyCurrencies","isMonthlyToMonthly","isMonthlyToAnnual","isAnnualToMonthly","isAnnualToAnnual","isMoreOrEqualCurrencies","resumeBillingCycleDialogContentProps","isSamePlan","planHasPaused","DialogContent","planChangeIcon","cancelPlanDialogContentProps","m","RadioGroup","FormControlLabel","control","Radio","CancellationReasonLabel","TextField","inputRef","EnhancedButton","has_churn_discount_applied","resetBillingCycleDialogContentProps","newBillingDateNumber","newBillingDateNumberLastPlace","newBillingDateNumberFirstPlace","newBillingDateNumberWithSuffix","concat","keepBillingCycleDialogContentProps","displayedPrice","planChangeDialogContentProps","nextBillingDateNumber","nextBillingDateNumberLastPlace","nextBillingDateNumberFirstPlace","nextBillingDateNumberWithSuffix","currencyCopy","mainBanner","latestUnpaidInvoicePaymentLink","showNewMessages","overdueDays","payment_failure_info","amountDue","Currency","usd","declineMessage","planBanner","errorIcon","dialogContent","disableEnforceFocus","pausePlanDialogProps","paddingBottom","inputProps","MenuProps","anchorOrigin","vertical","horizontal","transformOrigin","getContentAnchorEl","duration","option","refreshPlan","_handleClaimDiscount","apiApplyChurnDiscount","loadingDiscount","handleClaimDiscount","_handleDeclineDiscount","loadingDecline","handleDeclineDiscount","handleClose","closeIcon","BaseModal","piggy_bank_icon","background","paper","toRgbString","WhiteButton","propsClasses","finalClasses","baseTooltip","darkTooltip","darkTooltipLink","lightTooltip","lightTooltipLink","helpArticle","isLightTheme","overridingClasses","tooltipContent","overridingProps","tooltip","overridingTooltipClass","overridingRestClasses","HelpIcon","LightTooltipWithPadding","body2","linkedItemId","folderType","isPrivate","linked_item_id","folder_type","is_hidden","referenced_items","is_private","apiGetDocumentsCount","includeDeleted","includeHidden","includeNested","include_deleted","include_hidden","include_nested","apiGetDocument","apiGetDocumentByLinkedItemId","apiGetDocumentPath","apiPutDocumentTitle","apiPutDocumentFolder","apiUpdateDocumentPrivacy","apiPutDocumentRootFolder","apiStarDocument","starred","apiPutDocumentContent","apiPostHypoChatDocumentId","apiGetDocuments","query","apiDeleteDocument","apiUnhideDocument","ProductMetadataErrorType","GenerateProductErrorType","GenerateWriterErrorType","ExportFormat","ProductDedupeMode","CatalogueOverviewSortBy","only_needed_it_once","didnt_have_time_to_use","found_a_better_tool","too_expensive","StripeChargeStatus","StripeCouponDuration","CatalogueTransportFormat","ProductType","ProductTypeLabel","fashion","home_living","hobbies","electronics","product_feature","ads_feature","image_gen_feature","insta_caption","rewrite","hypo_chat","website_content","social_posts","OnboardingInputs","MissingProductImagesError","missingProductImages","super","NoImageUploadedError","RESEARCH_TO_GENERATION_TYPE_MAP","BATCH_JOB_TO_GENERATION_TYPE_MAP","monetizationAwarenessModalStore","createStore","closeModal","outerDiv","noMargin","whiteBackgroundInputStyles","fontFamily","paddingRight","StyledTextField","SearchBarWithDebounce","prevSearch","setPrevSearch","searchText","setSearchText","searchTimer","setSearchTimer","onKeyPress","onBlur","InputProps","startAdornment","mr","apiCreateCatalogue","catalogueName","templateId","generationConfig","template_id","generation_config","apiGetCatalogue","catalogueId","apiGetCatalogueHeaders","required_headers","apiGetCatalogueTemplateOfCatalogue","logUnmatchedHeadersToSentry","extraHeaders","missingHeaders","apiGetCatalogues","catalogueOverviewResponses","totalCatalogues","apiUpdateCatalogue","catalogueUpdateForm","apiDeleteCatalogue","apiGetCatalogueTemplates","DEFAULT_HEADER","FEATURE_CONTENT_COMPONENT_MAP","ProductDetailsEnrichment","contentProps","keypoints","ProductEnrichmentEnterpriseNudgeImage","SmartSuggest","SeoKeywordsEnterpriseNudgeImage","CustomContentType","CustomWriterEnterpriseNudgeImage","RewriterEnterpriseNudgeImage","ImageEditing","headerProps","ImageEditingEnterpriseNudgeImage","pointerEvents","MuiButton","GeneralModal","closeIconDisabled","trigger","dimmer","headerStyle","noBodyPadding","Content","bodyStyle","Actions","overrideModalActions","secondaryDisabled","startIcon","secondaryIcon","secondaryFunc","secondaryText","primaryDisabled","primaryIcon","primaryFunc","primaryText","initialWordUsage","user_words_used","user_words_usage_limit","org_words_used","org_words_usage_limit","grant_org_words_used","grant_org_words_usage_limit","wordUsageStore","wordUsage","isWordUsageLoading","isWordUsageExceeded","getWordUsage","apiGetWordUsage","useWordUsage","handleTrackUserSession","handleTrackDescriptionEdit","handleTrackProductsImportSelectSource","importSource","import_source","handleTrackAddSmartSuggestedKeyword","searchPlatform","suggestedSmartKeywords","productDetails","enrichmentContent","search_platform","suggested_smart_keywords","product_details","enrichment_content","root_keyword","handleTrackProductCardTabClick","handleTrackDescriptionDownvote","handleTrackDescriptionDownvoteReason","reasons","available_reasons","explanation","handleTrackGenerationStatusFilter","generationStatus","generation_status","handleTrackIntegrationConnection","connectionSource","eventType","connection_source","event_type","AppFeaturesTitle","OnboardingContext","OnboardingContextProvider","onboarding_info","onOnboardingStepSubmit","organizationDetails","defaultValues","default_organization_display_name","selected_features","userDisplayName","user_display_name","userOrganizationDisplayName","user_organization_display_name","userRole","user_role","userWork","user_work","userCompanySize","user_company_size","userWebsite","user_website","productTypeState","obj","product_type","userOthers","user_others","productTypeOthers","product_type_others","aboutUs","about_us","userWorkOthers","user_work_others","getOnboardFormDefault","methods","useForm","reset","watchUserDisplayName","useWatch","watchUserOrganizationDisplayName","watchUser","watchUserRole","watchUserWebsite","watchProductTypeFields","watchHypoDocFeature","watchBlogFeature","watchAdsFeature","watchWebsiteContent","watchProductFeature","watchSummarise","watchSocialPosts","watchOther","APP_FEATURE_ICON_SIZE","getAppFeatureStrokeColor","isSelected","isDisabled","appMainFeatureItems","formField","formFieldValue","userRoleItems","UserRoleLabel","UserRole","e_commerce_brand","UserRoleSubTitle","pattyPaintBrushIcon","seo_team","keysSmallTeamIcon","education","publicSpeakingIcon","software_company","magnetAgencyIcon","personal","explorationIcon","useOnboardingContext","heading","setLoading","invoice_id","my","MILLI_TO_HOURS","overrideProps","trialBannerProps","trial_banner_copy","trialBannerCopy","trial_plan_start_datetime","trial_plan_length","trialLengthInDays","isFreeUser","trialDaysLeft","trialStartTimestamp","trialMillisecondsLeft","now","showBanner","trial_title","post_trial_title","trial_subtitle","post_trial_subtitle","getBannerCopy","useTrialBanner","contentRecommendationStore","recommendedContent","isLoadingRecommendation","isScrapedFailed","onSuggestContentIdeas","userWebSite","recommendationTriggerSource","recommendation","recommendations","home_page_suggest","newRecommendedContent","getRecommendedContent","content_feed","setRecommendedContent","useContentRecommendation","apiGetLifeTimeWordUsage","apiGetOrganizationWordUsageHistory","organization_id","_image","SvgLogo","xlinkHref","Logo","LogoSvg","imageRendering","LogoText","LogoTextLightSvg","LogoTextDarkSvg","ButtonVariant","contained","LABEL_VARIANT_NAME","TypographyVariantMap","VariantEnum","captionBold","paragraph2Med","paragraph2Bold","paragraph1Bold","aspectRatio","marginRight","startIconProps","endIconProps","classLabelNames","classesStartIcon","classesEndIcon","ArticleName","beaconArticles","productImage","welcome","adTextTargetAudience","import","catalogs","products","compose","plagiarismChecker","imageGen","blogTone","brandVoiceLite","blogPOV","blogOutlineSeo","seoContentMetrics","seoScore","seoChecklist","seoKeywordFinder","productDataEnrichment","teamManagement","automaticLinking","statusTracker","fn","lastCallId","isMounted","callId","prevState","paperWidth","scroll","paperWidthXs","PaperProps","ModalTitle","ModalActions","ModalContent","apiShouldShowNpsBannerForUser","apiBonusWordsForG2Review","createReferral","copyReferral","referralCode","getReferralDetails","created_referral","getCreditsEarnedAndPending","getWordsEarnedAndPending","isCustomVariant","DEFAULT_STYLE","heading1","heading2","heading3","paragraph1Reg","paragraph2Reg","captionReg","styleOverrides","variantStyle","variantPropsRest","defaultStyle","defaultPropsRest","propsOverride","useTeamInviteId","teamInviteIdInLocalStorage","setTeamInviteIdInLocalStorage","circle","ping","PingDot","styleProp","_loading","_onClickWithTracking","portal_url","session_id","confirmation_url","confirmationUrl","handleCancelShopifySubscription","apiGetStripeInvoicePaymentLink","includeActivePlanTier","include_active_plan_tier","cancellationForm","subscription_type","stackProps","PrimaryButton","SecondaryButton","DangerButton","UserContext","UserProvider","withUserContext","responsiveFontSizes","createTheme","MuiButtonBase","disableRipple","disableElevation","MuiRadio","MuiDialog","MuiSelect","ExpandMore","overrides","MuiDrawer","paperAnchorDockedLeft","borderRightColor","MuiListItem","MuiTab","MuiListItemIcon","MuiChip","MuiDivider","MuiInputLabel","MuiOutlinedInput","MuiInputBase","input","select","MuiLinearProgress","colorPrimary","barColorPrimary","secondary","grey","body1","subtitle1","subtitle2","overline","letterSpacing","textTransform","caption","h1","h2","h3","h4","h5","h6","_tableThemeOverrides","MuiTableCell","textOverflow","head","stickyHeader","paddingCheckbox","MuiTableRow","MuiTableHead","tableTheme","useBoolean","setTrue","setFalse","toggle","useLayoutEffect","useConfirmation","resolveCallback","isConfirming","setIsConfirming","getConfirmation","onConfirm","isConfirmed","useIsFirstRender","isFirstRender","DescribeErrorType","JobStatus","BulkEnrichStrategy","bulkEnrichmentStrategies","MULTI_SOURCE","SINGLE_SOURCE","BulkEnrichStrategyLabel","BulkEnrichStrategySubtitle","TimePeriod","ActionPointSeverity","PlanCreditProvisionType","ReferenceFileInputType","SocialShareMedia","ecommerce_product","marketing","general_writing","school","agency","small_team","large_company","OnboardingPageAt","UserWork","UserWorkLabel","ecommerce","travel","health","finance_or_law","saas","social_and_ads","marketer","writer","operations","sales","support","manager","hr_and_legal","engineering","UserWorkLabelOnboardingOptions","UserCompanySize","UserCompanySizeLabel","one_to_nine","ten_to_forty_nine","fifty_to_two_hundred_forty_nine","two_hundred_fifty_to_one_thousand","one_thousand_plus","two_hundred_fifty_plus","UserHeardAboutUsChannel","UserHeardAboutUsChannelLabel","search_engine","social_media","colleague_or_friend","SniperLinkFeaturesToUrlSlugMap","inr","mxn","cop","brl","pkr","php","StripeSessionMode","ExportType","AdditionalExportDocumentType","ToneSource","SocketIOEvents","PerformanceMetricName","AccessControlPermission","invoiceId","isIndividualPlan","ArticlePreviewRedirect","articlePreviewId","redirectUrl","RequiresAPIAccessToken","redirectToLogin","shouldRedirectToLogin","useLocation","authInterceptorRef","hasAuthInterceptor","setHasAuthInterceptor","shouldAddAuthInterceptor","eject","usePremiumAuth","usePostHog","login","logout","signOut","respData","returnTo","origin","logoutUrl","box","ctaButton","ctaButtonInner","centreText","GeneralError","BugFixingImgSrc","textHeader","textBody","handleCta","textCta","UnexpectedError","translationEnabled","hasShownTranslationSnackbar","reload","ErrorFallback","documentTitles","getElementsByTagName","isTranslationError","hasAttribute","documentElement","lang","hasSentEventRef","errorMessage","ProtectedRouteWithRedirect","hasAccess","redirectURL","setRedirectURL","fetchAppVersion","useAppVersion","refreshInterval","useNewVersionRefreshSnackbar","appVersion","previousAppVersion","usePrevious","persist","TrialEndedModal","headerBackgroundColor","ApiErrorModal","setError","onError","res","InsufficientCreditsModal","modalMessage","redirectTo","disableRedirectButton","loop","humanHandsUpErrorAnimation","str","DialogActions","disableSpacing","PremiumInsufficientCreditsModal","PremiumInsufficientWordsModal","handleRedirect","WelcomeMemberModal","handleConfirm","celebrate","DeclineCode","finalWarningMessages","insufficient_funds","withdrawal_count_limit_exceeded","invalid_amount","card_not_supported","expired_card","incorrect_cvc","invalid_cvc","incorrect_number","incorrect_pin","incorrect_zip","warningMessages","SupportEmailReactElement","PaymentFailureModal","decline_code","setOpenModal","finalWarning","correctMessageMap","markModalAsSeen","UserPlanType","PlanSelectorWithTracking","_fetchAndTrack","RatelimitCTAModal","userPlanType","restDialogProps","isTinyScreen","planSelector","trialUserHeader","fontWeightMedium","trialUserCTA","paidUserHeader","paidUserCTA","unlimitedPlanUserHeader","unlimitedPlanUserCTA","fontWeightLight","enterpriseUserHeader","enterpriseUserCTA","fontWeightRegular","paid","trial","callToAction","fullScreen","DialogTitle","disableTypography","G2Modal","setIsShowingG2Modal","setIsShowingG2ReviewDrawerItems","bonusWordsForG2Review","isBonusWordsLoading","G2Svg","Dashboard","lazy","LockedOutPage","CataloguePage","CatalogueView","AdvertisingTextPage","BulkWorkflowDashboardPage","BulkWorkflowPage","BlogGeneratorPage","SpeechPage","AutomapperPage","DocumentOverviewPage","ChatPage","LiveFeedPage","TextToImagePage","PremiumDrawerWithNavBar","Settings","BillingPage","UserManagement","EmailVerificationPage","OnboardingRedirect","PhoneVerification","OnboardingModal","FreeCredits","Faq","NotFound","AdminPanelPage","CheckoutSuccessPage","ShopifyIntegrationConfirmationPage","WebflowAuthorizationPage","ShopifyUpgradePlanConfirmationPage","DocumentPage","FreeWords","CollectionsPage","CollectionView","AssetsPage","ProductDatabasePage","SyncedProjectLoadingPage","TaxonomyManagementPage","ImageWorkflowPage","ImageEditingPage","EcommercePage","DigitalShelfAnalyticsPage","ProductMonitoringConversionPage","PremiumProjectPage","FullPageLoader","hlp","initHelpHero","api_host","person_profiles","autocapture","capture_pageview","capture_pageleave","disable_session_recording","loaded","debug","session_recording","maskAllInputs","maskInputOptions","password","intercomButton","App","setUser","isShowingG2Modal","isShowingG2ReviewDrawerItems","update","updateIntercom","boot","_bootIntercom","setAnalyticsUsername","setAnalyticsUserPlanType","showTeamWelcomeModal","setShowTeamWelcomeModal","teamInviteId","setTeamInviteId","newOrgMember","finally","tryJoinTeam","whiteLabelUi","white_label_ui","enableContentRecommendation","enable_action_item_recommendation","disableInsufficientCreditsRedirectButton","disableInsufficientWordsRedirectButton","disableRateLimitCtaModal","disableReferralPage","disableSettingsPage","disableFaqPage","disableOnboarding","disableHelpScout","disableChatSupport","showRateLimitExceededModal","setShowRateLimitExceededModal","canShowPaymentFailureModal","setCanShowPaymentFailureModal","handlePaymentFailureModalClose","emailVerified","email_verified","locationPath","isIntercomBooted","tagManagerArgs","gtmId","events","phoenixCheckoutStarted","phoenixCheckoutSuccess","PHOENIX_CHECKOUT_SUCCESS","phoenixEmailVerified","PHOENIX_EMAIL_VERIFIED","preview","auth","initializeGtm","customAttributes","vertical_padding","custom_launcher_selector","updateIntercomWithSessionHmac","apiGetIntercomSessionHmac","hmac","userHash","activePlan","isHypoFeedEnabled","enable_hypofeed","isProductDatabaseEnabled","enable_product_database_tab","isTaxonomyEnabled","enable_taxonomy","isAssetsManagementEnabled","enable_assets_management_tab","isProductMonitoringEnabled","enable_product_monitoring_tab","isImageWorkflowEnabled","enable_image_workflow_tab","isAutomapperEnabled","onboardingInfo","setOnboardingInfo","isPhoneNumberVerifiedLoading","isPhoneNumberVerified","mutateIsPhoneNumberVerified","refreshGlobalAppData","default_description_downvote_reasons","DEFAULT_DOWNVOTE_REASONS","blogGenHelperText","blog_gen_helper_text","BRAND_HELPER_TEXT","brandBackgroundHelperText","BRAND_PLACEHOLDER_TEXT","brandBackgroundPlaceholder","blog_tone_options","BLOG_TONE_OPTIONS","blog_length_options","BLOG_LENGTH_OPTIONS","debouncedRefreshGlobalAppData","debounce","leading","trailing","maxWait","onGenerationRateLimitExceeded","isLoadingData","hasSeenOnboarding","has_completed","restrictToPricingPage","updateOnboardingInfo","newUserOnboardingInfo","fpr","handleAfterGenerate","catalogueTemplates","isLoadingCatalogueTemplates","revalidateOnFocus","revalidateOnReconnect","revalidateOnMount","template","input_mapping","is_locked_out","IntercomIcon","fallback","render","updateIsPhoneNumberVerified","setIsPhoneNumberVerified","requires_phone_verification","exact","enableSocialShare","dashboard_incentive_options","linkedin_post","onAfterGenerate","showTagImage","showImageTags","showWriterStyles","can_edit_writers","tagImageOnUpload","showSEORelatedKeywords","editorType","admin","AuthenticatedApp","AccountStatus","AccountDisabledPage","accountStatus","headerText","shadowBanned","Container","divider","AttemptRefreshPage","cancel","urlParams","URLSearchParams","SuperTokens","redirectToAuth","bold","itemPadding","getStartedButton","invitedByText","ReferralLandingPage","referrerName","setReferrerName","createdReferral","referee_username","mx","gridGap","Hidden","mdDown","justify","AuthErrorPage","LoginPage","loginPageUrl","LogoutPage","PostLoginPage","JoinTeamPage","useGlobalStyles","AppContainer","adapter","ReactRouter5Adapter","shouldRetryOnError","ThemeProvider","maxSnack","disableWindowBlurListener","preventDuplicate","Snackbar","blocked","deleted","getSuperTokensRoutesForReactRouterDom","reactRouterDom","ThirdPartyPreBuiltUI","EmailPasswordPreBuiltUI","EmailVerificationPreBuiltUI","SuperTokensProvider","components","AuthPageHeader_Override","DefaultComponent","hostname","match","resource","Resource","merge","SemanticResourceAttributes","SERVICE_NAME","SERVICE_VERSION","DEPLOYMENT_ENVIRONMENT","metricReader","PeriodicExportingMetricReader","exporter","OTLPMetricExporter","concurrencyLimit","exportIntervalMillis","view","View","instrumentName","aggregation","ExplicitBucketHistogramAggregation","myServiceMeterProvider","MeterProvider","readers","views","opentelemetry","metrics","setGlobalMeterProvider","WebTracerProvider","sampler","TraceIdRatioBasedSampler","dev","staging","prod","addSpanProcessor","BatchSpanProcessor","OTLPTraceExporter","scheduledDelayMillis","register","contextManager","ZoneContextManager","registerInstrumentations","instrumentations","XMLHttpRequestInstrumentation","propagateTraceHeaderCorsUrls","RegExp","escapeRegExp","DocumentLoadInstrumentation","initializeOpenTelemetry","appInfo","appName","apiDomain","apiBasePath","websiteDomain","websiteBasePath","useShadowDom","getRedirectionURL","newSessionCreated","redirectToPath","startsWith","recipeList","ThirdParty","signInAndUpFeature","providers","Google","EmailPassword","signUpForm","formFields","nonOptionalErrorMsg","signInForm","EmailVerification","mode","dsn","autoSessionTracking","environment","tracesSampleRate","integrations","TracingIntegrations","BrowserTracing","ReactDOM","StrictMode","appId","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.24ed7b68.chunk.js","sourcesContent":["import { loadStripe } from '@stripe/stripe-js'\nimport moment from 'moment'\n\nimport { userLocale } from '@hypotenuse/common/src/components/assetsDisplay/utils'\nimport {\n CatalogueFilter,\n InputColumnNamesCSV,\n ProductSearchQuery\n} from '@hypotenuse/common/src/interfaces/Products'\nimport { PlatformType } from '@hypotenuse/common/src/utils/Interfaces'\n\nimport { PremiumPlanTierWithPlanType } from '../hooks/usePremiumPlanTier'\n\nimport { handleCreateStripeCheckoutSession } from '../api/Billing'\n\nimport {\n PlanBillingPeriod,\n PlanType,\n PremiumPlanTier,\n User\n} from '../components/utils/Interfaces'\n\nimport {\n HELPHERO_TUTORIAL_TOUR,\n PREVIOUS_INPUT_MAPPINGS,\n STRIPE_TEST_PUBLISHABLE_KEY\n} from './Constants'\n\nexport const typingAnimationInputField = async (\n selector: string,\n text: string,\n speed: number = 20\n) => {\n const element: HTMLInputElement = document.querySelector(\n selector\n ) as HTMLInputElement\n\n for (let i = 0; i < text.length; i++) {\n element.value += text[i]\n await new Promise((r) => setTimeout(r, speed))\n }\n}\n\nexport const getTimeElapsedInSeconds = (datetime: string | Date) => {\n const inputDate = new Date(datetime)\n // Javascript iso string is different than Python, so need to trim the Z at the end.\n const datenow = new Date(new Date().toISOString().replace('Z', ''))\n return (datenow.getTime() - inputDate.getTime()) / 1000\n}\n\nexport const convertEpochTimeToDate = (timeElapsedInSeconds: number) => {\n const months = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec'\n ]\n const date = new Date(timeElapsedInSeconds * 1000)\n return `${months[date.getMonth()]} ${date.getDate()}, ${date.getFullYear()}`\n}\n\nexport const toTitleCase = (text: string): string => {\n return text\n .split(' ')\n .map((w) => w[0].toUpperCase() + w.substr(1).toLowerCase())\n .join(' ')\n}\n\n/**\n * Simple regex-based check for whether a string is an email address\n */\nexport const isStringEmailAddress = (s: string): boolean => {\n return /^\\S+@\\S+\\.\\S+$/.test(s)\n}\n\nexport const extractNameFromEmailAddress = (username: string) => {\n // If the username is an email address, extract just the part before the @\n return toTitleCase(\n isStringEmailAddress(username) ? username.split('@', 2)[0] : username\n )\n}\n\nexport const redirectWithHiddenButton = (url: string) => {\n const link = document.createElement('a')\n link.href = url\n\n // Append to html link element page\n document.body.appendChild(link)\n\n // Start download\n link.click()\n\n // Clean up and remove the link\n document.body.removeChild(link)\n}\n\n/**\n * Construct a ProductSearchQuery given a CatalogueFilter\n * @param {CatalogueFilter} filter Filter without pagination\n * @param {number} page Page number\n * @param {number} step Number of items per page\n * @returns {ProductSearchQuery} ProductSearchQuery (including pagination)\n */\nexport function makeQueryFromFilter(\n filter: CatalogueFilter,\n page: number,\n step: number = 10\n): ProductSearchQuery {\n return {\n ...filter,\n start: (page - 1) * step,\n end: page * step\n }\n}\n\nexport const getIsTutorialComplete = (user: User): boolean => {\n const completedToursIds = user.completedToursIds\n return (\n // completedToursIds === undefined ||\n completedToursIds.includes(HELPHERO_TUTORIAL_TOUR.id)\n )\n}\n\nexport const setPreviousInputMappings = (\n mappings: InputColumnNamesCSV\n): void => {\n localStorage.setItem(PREVIOUS_INPUT_MAPPINGS, JSON.stringify(mappings))\n}\n\nexport const getPreviousInputMappings = (): InputColumnNamesCSV => {\n return (\n JSON.parse(\n localStorage.getItem(PREVIOUS_INPUT_MAPPINGS) ??\n ((null as unknown) as string)\n ) ?? undefined\n )\n}\n\n/**\n * This function capitalizes the start of every word in the sentence.\n * Example: 'Hello woRld' -> 'Hello WoRld'\n */\nexport const capitalize = (text: string): string =>\n text.replace(/\\w\\S*/g, (w) => w.replace(/^\\w/, (c) => c.toUpperCase()))\n\n/**\n * Simple hash function is taken from https://stackoverflow.com/questions/7616461/generate-a-hash-from-string-in-javascript\n */\nexport const hashText = (text: string): number =>\n Math.abs(\n text.split('').reduce((a, b) => {\n a = (a << 5) - a + b.charCodeAt(0)\n return a & a\n }, 0)\n )\n\n/**\n * This function redirects user to Stripe Checkout Session and is shared in both Pricing and Billing page\n * @param plan_id\n */\nexport const redirectToStripeCheckoutSession = async (plan_id: string) => {\n const stripe = await loadStripe(STRIPE_TEST_PUBLISHABLE_KEY)\n const sessionId = await handleCreateStripeCheckoutSession(plan_id)\n stripe?.redirectToCheckout({ sessionId: sessionId })\n}\n\n/**\n * This function returns a predicate to filter out any paid or active plan tiers.\n * @param activePlanTier The User's Active Plan Tier to filter\n * @returns A predicate that checks whether a plan tier is free or active.\n */\nexport const paidAndActivePlansPredicate = (\n activePlanTier: PremiumPlanTier | undefined,\n planBillingPeriod: PlanBillingPeriod\n) => (planTier: PremiumPlanTier) =>\n // Show plan tiers that have the specified PlanBillingPeriod\n (planBillingPeriod === planTier.plan_billing_period &&\n (planTier.plan_type !== PlanType.free ||\n planTier.plan_id === activePlanTier?.plan_id)) ||\n // Always show enterprise plan\n planTier.plan_type === PlanType.enterprise ||\n // Show free plan card if user has no active plan\n (activePlanTier?.plan_type === planTier.plan_type &&\n planTier.plan_type === PlanType.free)\n\n/**\n * This function returns whether the word is enabled for the user.\n * Check if the global feature flags is enabled, if it's not, then it's not enabled for all users\n * If it is enabled, then check if the user has the feature flag enabled, only if both global feature flags and user feature flags are enabled, then it's enabled for the user\n * @param user The user object\n * @param featureFlags The feature flags object\n * @returns Whether the word is enabled for the user\n */\nexport const isWordsEnabled = (user: User): boolean => {\n // Shopify users don't have access to words\n if (user.platform_type && user.platform_type === PlatformType.shopify) {\n return false\n }\n return Boolean(\n user?.service_configs?.feature_flags &&\n user?.service_configs?.feature_flags?.enable_words\n )\n}\n\nexport const canAccessPlagiarismChecker = (\n premiumPlanTier?: PremiumPlanTierWithPlanType\n) => {\n return !!(\n premiumPlanTier &&\n (premiumPlanTier.isTeamPlan ||\n premiumPlanTier.isEnterprisePlan ||\n premiumPlanTier.isUnlimitedPlan)\n )\n}\n\n/**\n * Given the unix timestamp (in gmt+0), calibrate the time to the local time\n * as determined by the browser and convert it to a readable datetime string for the user.\n * @param timestamp This is the unix timestamp from last_updated_at\n * @returns a formatted datetime string\n */\nexport const formatUnixTimeStamp = (timestamp: number): string => {\n return moment.unix(timestamp).toDate().toLocaleString(userLocale)\n}\n","import { apiClient } from '../utils/ApiClient'\nimport { PremiumPlanTierList } from '../utils/Interfaces'\n\nexport const apiFetchPlanTierListObject = async (): Promise => {\n const response = await apiClient.get('/plan_tier_list_object')\n return response.data\n}\n","import React from 'react'\n\nimport { Box, BoxProps } from '@material-ui/core'\nimport { useTheme } from '@material-ui/core/styles'\n\nexport interface StackProps\n extends Omit {\n direction?: BoxProps['flexDirection']\n spacing?: number\n}\n\n/**\n * Polyfill for MUI v5's `Stack` component.\n * @deprecated Switch to MUI v5's native component ASAP.\n */\nconst Stack = React.forwardRef((props, ref) => {\n const { direction = 'column', spacing = 0, style, ...restProps } = props\n const theme = useTheme()\n\n return (\n // Passing ref to Box is not supported in MUI v4's type system, so we use a typescript hack to do this for now\n // See https://github.com/mui/material-ui/issues/17010#issuecomment-615577360\n \n )\n})\n\nexport default Stack\n","import React, { useCallback, useEffect, useRef, useState } from 'react'\n\nimport * as amplitude from '@amplitude/analytics-browser'\nimport * as Sentry from '@sentry/browser'\nimport LogRocket from 'logrocket'\nimport setupLogRocketReact from 'logrocket-react'\nimport posthog from 'posthog-js'\nimport ReactGA from 'react-ga'\n\nimport { handleTrackPageVisit } from '../api/Analytics'\nimport { getGlobalAppData } from '../api/Settings'\n\nimport { APP_VERSION } from '../utils/Constants'\n\nexport interface TrackEventParams {\n isError: boolean\n}\n\nexport interface AnalyticsInterface {\n setUsername: (username?: string) => void\n setUserPlanType: (username?: string) => void\n /**\n * Interface derived from Google Analytics SDK\n * @param {string} category Broad category of the event\n * @param {string} event Specific event\n * @param {TrackEventParams} params Additional info about the even that affects how the event is handled/tracked\n */\n trackEvent: (\n category: string,\n event: string,\n params?: TrackEventParams\n ) => Promise\n trackPageView: (path: string) => void\n}\n\nexport const AnalyticsContext = React.createContext<\n AnalyticsInterface | undefined\n>(undefined)\n\nexport interface AnalyticsProviderProps {\n disableTracking?: boolean\n username?: string\n logRocketAppId: string\n logRocketExcludedUsernamePatterns?: RegExp[]\n googleAnalyticsTrackingCode: string\n}\n\nexport const AnalyticsProvider: React.FC = (props) => {\n const {\n children,\n username: initialUsername,\n disableTracking,\n logRocketAppId,\n logRocketExcludedUsernamePatterns,\n googleAnalyticsTrackingCode\n } = props\n\n const [username, setUsername] = useState(initialUsername)\n const [planType, setUserPlanType] = useState(undefined)\n const [\n isIdentifiedAnalyticsInitialized,\n setIsIdentifiedAnalyticsInitialized\n ] = useState(false)\n // This ref is used to alert us about potentially missing LogRocket sessions\n const logRocketInitRef = useRef(false)\n\n /**\n * Set the active user for analytics services\n */\n const identify = useCallback(\n async (username: string, planType: string): Promise => {\n if (disableTracking) return\n\n try {\n LogRocket.identify(username, { name: username, planType: planType })\n ReactGA.set({ userId: username })\n amplitude.setUserId(username)\n\n const globalAppData = await getGlobalAppData()\n if (globalAppData.global_feature_flags?.enable_posthog_monitoring) {\n posthog.identify(username, { name: username, planType: planType })\n }\n\n Sentry.setUser({\n username,\n email: username,\n id: username,\n ip_address: '{{auto}}'\n })\n LogRocket.getSessionURL((url) => {\n Sentry.configureScope((scope) =>\n scope.setExtra('logrocket_session_url', url)\n )\n })\n } catch (error) {\n Sentry.captureException(error, { level: 'error' })\n }\n },\n [disableTracking]\n )\n /**\n * Check whether a given user is excluded from LogRocket tracking\n */\n const isUsernameExcludedFromLogRocketTracking = useCallback(\n (username: string): boolean => {\n return (\n logRocketExcludedUsernamePatterns\n ?.map((pattern) => pattern.test(username))\n ?.some((v) => v) || false\n )\n },\n [logRocketExcludedUsernamePatterns]\n )\n /**\n * Initialize analytics services anonymously i.e. without attaching to a user\n */\n const initializeAnalyticsAnonymous = useCallback(async (): Promise => {\n if (disableTracking) return\n\n try {\n // Google Analytics (GA) for platform analytics\n ReactGA.initialize(googleAnalyticsTrackingCode)\n } catch (error) {\n if (error) {\n Sentry.captureException(error, { level: 'error' })\n }\n }\n }, [disableTracking, googleAnalyticsTrackingCode])\n /**\n * Initialize analytics services that require user identification\n */\n const initializeAnalyticsWithUser = useCallback(\n async (username: string, planType: string): Promise => {\n if (disableTracking) return\n\n // TODO: Implement anonymous LogRocket tracking when user is not available (how would we know?)\n // Initialize LogRocket & Identify user.\n // We try to catch any missing LogRocket sessions by first checking if there was any error thrown from the init\n // methods, or whether the methods were even run properly.\n if (!isUsernameExcludedFromLogRocketTracking(username)) {\n LogRocket.init(logRocketAppId, {\n release: APP_VERSION\n })\n setupLogRocketReact(LogRocket)\n logRocketInitRef.current = true\n }\n\n // Attach user to analytics services after they've been initialized\n await identify(username, planType)\n },\n [\n disableTracking,\n identify,\n isUsernameExcludedFromLogRocketTracking,\n logRocketAppId\n ]\n )\n const checkIfLogRocketInitAndThrowSentryError = useCallback(async (): Promise => {\n if (!logRocketInitRef.current) {\n Sentry.captureMessage(\n 'A tracking function was called without being initialised',\n { level: 'error' }\n )\n }\n }, [])\n\n useEffect(() => {\n setUsername(initialUsername)\n }, [initialUsername])\n useEffect(() => {\n // Initialize anonymous analytics services immediately on load\n void initializeAnalyticsAnonymous()\n }, [initializeAnalyticsAnonymous])\n useEffect(() => {\n if (!username) return\n\n if (!planType) return\n\n // If analytics services are not already initialized, do so and attach the current user\n if (!isIdentifiedAnalyticsInitialized) {\n initializeAnalyticsWithUser(username, planType).then(() => {\n setIsIdentifiedAnalyticsInitialized(true)\n })\n }\n // Otherwise, just attach the current user to analytics services\n else {\n void identify(username, planType)\n }\n }, [\n identify,\n initializeAnalyticsWithUser,\n isIdentifiedAnalyticsInitialized,\n username,\n planType\n ])\n\n const trackEvent = useCallback(\n async (\n category: string,\n event: string,\n params?: TrackEventParams\n ): Promise => {\n if (disableTracking) return\n\n if (!(username && isUsernameExcludedFromLogRocketTracking(username))) {\n await checkIfLogRocketInitAndThrowSentryError()\n LogRocket.track(event)\n }\n if (params?.isError) Sentry.captureMessage(event)\n\n ReactGA.event({ category: category, action: event })\n },\n [\n username,\n disableTracking,\n isUsernameExcludedFromLogRocketTracking,\n checkIfLogRocketInitAndThrowSentryError\n ]\n )\n const trackPageView = useCallback(\n async (path: string): Promise => {\n // TODO: Use router/history(?) to automatically track route changes\n if (disableTracking) return\n\n await handleTrackPageVisit(path)\n ReactGA.pageview(path)\n },\n [disableTracking]\n )\n\n return (\n \n {children}\n \n )\n}\n\nexport const useAnalytics = () => {\n const context = React.useContext(AnalyticsContext)\n if (context === undefined) {\n throw new Error('useAnalytics must be used within a AnalyticsProvider')\n }\n return context\n}\n\n// region Backward compatibility\n/**\n * This section provides backward compatibility with the static `Analytics` class interface.\n * Prefer using the `useAnalytics` hook directly where possible.\n */\n\ninterface ConfiguratorProps {\n setUseAnalyticsRef: (analytics: AnalyticsInterface) => void\n}\n\nconst InnerAnalyticsConfigurator: React.FC = (\n props: ConfiguratorProps\n) => {\n props.setUseAnalyticsRef(useAnalytics())\n return null\n}\n\nlet useAnalyticsRef: AnalyticsInterface | undefined\nconst setUseAnalyticsRef = (useAnalyticsRefProp: AnalyticsInterface) => {\n useAnalyticsRef = useAnalyticsRefProp\n}\n\n/**\n * This component exposes the functionality of the `useAnalytics` hook to be usable outside React function components.\n * @example\n * \n * \n * \n * \n *\n * Elsewhere, use `Analytics` to access the props returned by\n */\nexport const AnalyticsConfigurator = () => (\n \n)\n\nconst notConfiguredError = new Error(\n 'Attempted to call a method of the static Analytics instance, but either AnalyticsProvider or ' +\n 'AnalyticsConfigurator is not present in the component hierarchy.'\n)\n/**\n * Convenience wrapper to expose the contents of the `useAnalytics` hook to be usable outside React function components.\n * @deprecated This wrapper is present for backward compatibility and its use in new components should be limited.\n * Prefer using the hook directly so that React can correctly handle re-rendering on state/prop updates.\n */\nexport const Analytics = {\n trackEvent: (category: string, event: string, params?: TrackEventParams) => {\n if (useAnalyticsRef === undefined) {\n throw notConfiguredError\n }\n return useAnalyticsRef.trackEvent(category, event, params)\n },\n trackPageView: (path: string) => {\n if (useAnalyticsRef === undefined) {\n throw notConfiguredError\n }\n return useAnalyticsRef.trackPageView(path)\n }\n}\n// endregion\n","export enum GLOBAL_APP_ACTION {\n UPDATE_CATALOGUES = 'update_catalogues',\n DELETE_CATALOGUES = 'delete_catalogues',\n UPDATE_TOP_THREE_PRODUCTS = 'update_top_three_products',\n CATALOGUES_LOADING = 'catalogues_loading',\n CLEAR_CATALOGUES = 'clear_catalogues',\n DEFAULT_DOWNVOTE_REASONS = 'defaultDownvoteReasons',\n BRAND_PLACEHOLDER_TEXT = 'brandPlaceholderText',\n BRAND_HELPER_TEXT = 'brandHelperText',\n BLOG_TONE_OPTIONS = 'blogToneOptions',\n BLOG_LENGTH_OPTIONS = 'blogLengthOptions',\n GLOBAL_FEATURE_FLAGS = 'globalFeatureFlags'\n}\n","import { ToneSource } from '../utils/Interfaces'\n\nimport {\n BLOG_MAX_PRODUCT_CHARS,\n LONG_FORM_MAX_PRODUCT_CHARS,\n SHORT_FORM_MAX_PRODUCT_CHARS\n} from '../components/advertising/AdTextConstants'\nimport { DocumentType } from '../components/documents/types'\n\nimport { BulkWorkflowContentType } from './BulkWorkflow'\nimport {\n ContentGenerationType,\n FeedbackContentGenerationType,\n GenerationStatusFilterKey\n} from './ContentGeneration'\nimport { Description, ProductErrorType } from './Products'\n\n/**\n * Enumeration for different ad text types used internally in generation.\n * Note: The order here is important and intentionally done.\n */\nexport enum AdTextType {\n ask_anything = 'ask_anything',\n rewriter = 'rewriter',\n summarise = 'summarise',\n instagram = 'instagram',\n google = 'google',\n facebook = 'facebook',\n linkedin = 'linkedin',\n headline = 'headline',\n landing_page = 'landing_page',\n meta_desc = 'meta_desc',\n category_page = 'category_page',\n marketing_angles = 'marketing_angles',\n eli5 = 'eli5',\n email = 'email',\n youtube_title = 'youtube_title',\n video_intro = 'video_intro',\n bio_writer = 'bio_writer',\n press_release = 'press_release',\n rewrite_for_seo = 'rewrite_for_seo'\n}\n\n// Blog is defined as an AdText on the backend as it is used in Bulk Generation\nexport enum BulkWorkflowOtherContentTypes {\n blog = 'blog'\n}\n\n// This includes \"blog\", and is only used for CRUD for AdTextType\nexport type AdTextCrudType = AdTextType | BulkWorkflowOtherContentTypes\n\n/**\n * Enumeration of fields in the advertising text form.\n * As we scale the number of content types, we need to categorize fields to easily include/exclude them.\n * Initialized in order of top to bottom (keep it that way please?)\n */\nexport enum AdTextFormField {\n product = 'product',\n image = 'image',\n moreDescriptions = 'moreDescriptions',\n keywords = 'keywords',\n tone = 'tone',\n outputLength = 'outputLength',\n advancedOptions = 'advancedOptions',\n targetAudience = 'targetAudience',\n brand = 'brand'\n}\n\nexport const adTextFormFieldNameMap: {\n [key: string]: string\n} = {\n [AdTextFormField.product]: 'product_type',\n [AdTextFormField.moreDescriptions]: 'more_description',\n [AdTextFormField.keywords]: 'keywords',\n [AdTextFormField.tone]: 'tone',\n [AdTextFormField.outputLength]: 'desired_output_length',\n [AdTextFormField.advancedOptions]: 'advanced_options',\n [AdTextFormField.targetAudience]: 'target_audience',\n [AdTextFormField.brand]: 'brand'\n}\n\nexport const adTextTabs = Object.entries(AdTextType).map(([value, key]) => {\n return {\n key: key,\n path: value\n }\n})\n\nexport type GenericTempateType = AdTextType | BulkWorkflowContentType\n\nexport const generationTypeMap: {\n [key in GenericTempateType]: ContentGenerationType\n} = {\n [AdTextType.instagram]: ContentGenerationType.advertising_text_instagram,\n [AdTextType.google]: ContentGenerationType.advertising_text_google,\n [AdTextType.facebook]: ContentGenerationType.advertising_text_facebook,\n [AdTextType.headline]: ContentGenerationType.advertising_text_headline,\n [AdTextType.linkedin]: ContentGenerationType.advertising_text_linkedin,\n [AdTextType.rewriter]: ContentGenerationType.advertising_text_rewriter,\n [AdTextType.category_page]:\n ContentGenerationType.advertising_text_category_page,\n [AdTextType.landing_page]:\n ContentGenerationType.advertising_text_landing_page,\n [AdTextType.eli5]: ContentGenerationType.advertising_text_eli5,\n [AdTextType.email]: ContentGenerationType.advertising_text_email,\n [AdTextType.video_intro]: ContentGenerationType.advertising_text_video_intro,\n [AdTextType.meta_desc]: ContentGenerationType.advertising_text_meta_desc,\n [AdTextType.marketing_angles]:\n ContentGenerationType.advertising_text_marketing_angles,\n [AdTextType.press_release]:\n ContentGenerationType.advertising_text_press_release,\n [AdTextType.summarise]: ContentGenerationType.advertising_text_summarise,\n [AdTextType.youtube_title]:\n ContentGenerationType.advertising_text_youtube_title,\n [AdTextType.bio_writer]: ContentGenerationType.advertising_text_bio_writer,\n [AdTextType.ask_anything]:\n ContentGenerationType.advertising_text_ask_anything,\n [BulkWorkflowOtherContentTypes.blog]:\n ContentGenerationType.advertising_text_blog,\n [AdTextType.rewrite_for_seo]:\n ContentGenerationType.advertising_text_rewrite_for_seo\n}\n\n/**\n * Map ad types to their corresponding feedback type\n * so it can be recorded in the data for bulk workflow downvotes\n */\nexport const feedbackContentTypeMap: {\n [key in AdTextCrudType]: FeedbackContentGenerationType\n} = {\n [AdTextType.instagram]:\n FeedbackContentGenerationType.advertising_text_instagram,\n [AdTextType.google]: FeedbackContentGenerationType.advertising_text_google,\n [AdTextType.facebook]:\n FeedbackContentGenerationType.advertising_text_facebook,\n [AdTextType.headline]:\n FeedbackContentGenerationType.advertising_text_headline,\n [AdTextType.linkedin]:\n FeedbackContentGenerationType.advertising_text_linkedin,\n [AdTextType.rewriter]:\n FeedbackContentGenerationType.advertising_text_rewriter,\n [AdTextType.category_page]:\n FeedbackContentGenerationType.advertising_text_category_page,\n [AdTextType.landing_page]:\n FeedbackContentGenerationType.advertising_text_landing_page,\n [AdTextType.eli5]: FeedbackContentGenerationType.advertising_text_eli5,\n [AdTextType.email]: FeedbackContentGenerationType.advertising_text_email,\n [AdTextType.video_intro]:\n FeedbackContentGenerationType.advertising_text_video_intro,\n [AdTextType.meta_desc]:\n FeedbackContentGenerationType.advertising_text_meta_desc,\n [AdTextType.marketing_angles]:\n FeedbackContentGenerationType.advertising_text_marketing_angles,\n [AdTextType.press_release]:\n FeedbackContentGenerationType.advertising_text_press_release,\n [AdTextType.summarise]:\n FeedbackContentGenerationType.advertising_text_summarise,\n [AdTextType.youtube_title]:\n FeedbackContentGenerationType.advertising_text_youtube_title,\n [AdTextType.bio_writer]:\n FeedbackContentGenerationType.advertising_text_bio_writer,\n [AdTextType.ask_anything]:\n FeedbackContentGenerationType.advertising_text_ask_anything,\n [BulkWorkflowOtherContentTypes.blog]:\n FeedbackContentGenerationType.advertising_text_blog,\n [AdTextType.rewrite_for_seo]:\n FeedbackContentGenerationType.advertising_text_rewrite_for_seo\n}\n\nexport const AD_TEXT_TYPES_WITH_EXTRA_LONG_FORM_PRODUCT_TYPE_FIELD = new Set(\n [AdTextType.summarise]\n)\nexport const AD_TEXT_TYPES_WITH_LONG_FORM_PRODUCT_TYPE_FIELD = new Set(\n [\n AdTextType.rewriter,\n AdTextType.eli5,\n AdTextType.landing_page,\n AdTextType.email,\n AdTextType.ask_anything,\n AdTextType.instagram,\n AdTextType.linkedin,\n AdTextType.meta_desc,\n AdTextType.bio_writer,\n AdTextType.rewrite_for_seo\n ]\n)\n\nexport const AD_TEXT_TYPES_WITH_EXTRA_LONG_FORM_MAX_PRODUCT_CHARS = new Set(\n [AdTextType.summarise]\n)\n\nexport const AD_TEXT_TYPES_WITH_LONG_FORM_MAX_PRODUCT_CHARS = new Set(\n [\n AdTextType.rewriter,\n AdTextType.eli5,\n AdTextType.landing_page,\n AdTextType.email,\n AdTextType.ask_anything\n ]\n)\n\n/**\n * Field mappings to map errors to the right field.\n * TODO: Use them\n */\nexport enum GenerateAdTextErrorType {\n empty_fields = 'empty_fields',\n target_audience_too_long = 'target_audience_too_long',\n brand_too_long = 'brand_too_long',\n keywords_too_long = 'keywords_too_long',\n product_type_too_long = 'product_type_too_long'\n}\n\nexport const errorToFieldMap: {\n [key in GenerateAdTextErrorType]: AdTextFormField | null\n} = {\n [GenerateAdTextErrorType.empty_fields]: null, // Empty Fields is specially mapped to null because this could be any field\n [GenerateAdTextErrorType.target_audience_too_long]:\n AdTextFormField.targetAudience,\n [GenerateAdTextErrorType.brand_too_long]: AdTextFormField.brand,\n [GenerateAdTextErrorType.keywords_too_long]: AdTextFormField.keywords,\n [GenerateAdTextErrorType.product_type_too_long]: AdTextFormField.product\n}\n\nexport enum AdvertisementTextActions {\n copy = 'copy',\n edit = 'edit',\n delete = 'delete'\n}\n\nexport interface AdText {\n username: string\n organizationName: string\n adTextId: string\n productId: string\n created_at: string\n ad_text_type: AdTextType\n loading: boolean\n descriptions: Description[] // TODO: Make readonly\n loadingAt?: Date\n expiredAt?: Date\n productErrorType?: ProductErrorType\n target_audience?: string\n brand?: string\n tone?: string\n tone_id?: string\n tone_source?: ToneSource\n product_type?: string\n more_description?: string\n keywords?: string[]\n desired_output_length?: AdTextLength\n isSaved?: boolean\n is_referencing_knowledge_base?: boolean\n}\n\nexport enum AdTextLength {\n SHORT = 'short',\n MEDIUM = 'medium',\n LONG = 'long'\n}\n\nexport interface AdTextLengthOption {\n /**\n * Length option (can be short, medium, long, etc)\n */\n length: AdTextLength\n /**\n * The estimated word count for the length option\n */\n estimated_word_count: number\n}\n\nexport interface AdTextUpdateForm {\n adTextId: string\n target_audience?: string\n tone?: string\n tone_id?: string\n tone_source?: ToneSource\n more_description?: string\n brand?: string\n product_type?: string\n keywords?: string[]\n desired_output_length?: AdTextLength\n descriptions?: Description[]\n productErrorType?: ProductErrorType\n isSaved?: boolean\n is_referencing_knowledge_base?: boolean\n}\n\n// TODO: refactor this to inherit from AdTextUpdateForm\nexport interface AdTextUpdateFormWithProductId {\n productId: string\n target_audience?: string\n tone?: string\n tone_id?: string\n tone_source?: ToneSource\n more_description?: string\n brand?: string\n product_type?: string\n keywords?: string[]\n desired_output_length?: AdTextLength\n descriptions?: Description[]\n productErrorType?: ProductErrorType\n isSaved?: boolean\n is_referencing_knowledge_base?: boolean\n}\n\nexport interface AdTextFolder {\n id: string\n username: string\n organizationName: string\n ad_text_type: BulkWorkflowContentType\n created_at: string\n updated_at: string\n folder_name: string\n item_count: number\n tone?: string\n tone_id?: string\n tone_source?: ToneSource\n}\n\nexport interface AdTextFolderUpdateForm {\n folder_name: string\n tone: string\n tone_id: string\n tone_source: ToneSource\n}\n\nexport interface AdTextFoldersCount {\n total_count: number\n ad_text_counts: { [key in BulkWorkflowContentType]: number }\n}\n\nexport enum BeaconArticleIdSlots {\n googleKeywords = 'googleKeywords',\n googleTargetAudience = 'googleTargetAudience',\n facebookKeywords = 'facebookKeywords',\n facebookTargetAudience = 'facebookTargetAudience',\n adsGeneration = 'adsGeneration'\n}\n\n/**\n * Each ad text type is mapped to a set of fields that do NOT appear in the template.\n * Used to know which field(s) to not render for each ad text type.\n */\nexport const formExceptionMap: {\n [key in AdTextCrudType]: Set\n} = {\n [AdTextType.landing_page]: new Set([\n AdTextFormField.image,\n AdTextFormField.outputLength\n ]),\n [AdTextType.bio_writer]: new Set([\n AdTextFormField.image,\n AdTextFormField.outputLength\n ]),\n [AdTextType.google]: new Set([\n AdTextFormField.image,\n AdTextFormField.moreDescriptions,\n AdTextFormField.outputLength\n ]),\n [AdTextType.instagram]: new Set([\n AdTextFormField.moreDescriptions,\n AdTextFormField.outputLength\n ]),\n [AdTextType.facebook]: new Set([\n AdTextFormField.image,\n AdTextFormField.moreDescriptions,\n AdTextFormField.outputLength\n ]),\n [AdTextType.linkedin]: new Set([\n AdTextFormField.image,\n AdTextFormField.moreDescriptions\n ]),\n [AdTextType.headline]: new Set([\n AdTextFormField.image,\n AdTextFormField.moreDescriptions,\n AdTextFormField.outputLength\n ]),\n [AdTextType.category_page]: new Set([\n AdTextFormField.image,\n AdTextFormField.moreDescriptions,\n AdTextFormField.outputLength\n ]),\n [AdTextType.video_intro]: new Set([\n AdTextFormField.image,\n AdTextFormField.moreDescriptions,\n AdTextFormField.outputLength\n ]),\n [AdTextType.meta_desc]: new Set([\n AdTextFormField.image,\n AdTextFormField.tone,\n AdTextFormField.advancedOptions,\n AdTextFormField.brand,\n AdTextFormField.targetAudience,\n AdTextFormField.moreDescriptions,\n AdTextFormField.outputLength\n ]),\n [AdTextType.marketing_angles]: new Set([\n AdTextFormField.image,\n AdTextFormField.keywords,\n AdTextFormField.advancedOptions,\n AdTextFormField.brand,\n AdTextFormField.targetAudience,\n AdTextFormField.outputLength\n ]),\n [AdTextType.press_release]: new Set([\n AdTextFormField.image,\n AdTextFormField.keywords,\n AdTextFormField.advancedOptions,\n AdTextFormField.targetAudience,\n AdTextFormField.tone,\n AdTextFormField.outputLength\n ]),\n [AdTextType.summarise]: new Set([\n AdTextFormField.image,\n AdTextFormField.keywords,\n AdTextFormField.advancedOptions,\n AdTextFormField.brand,\n AdTextFormField.targetAudience,\n AdTextFormField.moreDescriptions,\n AdTextFormField.outputLength\n ]),\n [AdTextType.rewriter]: new Set([\n AdTextFormField.image,\n AdTextFormField.keywords,\n AdTextFormField.advancedOptions,\n AdTextFormField.brand,\n AdTextFormField.targetAudience,\n AdTextFormField.outputLength\n ]),\n [AdTextType.eli5]: new Set([\n AdTextFormField.image,\n AdTextFormField.keywords,\n AdTextFormField.advancedOptions,\n AdTextFormField.brand,\n AdTextFormField.targetAudience,\n AdTextFormField.tone,\n AdTextFormField.moreDescriptions,\n AdTextFormField.outputLength\n ]),\n [AdTextType.email]: new Set([\n AdTextFormField.image,\n AdTextFormField.moreDescriptions,\n AdTextFormField.outputLength\n ]),\n [AdTextType.youtube_title]: new Set([\n AdTextFormField.image,\n AdTextFormField.moreDescriptions,\n AdTextFormField.brand,\n AdTextFormField.outputLength\n ]),\n [AdTextType.ask_anything]: new Set([\n AdTextFormField.image,\n AdTextFormField.advancedOptions,\n AdTextFormField.moreDescriptions,\n AdTextFormField.targetAudience,\n AdTextFormField.brand,\n AdTextFormField.outputLength\n ]),\n [BulkWorkflowOtherContentTypes.blog]: new Set([\n AdTextFormField.image,\n AdTextFormField.moreDescriptions,\n AdTextFormField.advancedOptions,\n AdTextFormField.targetAudience,\n AdTextFormField.brand\n ]),\n [AdTextType.rewrite_for_seo]: new Set([\n AdTextFormField.image,\n AdTextFormField.tone\n ])\n}\n\n/**\n * Each ad text type is mapped to a set of fields that are required.\n * Used to decide whether to disable the generate button or not.\n * Also used to render the asterisk on field label to indicate a required field.\n * Note that a field may not be required but not excepted either.\n */\nexport const requiredFieldMap: {\n [key in AdTextCrudType]: Set\n} = {\n [AdTextType.google]: new Set([AdTextFormField.keywords]),\n [AdTextType.instagram]: new Set([AdTextFormField.keywords]),\n [AdTextType.facebook]: new Set([AdTextFormField.keywords]),\n [AdTextType.linkedin]: new Set([AdTextFormField.keywords]),\n [AdTextType.landing_page]: new Set([\n AdTextFormField.product,\n AdTextFormField.keywords\n ]),\n [AdTextType.headline]: new Set([AdTextFormField.keywords]),\n [AdTextType.category_page]: new Set([\n AdTextFormField.keywords\n ]),\n [AdTextType.video_intro]: new Set([\n AdTextFormField.product,\n AdTextFormField.keywords\n ]),\n [AdTextType.meta_desc]: new Set([\n AdTextFormField.product,\n AdTextFormField.keywords\n ]),\n [AdTextType.marketing_angles]: new Set([\n AdTextFormField.product\n ]),\n [AdTextType.press_release]: new Set([\n AdTextFormField.product,\n AdTextFormField.moreDescriptions,\n AdTextFormField.brand\n ]),\n [AdTextType.summarise]: new Set([AdTextFormField.product]),\n [AdTextType.rewriter]: new Set([AdTextFormField.product]),\n [AdTextType.eli5]: new Set([AdTextFormField.product]),\n [AdTextType.email]: new Set([\n AdTextFormField.product,\n AdTextFormField.keywords\n ]),\n [AdTextType.youtube_title]: new Set([\n AdTextFormField.product,\n AdTextFormField.keywords\n ]),\n [AdTextType.bio_writer]: new Set([AdTextFormField.product]),\n [AdTextType.ask_anything]: new Set([\n AdTextFormField.product\n ]),\n [BulkWorkflowOtherContentTypes.blog]: new Set([\n AdTextFormField.product,\n AdTextFormField.keywords\n ]),\n [AdTextType.rewrite_for_seo]: new Set([\n AdTextFormField.product,\n AdTextFormField.keywords\n ])\n}\n\n/**\n * Custom mapping for ad text types that have different required fields\n * under different names.\n */\nexport const customAdTextCsvFieldsMap = {}\n\nexport type AdTextExceptionFieldTypes = keyof typeof formExceptionMap\nexport type AdTextRequiredFieldTypes = keyof typeof requiredFieldMap\nexport const getExcludedFieldsForAdTextType = (\n adTextType: AdTextCrudType\n): Set | undefined =>\n adTextType in formExceptionMap\n ? formExceptionMap[adTextType as AdTextExceptionFieldTypes]\n : undefined\n\nexport const getRequiredFieldsForAdTextType = (\n adTextType: AdTextCrudType\n): Set | undefined =>\n adTextType in requiredFieldMap\n ? requiredFieldMap[adTextType as AdTextRequiredFieldTypes]\n : undefined\n\nexport const adHeaders: {\n [key in AdTextCrudType]: string\n} = {\n [AdTextType.google]: 'Google Ads',\n [AdTextType.instagram]: 'Instagram Captions',\n [AdTextType.facebook]: 'Facebook Ads',\n [AdTextType.headline]: 'Website Headlines and Taglines',\n [AdTextType.linkedin]: 'LinkedIn Posts',\n [AdTextType.rewriter]: 'Rewrite Content',\n [AdTextType.category_page]: 'Category Page Descriptions',\n [AdTextType.landing_page]: 'Landing Page Content',\n [AdTextType.eli5]: 'Simplify Language',\n [AdTextType.email]: 'Email Copy',\n [AdTextType.video_intro]: 'Video Hook and Introduction',\n [AdTextType.meta_desc]: 'Meta Titles and Descriptions (Bulk)',\n [AdTextType.marketing_angles]: 'Marketing Angles',\n [AdTextType.press_release]: 'Press Releases',\n [AdTextType.summarise]: 'Summarize Content', // Note the change in spelling (UK to US)\n [AdTextType.youtube_title]: 'YouTube Titles and Descriptions',\n [AdTextType.bio_writer]: 'Bio Writer',\n [AdTextType.ask_anything]: 'Ask AI Anything',\n [BulkWorkflowOtherContentTypes.blog]: 'Blog Article',\n [AdTextType.rewrite_for_seo]: 'SEO Content Optimizer'\n}\n\nexport const BLOG_CONTENT_TYPE = 'blog_article'\n\nexport const adCrossWorkflowDescription: { [key: string]: string } = {\n [AdTextType.google]: 'Google Ad',\n [AdTextType.instagram]: 'Instagram Post',\n [AdTextType.facebook]: 'Facebook Ad',\n [AdTextType.headline]: 'Website Tagline',\n [AdTextType.linkedin]: 'LinkedIn Post',\n [AdTextType.category_page]: 'Category Page Description',\n [AdTextType.landing_page]: 'Landing Page Content',\n [AdTextType.email]: 'Email Copy',\n [AdTextType.video_intro]: 'Video Hook',\n [AdTextType.meta_desc]: 'Meta Description',\n [AdTextType.marketing_angles]: 'Marketing Angle',\n [AdTextType.press_release]: 'Press Release',\n [AdTextType.summarise]: 'Summary',\n [AdTextType.youtube_title]: 'YouTube Title',\n [AdTextType.bio_writer]: 'Bio',\n [BLOG_CONTENT_TYPE]: 'Blog Article',\n [AdTextType.rewrite_for_seo]: 'SEO Optimized Content'\n}\n\nexport const adSubHeaders = {\n [AdTextType.google]:\n 'Create effective and persuasive ads that generate leads and sales.',\n [AdTextType.instagram]: 'Generate engaging captions from images or texts.',\n [AdTextType.facebook]:\n 'Craft powerful and compelling ads that speak to your target market.',\n [AdTextType.headline]:\n 'Develop headlines and taglines that pack a punch and convert visitors into customers.',\n [AdTextType.linkedin]:\n 'Engage your target audience with thought-provoking and persuasive content.',\n [AdTextType.rewriter]:\n 'Paraphrase and repurpose content while making it more engaging and effective.',\n [AdTextType.category_page]:\n 'Optimize your category pages with descriptions that increase organic traffic.',\n [AdTextType.landing_page]:\n 'Create benefit-focused landing pages that entice visitors to take the next step.',\n [AdTextType.eli5]:\n 'Make complex concepts easy to understand and jargon-free.',\n [AdTextType.email]:\n 'Write copy to get your message across, no matter how crowded the inbox.',\n [AdTextType.video_intro]:\n 'Write a catchy and intriguing hook to reel viewers in and keep them watching.',\n [AdTextType.meta_desc]:\n 'Write meta titles and descriptions that are optimized for search engines.',\n [AdTextType.marketing_angles]:\n 'Generate marketing angles that are persuasive and compelling.',\n [AdTextType.press_release]:\n 'Write press releases that are newsworthy and engaging.',\n [AdTextType.summarise]:\n 'Upload PDF, url or text to summarize and extract key points and insights.',\n [AdTextType.youtube_title]:\n 'Optimize your videos for greater visibility and higher engagement.',\n [AdTextType.bio_writer]:\n 'Elevate any page with a well-written bio that will make people want to know more.',\n [AdTextType.ask_anything]:\n 'Instruct our AI, from answering questions to writing custom content for any project.',\n [AdTextType.rewrite_for_seo]:\n 'Convert any text into SEO-friendly content with internal links, keywords, and effective CTAs.'\n}\n\nexport const customProductFieldNames = new Set([\n 'topic',\n 'what is your post about',\n 'input',\n 'category'\n])\n\nexport interface AdTextFolderSearchQuery {\n folderId?: string | null\n search?: string\n generationStatus?: GenerationStatusFilterKey\n keywords?: string[]\n scan?: boolean\n start?: number\n end?: number\n}\n\nexport interface AdTextSearchResultInResponse {\n adTexts: AdText[]\n totalAdTexts: number\n}\n\nexport interface AdTextFolderOverviewSearchQuery {\n ad_text_type: BulkWorkflowContentType\n search?: string\n scan?: boolean\n sort_by?: string[]\n start?: number\n end?: number\n}\n\nexport interface AdTextFolderOverviewInResponse {\n adTextFolders: AdTextFolder[]\n totalFolders: number\n}\n\nexport enum RewriterIntentionType {\n Improve = 'Improve',\n Simplify = 'Simplify',\n Shorten = 'Shorten',\n Expand = 'Expand',\n Rephrase = 'Rephrase',\n Paraphrase = 'Paraphrase'\n}\n\n/**\n * Types of content that be uploaded / provided as user input\n */\nexport enum UserInputType {\n UploadFile = 'Upload file',\n AddURL = 'Add URL',\n PasteText = 'Paste text'\n}\n\n/**\n * Warning message to display to user when PDF or transcript is too long for the summarize ad text type\n */\nexport interface AdTextWarningMessageType {\n inputType: UserInputType\n message: string\n}\n\n/**\n * Check if the ad text type is a long form type. This is used only on bulk workflows.\n * In the future, single ad text should also use this function to determine if the ad text is long form.\n */\nexport const isLongForm = (adTextType: AdTextCrudType): boolean => {\n return (\n adTextType === AdTextType.rewriter ||\n adTextType === AdTextType.eli5 ||\n adTextType === AdTextType.landing_page ||\n adTextType === AdTextType.summarise ||\n adTextType === AdTextType.marketing_angles ||\n adTextType === AdTextType.email ||\n adTextType === AdTextType.meta_desc ||\n adTextType === AdTextType.youtube_title ||\n adTextType === AdTextType.video_intro ||\n adTextType === AdTextType.ask_anything ||\n adTextType === BulkWorkflowOtherContentTypes.blog\n )\n}\n\n/**\n * Get the maximum chars for the ad text type. This is used only on bulk workflows at the moment.\n */\nexport const getMaxChars = (adTextType: AdTextCrudType) => {\n return adTextType === BulkWorkflowOtherContentTypes.blog\n ? BLOG_MAX_PRODUCT_CHARS\n : isLongForm(adTextType)\n ? LONG_FORM_MAX_PRODUCT_CHARS\n : SHORT_FORM_MAX_PRODUCT_CHARS\n}\n\nexport const adTextToDocumentTypeMap = {\n [AdTextType.ask_anything]: DocumentType.ask_anything,\n [AdTextType.bio_writer]: DocumentType.bio_writer,\n [AdTextType.category_page]: DocumentType.category_page,\n [AdTextType.email]: DocumentType.email,\n [AdTextType.eli5]: DocumentType.eli5,\n [AdTextType.facebook]: DocumentType.facebook,\n [AdTextType.google]: DocumentType.google,\n [AdTextType.headline]: DocumentType.headline,\n [AdTextType.instagram]: DocumentType.instagram,\n [AdTextType.landing_page]: DocumentType.landing_page,\n [AdTextType.linkedin]: DocumentType.linkedin,\n [AdTextType.marketing_angles]: DocumentType.marketing_angles,\n [AdTextType.meta_desc]: DocumentType.meta_desc,\n [AdTextType.press_release]: DocumentType.press_release,\n [AdTextType.rewriter]: DocumentType.rewriter,\n [AdTextType.summarise]: DocumentType.summarise,\n [AdTextType.video_intro]: DocumentType.video_intro,\n [AdTextType.youtube_title]: DocumentType.youtube_title,\n [AdTextType.rewrite_for_seo]: DocumentType.rewrite_for_seo\n}\n","/**\n * Cost info for generating content for a single product\n */\nexport interface ContentGenerationCreditCostInfo {\n product_id: string\n cost: number\n is_free_regenerate: boolean\n}\n\n/**\n * Cost info for generating content for a batch of products\n */\nexport interface BatchContentGenerationCreditCostInfo {\n total_cost: number\n product_id_cost_info_map: { string: ContentGenerationCreditCostInfo }\n}\n\n/**\n * 'Legacy' interface (still technically in use on the backend) for cost info\n * for generating content for products.\n *\n * @deprecated Use {@link BatchContentGenerationCreditCostInfo} or\n * {@link ContentGenerationCreditCostInfo} instead\n */\nexport interface ProductDescribeCostInResponse {\n describe_cost: number\n is_free_regenerate?: boolean\n product_ids: string[]\n error_message?: string\n}\n\n/**\n * Granular content generation subtypes\n */\nexport enum ContentGenerationType {\n // Product descriptions\n product_descriptions = 'product_descriptions',\n\n // Blog\n blog_title = 'blog_title',\n blog_outline = 'blog_outline',\n blog_introduction = 'blog_introduction',\n blog_paragraph = 'blog_paragraph',\n blog_conclusion = 'blog_conclusion',\n blog_write_more = 'blog_write_more',\n blog_outline_seo_automatic = 'blog_outline_seo_automatic',\n blog_outline_seo_improvement = 'blog_outline_seo_improvement',\n blog_outline_parse_existing = 'blog_outline_parse_existing',\n\n blog_article = 'blog_article',\n\n // Marketing Copy (formerly known as Ads)\n advertising_text_instagram = 'advertising_text_instagram',\n advertising_text_google = 'advertising_text_google',\n advertising_text_facebook = 'advertising_text_facebook',\n advertising_text_headline = 'advertising_text_headline',\n advertising_text_linkedin = 'advertising_text_linkedin',\n advertising_text_rewriter = 'advertising_text_rewriter',\n advertising_text_category_page = 'advertising_text_category_page',\n advertising_text_landing_page = 'advertising_text_landing_page',\n advertising_text_eli5 = 'advertising_text_eli5',\n advertising_text_email = 'advertising_text_email',\n advertising_text_video_intro = 'advertising_text_video_intro',\n advertising_text_meta_desc = 'advertising_text_meta_desc',\n advertising_text_marketing_angles = 'advertising_text_marketing_angles',\n advertising_text_press_release = 'advertising_text_press_release',\n advertising_text_summarise = 'advertising_text_summarise',\n advertising_text_youtube_title = 'advertising_text_youtube_title',\n advertising_text_bio_writer = 'advertising_text_bio_writer',\n advertising_text_ask_anything = 'advertising_text_ask_anything',\n advertising_text_blog = 'advertising_text_blog', // used for blog bulk gen\n advertising_text_rewrite_for_seo = 'advertising_text_rewrite_for_seo',\n\n // Image generation\n text_to_image_generation = 'text_to_image_generation',\n\n // Chat\n chat_message = 'chat_message',\n chat_message_file_upload = 'chat_message_file_upload'\n}\n\nexport const ContentGenerationTypeAds = [\n ContentGenerationType.advertising_text_google,\n ContentGenerationType.advertising_text_facebook\n]\n\nexport const ContentGenerationTypeSocialPosts = [\n ContentGenerationType.advertising_text_instagram,\n ContentGenerationType.advertising_text_linkedin,\n ContentGenerationType.advertising_text_youtube_title,\n ContentGenerationType.advertising_text_video_intro\n]\n\nexport const ContentGenerationTypeWebsiteContent = [\n ContentGenerationType.advertising_text_headline,\n ContentGenerationType.advertising_text_landing_page,\n ContentGenerationType.advertising_text_meta_desc,\n ContentGenerationType.advertising_text_category_page,\n ContentGenerationType.advertising_text_bio_writer\n]\n\nexport const ContentGenerationTypeSummarise = [\n ContentGenerationType.advertising_text_summarise\n]\n\nexport enum FeedbackContentGenerationType {\n // Highlight commands\n highlight_command_keep_writing = 'highlight_command_keep_writing',\n highlight_command_create_list = 'highlight_command_create_list',\n highlight_command_add_example = 'highlight_command_add_example',\n highlight_command_develop_subheadings = 'highlight_command_develop_subheadings',\n highlight_command_weigh_pros_and_cons = 'highlight_command_weigh_pros_and_cons',\n highlight_command_transition_between_ideas = 'highlight_command_transition_between_ideas',\n highlight_command_add_call_to_action = 'highlight_command_add_call_to_action',\n highlight_command_improve = 'highlight_command_improve',\n highlight_command_simplify = 'highlight_command_simplify',\n highlight_command_shorten = 'highlight_command_shorten',\n highlight_command_expand = 'highlight_command_expand',\n highlight_command_rephrase = 'highlight_command_rephrase',\n // custom prompt\n highlight_command_prompt = 'highlight_command_prompt',\n\n // Research\n highlight_command_get_statistics = 'highlight_command_get_statistics',\n highlight_command_find_quotes = 'highlight_command_find_quotes',\n highlight_command_add_examples = 'highlight_command_add_examples',\n highlight_command_research_custom_prompt = 'highlight_command_research_custom_prompt',\n\n // Blog SEO rule fix\n blog_seo_fix_keyword_in_first_100_words = 'blog_seo_fix_keyword_in_first_100_words',\n blog_seo_fix_keyword_in_heading_2 = 'blog_seo_fix_keyword_in_heading_2',\n blog_seo_fix_first_paragraph_sentence_length = 'blog_seo_fix_first_paragraph_sentence_length',\n blog_seo_fix_long_paragraph_length = 'blog_seo_fix_long_paragraph_length',\n blog_seo_fix_keyword_density = 'blog_seo_fix_keyword_density',\n blog_seo_fix_target_h2_count = 'blog_seo_fix_target_h2_count',\n\n // Blog\n blog_write_more = 'blog_write_more',\n blog_title = 'blog_title',\n blog_outline = 'blog_outline',\n blog_outline_default = 'blog_outline_default',\n blog_outline_all_serp = 'blog_outline_all_serp',\n blog_outline_improve = 'blog_outline_improve',\n blog_outline_manual = 'blog_outline_manual',\n blog_article = 'blog_article',\n\n // Image generation\n text_to_image_generation = 'text_to_image_generation',\n text_to_image_generation_batch = 'text_to_image_generation_batch',\n\n // Ads\n advertising_text_instagram = 'advertising_text_instagram',\n advertising_text_google = 'advertising_text_google',\n advertising_text_facebook = 'advertising_text_facebook',\n advertising_text_headline = 'advertising_text_headline',\n advertising_text_linkedin = 'advertising_text_linkedin',\n advertising_text_rewriter = 'advertising_text_rewriter',\n advertising_text_category_page = 'advertising_text_category_page',\n advertising_text_landing_page = 'advertising_text_landing_page',\n advertising_text_eli5 = 'advertising_text_eli5',\n advertising_text_email = 'advertising_text_email',\n advertising_text_video_intro = 'advertising_text_video_intro',\n advertising_text_meta_desc = 'advertising_text_meta_desc',\n advertising_text_marketing_angles = 'advertising_text_marketing_angles',\n advertising_text_press_release = 'advertising_text_press_release',\n advertising_text_summarise = 'advertising_text_summarise',\n advertising_text_youtube_title = 'advertising_text_youtube_title',\n advertising_text_bio_writer = 'advertising_text_bio_writer',\n advertising_text_ask_anything = 'advertising_text_ask_anything',\n advertising_text_blog = 'advertising_text_blog',\n advertising_text_rewrite_for_seo = 'advertising_text_rewrite_for_seo',\n\n // HypoChat\n chat_message = 'chat_message',\n\n // Net promoter score\n platform = 'platform'\n}\n\n/**\n * Top-level content generation types\n */\nexport enum ContentGenerationCategory {\n product_descriptions = 'product_descriptions',\n blog = 'blog',\n advertising = 'advertising'\n}\n\n/**\n * Generation status filter key\n */\nexport enum GenerationStatusFilterKey {\n all = 'all',\n generated = 'generated',\n not_generated = 'not_generated',\n generation_error = 'generation_error',\n marked_as_done = 'marked_as_done'\n}\n\nexport enum GenerationInputType {\n file = 'file',\n url = 'url',\n text = 'text'\n}\n","import { useCallback, useState } from 'react'\n\nimport * as Sentry from '@sentry/react'\n\n/*\n * Reference: https://usehooks.com/useLocalStorage/\n */\nexport function useLocalStorage(key: string, initialValue: T) {\n // State to store our value\n // Pass initial state function to useState so logic is only executed once\n const [storedValue, setStoredValue] = useState(() => {\n try {\n // Get from local storage by key\n const item = window.localStorage.getItem(key)\n // Parse stored json or if none return initialValue\n return item ? JSON.parse(item) : initialValue\n } catch (error) {\n // If error also return initialValue\n Sentry.captureException(error, { level: 'warning' })\n console.log(error)\n return initialValue\n }\n })\n // Return a wrapped version of useState's setter function that ...\n // ... persists the new value to localStorage.\n const setValue = useCallback(\n (value: T | ((val: T) => T)) => {\n try {\n // Allow value to be a function so we have same API as useState\n const valueToStore =\n value instanceof Function ? value(storedValue) : value\n // Save state\n setStoredValue(valueToStore)\n if (valueToStore === undefined) {\n window.localStorage.removeItem(key)\n } else {\n // Save to local storage\n window.localStorage.setItem(key, JSON.stringify(valueToStore))\n }\n } catch (error) {\n Sentry.captureException(error, { level: 'warning' })\n // A more advanced implementation would handle the error case\n console.log(error)\n }\n },\n [key, storedValue]\n )\n return [storedValue, setValue] as const\n}\n","import { apiClient } from '@hypotenuse/common/src/utils/ApiClient'\nimport snackbar from '@hypotenuse/common/src/utils/Snackbar'\n\nimport {\n User,\n UserOnboardingInfoForm,\n UserUpdateForm\n} from '../components/utils/Interfaces'\nimport { PREMIUM_LEGACY_LOGOUT_PATH } from '../utils/Constants'\n\nexport const apiLogout = async (): Promise => {\n const response = await apiClient.get(PREMIUM_LEGACY_LOGOUT_PATH)\n return response.data\n}\n\nexport const apiFetchUser = async (): Promise => {\n const response = await apiClient.get(`/user/me`)\n return response.data\n}\n\nexport const apiResendVerificationEmail = async (): Promise => {\n const response = await apiClient.post('/send-verification-email')\n return response.data\n}\n\nexport const apiTryVerifyEmail = async () => {\n const response = await apiClient.post<{ verified: boolean }>('/verify-email')\n return response.data\n}\n\nexport const apiRequestPhoneVerificationCode = async (phoneNumber: string) => {\n const response = await apiClient.post(\n '/auth/mfa/phone/challenge',\n null,\n {\n params: {\n phone_number: phoneNumber\n }\n }\n )\n return response.data\n}\n\nexport const apiCheckPhoneVerificationCode = async (\n phoneNumber: string,\n code: string\n) => {\n const response = await apiClient.post(\n '/auth/mfa/phone/verify-and-associate',\n null,\n {\n params: {\n phone_number: phoneNumber,\n code\n }\n }\n )\n return response.data\n}\n\nexport const apiGetIsPhoneVerified = async () => {\n const response = await apiClient.get('/auth/mfa/phone/is-verified')\n return response.data\n}\n\nexport const getUserOnboardInfo = async (): Promise => {\n const response = await apiClient.get(\n '/user/onboarding_info'\n )\n return response.data\n}\n\nexport const upsertUserOnboardInfoForm = async (\n userOnboardInfoForm: UserOnboardingInfoForm,\n isOnboardingFormSubmission: boolean\n): Promise => {\n const response = await apiClient.post(\n '/user/onboarding_info',\n {\n user_onboard_form: userOnboardInfoForm,\n is_onboarding_form_submission: isOnboardingFormSubmission\n }\n )\n return response.data\n}\n\nexport const apiUpdateUser = async (userUpdateForm: UserUpdateForm) => {\n const response = await apiClient.put(`/user/me`, userUpdateForm)\n return response.data\n}\n\nexport const apiUpdateUserHasVisitedMetaDesc = async () => {\n const response = await apiClient.post(`/user/me/has-visited-meta-desc`)\n return response.data\n}\n\nexport const apiGetUserCountryCode = async () => {\n const response = await apiClient.get('/user/country_code')\n return response.data\n}\n\nexport const apiDeleteAccount = async (): Promise => {\n try {\n await apiClient.delete(`/user/me`)\n snackbar.show('Account deleted', { variant: 'success' })\n return true\n } catch (e) {\n snackbar.show('Failed to delete account', { variant: 'error' })\n return false\n }\n}\n\nexport const apiGetIsAntiSpamConfigupdated = async (): Promise => {\n const response = await apiClient.get(\n '/user/anti_spam_config_updated_status'\n )\n return response.data\n}\n\nexport const apiCheckIfUserAdminPanelled = async (): Promise => {\n const response = await apiClient.get('/user/is-admin-panelled')\n return response.data\n}\n","import React, { CSSProperties, HTMLAttributes, SVGProps, useMemo } from 'react'\n\nimport { makeStyles } from '@material-ui/core'\n\nconst useStyles = makeStyles(() => ({\n root: ({\n stroke,\n strokeWidth,\n height,\n width\n }: {\n stroke: CSSProperties['stroke']\n strokeWidth: CSSProperties['strokeWidth']\n height: CSSProperties['height']\n width: CSSProperties['width']\n }) => ({\n display: 'inline-block',\n maxHeight: height,\n maxWidth: width,\n minHeight: height,\n minWidth: width,\n '& svg': {\n stroke: stroke,\n strokeWidth: strokeWidth,\n height: height,\n width: width,\n '& *': {\n stroke: 'inherit',\n strokeWidth: 'inherit'\n }\n }\n })\n}))\n\nexport enum IconSize {\n small = 'small',\n medium = 'medium',\n large = 'large',\n inherit = 'inherit'\n}\ntype Size = keyof typeof IconSize\n\n/**\n * Contains the styling specific to each specific icon size\n */\nexport const SIZING_MAP: Record<\n Size,\n {\n strokeWidth: CSSProperties['strokeWidth']\n height: CSSProperties['height']\n width: CSSProperties['width']\n }\n> = {\n small: {\n strokeWidth: 1.33,\n height: '16px',\n width: '16px'\n },\n medium: {\n strokeWidth: 1.67,\n height: '20px',\n width: '20px'\n },\n large: {\n strokeWidth: 2,\n height: '24px',\n width: '24px'\n },\n inherit: {\n strokeWidth: 'inherit',\n height: '100%',\n width: '100%'\n }\n}\n\nexport interface Props extends HTMLAttributes {\n /**\n * The icon to be rendered. Should be a React component.\n */\n icon: React.ComponentType\n /**\n * The size of the icon.\n */\n size?: Size\n /**\n * The stroke color of the icon.\n */\n stroke?: CSSProperties['stroke']\n /**\n * The stroke width of the icon.\n */\n strokeWidth?: CSSProperties['strokeWidth']\n /**\n * The height of the icon.\n */\n height?: CSSProperties['height']\n /**\n * The width of the icon.\n */\n width?: CSSProperties['width']\n /**\n * Additional props to be passed directly to the SVG element of the icon.\n */\n iconProps?: SVGProps\n}\n\n/**\n * This is an Icon component that takes in SVG files from assets/common/ imported as ReactComponent.\n *\n * Basic usage example:\n *\n * ```tsx\n * import { ReactComponent as ActivityIcon } from '@hypotenuse/common/src/assets/icons/activity.svg';\n *\n * \n * // small size icon\n * // custom stroke colour and width\n * // custom height and width\n * // passing in additional SVG props\n * ```\n */\nconst Icon: React.FC = React.forwardRef(\n (props: Props, ref) => {\n const {\n icon: IconComponent,\n size = IconSize.inherit,\n stroke = 'currentColor',\n strokeWidth: strokeWidthProp,\n height: heightProp,\n width: widthProp,\n iconProps,\n ...rest\n } = props\n\n const { strokeWidth, height, width } = useMemo(() => {\n const {\n strokeWidth: defaultStrokeWidth,\n height: defaultHeight,\n width: defaultWidth\n } = SIZING_MAP[size]\n return {\n strokeWidth: strokeWidthProp ?? defaultStrokeWidth,\n height: heightProp ?? defaultHeight,\n width: widthProp ?? defaultWidth\n }\n }, [heightProp, size, strokeWidthProp, widthProp])\n\n const classes = useStyles({ stroke, strokeWidth, height, width })\n\n return (\n
\n \n
\n )\n }\n)\n\nexport default Icon\n","export enum TourType {\n helphero = 'helphero'\n}\nexport interface Tour {\n id: string\n name: string\n type: TourType\n}\nexport interface TourProgress {\n step?: string\n is_complete: boolean\n version: string\n is_exit: boolean\n timestamp?: Date\n}\n","import palette from '@hypotenuse/common/src/atoms/Colors'\n\nimport {\n GenerationFilterType,\n GenerationStatusFilterKey,\n GenerationStatusFilterLabel\n} from '@hypotenuse/common/src/interfaces/Products'\nimport { Tour, TourType } from '@hypotenuse/common/src/interfaces/Tutorial'\nimport { SERVER } from '@hypotenuse/common/src/utils/Constants'\n\nimport { ProductTabLabel, TabKey } from '../components/utils/Interfaces'\n\n// ===== THEME, STYLES, & COLORS =====\nexport const COLOR_GRADIENTS_HEX_CODE = [\n '#6B00C0',\n '#5B30C0',\n '#4C5FC1',\n '#3C8FC1',\n '#2CBEC1'\n]\n\nexport const CONTENT_CARDS_BOX_SHADOWS =\n 'rgb(145 158 171 / 20%) 0px 0px 2px 0px, rgb(145 158 171 / 12%) 0px 12px 24px -4px'\nexport const HOVERED_CONTENT_CARD_BOX_SHADOW =\n '0 13px 16px -5px rgba(145 158 171 / 16%)'\nexport const SOFT_BOX_SHADOW =\n 'rgb(145 158 171 / 30%) 0px 1px 1px, rgb(145 158 171 / 10%) 0px 1px 2px'\nexport const BUTTON_BOX_SHADOW =\n 'rgb(145 158 171 / 20%) 0px 0px 2px 0px, rgb(145 158 171 / 20%) 0px 1px 3px -1px'\n\n// ===== PREVIOUS INPUT MAPPINGS =====\nexport const PREVIOUS_INPUT_MAPPINGS = 'previousInputMappings'\n\n// ===== HELPHERO =====\nexport const HELPHERO_TUTORIAL_TOUR: Tour = {\n // This is for Tutorial Tour\n id: 'oAgQa32z8li',\n name: 'tutorial_tour',\n type: TourType.helphero\n}\n// This tour id is set to trigger when user has created five products\n// We want to trigger this only when user import products one by one\nexport const HELPHERO_GENERATE_FIVE_PRODUCTS_TOUR_ID = 'zp0yLcwtfH'\nexport const GENERATE_WITHOUT_TAGS_DIALOG_ID =\n 'generate-description-without-tags'\nexport const MARK_AS_DONE_WITHOUT_SELECTING_DESCRIPTIONS_DIALOG_ID =\n 'mark-as-done-without-selecting-descriptions'\nexport const DELETE_PRODUCT_DIALOG_ID = 'delete-product'\n\nexport const HELPHERO_APP_ID = 'zYiL6odmzMZ'\nexport const TUTORIAL_VERSION = '1'\n\n// ===== MISC CONSTANTS =====\nexport const PRODUCT_TITLE_MAX_CHARS = 500\nexport const PRODUCT_BRAND_MAX_CHARS = 1500\nexport const PRODUCT_TAGS_MAX_CHARS = 15_000\nexport const DOWNVOTE_DEBOUNCE_TIME = 500\n\nexport const DEFAULT_PLAN_NAME = 'Standard Plan'\nexport const STAGE = process.env.REACT_APP_STAGE\nexport const IS_PRODUCTION = STAGE === 'prod'\nexport const IS_STAGING = STAGE === 'staging'\nexport const IS_DEPLOYED = IS_PRODUCTION || IS_STAGING\nexport const PREMIUM_LEGACY_LOGOUT_PATH = `${SERVER}/legacy-logout`\n/**\n * Login URL for the legacy cookie-based auth scheme.\n * The page must be reloaded for this URL to work.\n */\nexport const PREMIUM_LEGACY_LOGIN_URL = `${SERVER}/legacy-login`\n/**\n * URL to redirect to after login.\n * This should handle further redirects as well as post-login actions.\n */\nexport const PREMIUM_LEGACY_POST_LOGIN_URL = `${SERVER}/auth`\nexport const BACKEND_API_DATA_DOCS_URL = `${SERVER}/api/docs/data`\n\nexport const AMPLITUDE_API_KEY =\n process.env.REACT_APP_AMPLITUDE_API_KEY || 'd6edac4c178c25eeb074e8cc5e50d9db'\n\n// ===== POSTHOG =====\nexport const POSTHOG_API_KEY =\n process.env.REACT_APP_POSTHOG_API_KEY ||\n 'phc_h6H9p7O9SGRQHpFV6fdaI0PPwppCuPRpFfEnFOvVPWw'\nexport const PUBLIC_POSTHOG_URL =\n process.env.REACT_APP_PUBLIC_POSTHOG_HOST || 'https://us.i.posthog.com'\n\n// ===== G2 =====\nexport const G2_LINKED_ITEM_ID_PLACEHOLDER = 'g2-linked-item-id-placeholder'\n\n// ===== GOOGLE TAG MANAGER CONSTANTS =====\n/**\n * GTM Container ID, should be like 'GTX-XXXXXXX'\n */\nexport const GTM_CONTAINER_ID = 'GTM-5XGSDVT'\n/**\n * GTM environment name — used for previewing GTM behavior in the GTM tag assistant (https://tagassistant.google.com)\n * For production, leave this as undefined or empty string.\n * Get this from the `gtm_preview` query param in the GTM code snippet shown on the GTM console.\n */\nexport const GTM_PREVIEW =\n process.env.REACT_APP_GTM_PREVIEW || IS_PRODUCTION\n ? undefined // undefined means use the default environment (live)\n : IS_STAGING\n ? 'env-18' // Staging env\n : 'env-17' // Local dev env\n/**\n * GTM environment auth — used for previewing GTM behavior in the GTM tag assistant (https://tagassistant.google.com)\n * For production, leave this as undefined or empty string.\n * Get this from the `gtm_auth` query param in the GTM code snippet shown on the GTM console.\n * This is required if you specify GTM_PREVIEW.\n */\nexport const GTM_AUTH =\n process.env.REACT_APP_GTM_AUTH || IS_PRODUCTION\n ? undefined // undefined means use the default environment (live)\n : IS_STAGING\n ? 'PjJSQO-ly_cKnQVv9_X_KQ' // Staging env\n : '7ylakmxl28cED4qAqY8hjQ' // Local dev env\n\n// ===== AUTH =====\n/**\n * NOTE: Make sure to keep this frontend flag in sync with the corresponding flag on the backend.\n */\nexport const USE_JWT_AUTH = false\n/**\n * Auth page routes for the new JWT-based auth scheme.\n */\nexport const LOGOUT_PAGE_PATH = '/logout'\n/**\n * Path to the login page.\n */\nexport const LOGIN_PAGE_PATH = '/login'\n/**\n * Path to the post-login handler page.\n */\nexport const POST_LOGIN_PAGE_PATH = '/post-login'\n/**\n * Path to generic auth error page\n */\nexport const AUTH_ERROR_PAGE_PATH = '/auth-error'\n/**\n * Relative path to redirect to after logging out.\n * This currently only serves to keep us on the same domain post-logout,\n * but could have other uses in the future.\n */\nexport const LOGOUT_REDIRECT_PATH = '/'\n/**\n * Path to email verification page. Users who have not yet verified their email\n * will be redirected here upon login.\n */\nexport const EMAIL_VERIFICATION_PAGE_PATH = '/email-verification'\n/**\n * Page where blocked users are redirected to.\n */\nexport const DISABLED_ACCOUNT_REDIRECT_PATH = '/account-disabled'\n/**\n * Page where deleted users are redirected to.\n */\nexport const DELETED_ACCOUNT_REDIRECT_PATH = '/account-deleted'\n\n/**\n * Page where shadow banned users are redirected to.\n */\nexport const SHADOW_BANNED_ACCOUNT_REDIRECT_PATH = '/trial-ended'\n\n/**\n * Path to the pricing page.\n */\nexport const PRICING_PAGE_PATH = '/settings/pricing'\n\n// ===== SUPERTOKENS =====\nexport const SUPERTOKENS_API_BASE_PATH = '/supertokens'\nexport const SUPERTOKENS_UI_BASE_PATH = '/auth-dashboard'\n\n// ===== STRIPE KEYS =====\nexport const STRIPE_TEST_PUBLISHABLE_KEY = IS_PRODUCTION\n ? 'pk_live_51HXNGqLMJlm3MgJtV7K9g1V57Wor4fKpzmXNN3puMJCcE8TOMFmndNSgGGps7VborrZXy5IyKA04banxZl1Udr4n00hk8UTmLT'\n : 'pk_test_51HXNGqLMJlm3MgJtbs87HbD0GkBvnH7y1PbwEIz8WmEDoO5FfBqRpqrgkDClyZi4HcE85WC6OhaWAwIA0xlKjXvr005FBheGHn'\n\n// ===== HELP SCOUT BEACON =====\nexport const HELPSCOUT_BEACON_ID = '5e285013-625c-44db-affd-d83c65549d2a'\n\n// ===== PAPERCUPS CHAT SUPPORT =====\nexport const PAPERCUPS_ACCOUNT_ID = 'f3aab9b1-e88f-4a8b-bd3a-2b8ee848ee75'\nexport const PAPERCUPS_CHAT_TITLE = 'Welcome to Hypotenuse AI'\nexport const PAPERCUPS_CHAT_SUBTITLE = 'Ask us anything 😊'\nexport const PAPERCUPS_CHAT_PLACEHOLDER = 'Start typing...'\nexport const PAPERCUPS_CHAT_GREETING = 'Hi there! What can I help you with?'\nexport const PAPERCUPS_CHAT_COLOR = palette.primary[500]\nexport const PAPERCUPS_BASE_URL = 'https://app.papercups.io'\n\n// ===== INTERCOM CHAT SUPPORT =====\nexport const INTERCOM_APP_ID = 'z8egkvj9'\n\n// ===== FINGERPRINT =====\nexport const FINGERPRINT_PRO_PUBLIC_API_KEY = 'Tyc4iXpxgRla7rPzvL1J'\nexport const FINGERPRINT_ENDPOINT = 'https://uxu7eeWe.hypotenuse.ai'\n\n// ===== SENTRY =====\nexport const SENTRY_DSN =\n 'https://9ecf08ec879449dbb6d297a34abb2b02@o489922.ingest.sentry.io/5745287'\n/**\n * Trace sample rate for Sentry. This is a number between 0 and 1, where 1 means\n * all traces will be sent to Sentry.\n */\nexport const SENTRY_TRACE_SAMPLE_RATE = 0.01\n\n// ===== GOOGLE ANALYTICS =====\nexport const GOOGLE_ANALYTICS_TRACK_CODE = 'UA-159925479-2'\n\n// ===== LOGROCKET =====\nexport const LOGROCKET_APP_ID_1 = 'd5hj4i/premium-prod'\nexport const LOGROCKET_APP_ID_2 = 'bippsm/premium-prod'\nexport const LOGROCKET_APP_ID = LOGROCKET_APP_ID_1 // To be switched out when running close to LogRocket limits\n\n// ===== Semantic UI Popup Overflow Prevention\n// Needed when parent has overflow property: https://github.com/Semantic-Org/Semantic-UI-React/issues/3725\nexport const SEMANTIC_POPUP_OVERFLOW_PREVENTION_PROPS = {\n preventOverflow: {\n boundariesElement: 'offsetParent'\n }\n}\n\n// ===== BULK MODALS =====\nexport enum BulkDescribeModals {\n generate,\n viewAllJobs,\n failed,\n completedWithErrors,\n enrichmentSourceSelection\n}\n\nexport const DEFAULT_CATALOGUE_NAME = 'My first catalog'\n\n// ===== TABS & FILTERING =====\nexport const TAB_VALUES = [\n {\n key: TabKey.new,\n label: ProductTabLabel[TabKey.new],\n loading: false\n },\n {\n key: TabKey.reviewing,\n label: ProductTabLabel[TabKey.reviewing],\n loading: false\n },\n {\n key: TabKey.saved,\n label: ProductTabLabel[TabKey.saved],\n loading: false\n },\n {\n key: TabKey.all,\n label: ProductTabLabel[TabKey.all],\n loading: false\n }\n]\n\n// Note that BASE_TAB_VALUES is required to form tabs for when enable_review = false for a user\nexport const BASE_TAB_VALUES = TAB_VALUES.filter(\n (tab) => tab.key !== TabKey.reviewing\n)\n\nexport const GENERATION_STATUS_FILTER_VALUES = [\n {\n key: GenerationStatusFilterKey.all,\n label: GenerationStatusFilterLabel[GenerationStatusFilterKey.all]\n },\n {\n key: GenerationStatusFilterKey.generation_error,\n label:\n GenerationStatusFilterLabel[GenerationStatusFilterKey.generation_error]\n },\n {\n key: GenerationStatusFilterKey.generated,\n label: GenerationStatusFilterLabel[GenerationStatusFilterKey.generated]\n },\n {\n key: GenerationStatusFilterKey.not_generated,\n label: GenerationStatusFilterLabel[GenerationStatusFilterKey.not_generated]\n }\n]\n\nexport const ALL_GENERATION_FILTERS_TYPES = [\n GenerationFilterType.descriptions,\n GenerationFilterType.seo_keywords,\n GenerationFilterType.enrich_from_image,\n GenerationFilterType.enrich_from_web,\n GenerationFilterType.enrich_from_url,\n GenerationFilterType.enrich_from_upc\n]\n\nexport const ALL_FILTER_STATUSES = [\n // Do not include \"all\" as these statuses will be multi-select\n GenerationStatusFilterKey.generated,\n GenerationStatusFilterKey.not_generated\n]\n\nexport const DEFAULT_IMPORT_HEADERS = {\n title: 'title',\n imgSrc: 'imgSrc',\n multiImgSrcs: 'multiImgSrcs',\n brand: 'brand',\n tags: 'tags',\n seoKeywords: 'seoKeywords',\n rootKeyword: 'rootKeyword',\n retailer: 'retailer',\n enrichUrl: 'enrichUrl',\n sku: 'sku',\n upc: 'upc'\n}\n\nexport const EXISTING_DETAILS_IMPORT_HEADERS = {\n existingDescription: 'existingDescription',\n existingBullets: 'existingBullets'\n}\n\nexport const DEFAULT_PAYMENT_FAILURE_MESSAGE =\n 'Your payment method was declined, please retry your purchase.'\n\n/**\n * The percentage threshold of the number of words generated for sidebar to show\n */\nexport const SIDEBAR_WORD_USAGE_THRESHOLD_PERCENT = 80\n\n// ====== Referrals ======\n\nexport const DEFAULT_REFERRAL_WORDS = 15_000\nexport const DEFAULT_LINK_SHARING_WORDS = 9_000\n\n// ====== Feature Flags ======\n\n// ====== Knowledge Base ======\n\n// ====== Shopify Billing ======\nexport const ShopifyBillingPlanIds = [\n 'shopify-test-monthly',\n 'shopify-test-yearly'\n]\n\nexport const ShopifyPlanListId = 'shopify-test'\n","import { Theme, useMediaQuery } from '@material-ui/core'\nimport { useTheme } from '@material-ui/core/styles'\n\n/**\n * Definition of the mobile breakpoint.\n * @param {Theme} theme\n * @return {string}\n */\nexport const getMobileBreakpoint = (theme: Theme) =>\n theme.breakpoints.down('sm')\n\n/**\n * Centralized utility hook for checking whether the viewport width\n * is equal to or smaller than the 'mobile' breakpoint.\n */\nexport const useIsMobile = (): boolean => {\n const theme = useTheme()\n return useMediaQuery(getMobileBreakpoint(theme))\n}\n","export interface SerpSearchResult {\n rank: number\n title: string\n url: string\n description?: string\n}\n\nexport interface SummarizationResult {\n id: string\n input_query: string\n summary: string[]\n}\n\nexport interface ResearchQueryPayload {\n title: string\n outline_header: string\n}\n\nexport interface ResearchQueryInResponse {\n query_string: string\n raw_search_results?: SerpSearchResult[]\n research_result?: SummarizationResult\n}\n\n/**\n * Individual keyword search result item used by blog outline generators\n */\nexport interface KeywordResearchResultItem {\n title: string\n url?: string\n h2_headers: string[]\n rank?: number\n}\n\n/**\n * Keyword search result used by blog outline generators\n */\nexport interface KeywordResearchResult {\n organic: KeywordResearchResultItem[]\n people_also_ask: KeywordResearchResultItem[]\n queries?: string[]\n}\n\n/**\n * Payload for product research endpoint\n */\nexport interface ProductResearchPayload {\n product_title?: string\n brand: string\n product_id: string\n tags?: string[]\n product_details?: Record\n}\n\nexport enum ProductResearchSourceType {\n web_search = 'web_search',\n specific_url = 'specific_url',\n image = 'image',\n upc = 'upc'\n}\n\n/**\n * The fallback order for single source bulk enrichment.\n * As of now it is upc -> image -> specific_url -> web_search\n */\nexport const bulkEnrichmentFallbackOrder = [\n ProductResearchSourceType.upc,\n ProductResearchSourceType.image,\n ProductResearchSourceType.specific_url,\n ProductResearchSourceType.web_search\n]\n\n/**\n * Product research result\n */\nexport interface ProductResearchResult {\n source_urls?: string[]\n source_url?: string\n image_src?: string\n upc?: string\n content: string\n source_type: ProductResearchSourceType\n}\n\nexport interface ProductResearchResultWithProductId {\n product_research_result: ProductResearchResult\n product_id: string\n}\n\nexport interface SeoRelatedKeywordInCreateRequest {\n /**\n * Keyword to generate related keywords for\n */\n keyword: string\n /**\n * Country ISO code\n */\n country_iso_code: string\n}\n\n/**\n * SEO related keyword to a primary keyword.\n */\nexport interface SeoRelatedKeyword {\n /**\n * Unique ID of the related keyword\n */\n id: string\n /**\n * Actual related keyword\n */\n keyword: string\n /**\n * Number of times the keyword appears\n * in competitor sites.\n *\n * @note Refer to the backend documentation\n * for more information on how this is calculated.\n */\n frequency_in_external_sites: number\n /**\n * Google search volume for the keyword.\n */\n search_volume?: number\n /**\n * Keyword difficulty.\n *\n * It can be one of the following:\n * - easy\n * - medium\n * - hard\n *\n * Refers to how difficult it is to\n * rank for the keyword.\n */\n competition?: string\n /**\n * Keyword difficulty index.\n *\n * This is a score between 0 and 100\n * that indicates how difficult it is to\n * rank for the keyword.\n */\n competition_index?: number\n /**\n * Timestamp when the related keyword\n * object was created in backend.\n */\n created_at: number\n}\n\n/**\n * Represents the info about a single search result from a SERP\n * for a primary keyword.\n *\n * This differs from a normal SERP search result representation in that it\n * contains additional information such as the frequency of the\n * primary keyword in the search result.\n */\nexport interface SeoSerpSearchResult {\n /**\n * Unique ID of the SERP search result.\n */\n id: string\n /**\n * Title of the SERP search result.\n */\n title: string\n /**\n * URL of the SERP search result.\n */\n url: string\n /**\n * Rank of the SERP search result.\n */\n rank?: number\n /**\n * H2 headers of the SERP search result.\n */\n h2_headers: string[]\n /**\n * Word count of the SERP search result.\n */\n word_count: number\n /**\n * Number of links in the SERP search result.\n */\n num_of_links: number\n /**\n * Number of images in the SERP search result.\n */\n num_of_images: number\n /**\n * Frequency of the primary keyword in the SERP search result.\n */\n frequency_of_primary_keyword: number\n}\n\n/**\n * Represents the info about a single search result from a PAA\n * for a primary keyword.\n */\nexport interface SeoPaaSearchResult {\n /**\n * Unique ID of the PAA search result.\n */\n id: string\n /**\n * Title of the PAA search result.\n */\n title: string\n /**\n * Rank of the PAA search result.\n */\n rank?: number\n}\n\n/**\n * Response interface for a research\n * on a primary keyword.\n */\nexport interface PrimaryKeywordResearchSerpAndPaaResult {\n /**\n * Unique ID of the primary keyword.\n */\n id: string\n /**\n * Country ISO code used for SERP search.\n */\n country_iso_code: string\n /**\n * Primary keyword used for the research.\n */\n primary_keyword: string\n /**\n * SERP search results for the primary keyword.\n */\n serp_search_results: SeoSerpSearchResult[]\n /**\n * PAA search results for the primary keyword.\n * (People Also Ask)\n */\n paa_search_results: SeoPaaSearchResult[]\n /**\n * Timestamp when the research result\n * was created.\n */\n created_at: number\n /**\n * Timestamp when the research result\n * was resolved.\n */\n resolved_at?: number\n /**\n * Boolean flag indicating whether\n * the research result had an error.\n */\n error: boolean\n /**\n * Error message if the research result\n * had an error.\n */\n error_message?: string\n /**\n * Boolean flag indicating whether\n * the research result has been deleted.\n */\n deleted: boolean\n /**\n * Timestamp when the research result\n * was deleted.\n */\n deleted_at?: number\n}\n\n/**\n * Response interface for a related keyword query\n * on a primary keyword.\n */\nexport interface PrimaryKeywordResearchRelatedKeywordsResultInResponse {\n /**\n * Unique ID of the primary keyword.\n */\n id: string\n /**\n * Country ISO code used for SERP search.\n */\n country_iso_code: string\n /**\n * Primary keyword used for the research.\n */\n primary_keyword: string\n /**\n * Related keywords to the primary keyword.\n */\n related_keywords: SeoRelatedKeyword[]\n /**\n * Timestamp when the research result\n * was created.\n */\n created_at: number\n /**\n * Timestamp when the research result\n * was resolved.\n */\n resolved_at?: number\n /**\n * Boolean flag indicating whether\n * the research result had an error.\n */\n error: boolean\n /**\n * Error message if the research result\n * had an error.\n */\n error_message?: string\n /**\n * Boolean flag indicating whether\n * the research result has been deleted.\n */\n deleted: boolean\n /**\n * Timestamp when the research result\n * was deleted.\n */\n deleted_at?: number\n}\n\nexport const NO_PRODUCTS_MET_REQUIREMENT_ERROR_TYPE =\n 'no_products_met_requirement'\n\nexport enum BatchJobType {\n add_products = 'add_products',\n upload_images = 'upload_images',\n export_products_csv = 'export_products_csv',\n export_products_xlsx = 'export_products_xlsx',\n describe = 'describe',\n seo_keyword_suggestion = 'seo_keyword_suggestion',\n enrich_from_web = 'enrich_from_web',\n enrich_from_url = 'enrich_from_url',\n enrich_from_image = 'enrich_from_image',\n enrich_from_upc = 'enrich_from_upc',\n enrich_with_fallback = 'enrich_with_fallback',\n translate_product_descriptions = 'translate_product_descriptions'\n}\n\nexport interface BatchSingleProductFinishedResponse {\n job_id: string\n product_id: string\n job_type: BatchJobType\n}\n\nexport const PRODUCT_RESEARCH_SOURCE_TYPE_TO_BATCH_JOB_TYPE_MAPPING: Record<\n ProductResearchSourceType,\n BatchJobType\n> = {\n [ProductResearchSourceType.web_search]: BatchJobType.enrich_from_web,\n [ProductResearchSourceType.specific_url]: BatchJobType.enrich_from_url,\n [ProductResearchSourceType.image]: BatchJobType.enrich_from_image,\n [ProductResearchSourceType.upc]: BatchJobType.enrich_from_upc\n}\n","/**\n * Low-level interface to the content generation API.\n * Avoid using these functions directly. Instead, prefer the higher\n * level generation API hook or HOC.\n */\nimport { AxiosRequestConfig } from 'axios'\n\nimport {\n AdTextFolderSearchQuery,\n AdTextType\n} from '../interfaces/AdvertisingText'\nimport {\n ContentGenerationType,\n GenerationInputType\n} from '../interfaces/ContentGeneration'\nimport {\n CommandType,\n HighlightCommandTrigger\n} from '../interfaces/HighlightCommand'\nimport {\n Description,\n ProductDescriptionGenerationResponse,\n ProductSearchQuery\n} from '../interfaces/Products'\nimport { ToneFields } from '../interfaces/Tone'\n\nimport { apiClient } from '../utils/ApiClient'\nimport { SERVER } from '../utils/Constants'\nimport { CountryDetail } from '../utils/Interfaces'\n\nimport { EntityReference } from '../components/entityReference/types'\n\n/**\n * Wrapper around AxiosRequestConfig to add typing for the `params` property\n */\nexport interface IGenerationAPIRequestConfig\n extends Omit, 'params'> {\n params?: Params\n}\n\n// ===== Generation API =====\n/**\n * URL Query params for the content generation API endpoint\n */\nexport interface IGenerationAPIParams {\n // TODO: Specifying both generation_type and copy_type is redundant - unify.\n /**\n * The type of content to generate\n */\n generation_type: ContentGenerationType\n /**\n * Ad text copy type (to be deprecated)\n * @deprecated\n */\n copy_type?: AdTextType\n /**\n * Product ID to be sent as query parameter to escape (starlette's) FastAPI's issue with escape sequencing\n * See: https://github.com/encode/starlette/issues/826\n */\n productId: string\n\n /**\n * Number of outputs to generate\n */\n num_outputs?: number\n /**\n * Whether to split the output into two\n * Currently only used for meta description generation\n *\n * TODO: Remove this once we deprecated the old meta description generation\n */\n split_output?: boolean\n /**\n * Whether user has enabled SEO mode\n */\n is_seo_mode_enabled?: boolean\n is_referencing_knowledge_base?: boolean\n is_rewriter_generation?: boolean\n}\n\n/**\n * Request body for the content generation API endpoint\n */\nexport interface IGenerationAPIPayload {\n stepper_tuples?: [number, number][]\n /**\n * List of entities to be referenced\n */\n entity_references?: readonly EntityReference[]\n /**\n * List of headers to be outlined\n */\n outline_headers?: string[]\n /**\n * Link provided by user to scrape\n */\n reference_links?: string[]\n /**\n * ID of file provided by user to be used for generation\n */\n reference_file_ids?: string[]\n /**\n * Country provided by user for the article to be centered around\n */\n seo_region?: CountryDetail\n catalogue_template_name?: string\n}\n\n/**\n * Call the content generation API.\n * Take note that this function doesn't handle any errors that the endpoint may return.\n * Errors are currently handled in the GenerationAPIProvider hook where this fn is used. If you're\n * calling this function directly, make sure you handle errors such as rate-limiting, credit exhaustion, etc.\n */\nexport const apiGenerateContent = async (\n requestConfig: IGenerationAPIRequestConfig<\n IGenerationAPIPayload,\n IGenerationAPIParams\n >\n) => {\n const { data, ...config } = requestConfig\n return await apiClient.post(\n '/describe/product/', // productId as a query parameter in finalConfig.params\n data,\n config\n )\n}\n\n/**\n * Generates an entire blog article\n */\nexport const apiGenerateBlogAdText = async (\n requestConfig: IGenerationAPIRequestConfig<\n IGenerationAPIPayload,\n IGenerationAPIParams\n >\n) => {\n const { data, ...config } = requestConfig\n return await apiClient.post(\n '/describe/blog-adtext/', // productId as a query parameter in finalConfig.params\n data,\n config\n )\n}\n\n// ==== Write more API =====\n/**\n * Context for content generation endpoint\n */\nexport interface WriteMoreGenerationContext {\n prefix: string\n suffix?: string\n should_continue_line: boolean\n}\n\n/**\n * Body for the write more API endpoint\n */\nexport type IWriteMoreAPIPayload = WriteMoreGenerationContext\n\n/**\n * Axios request config for the write more API endpoint. Has a different payload\n * from the normal request config.\n */\nexport interface IWriteMoreAPIRequestConfig\n extends AxiosRequestConfig {\n params: IGenerationAPIParams\n}\n\nexport interface ComposeContext {\n prefix: string\n suffix?: string\n title?: string\n document_id: string\n}\n\nexport type IComposeAPIPayload = ComposeContext\n\nexport interface IComposeAPIRequestConfig\n extends AxiosRequestConfig {}\n\n/**\n * New compose API. This API can be used by all content types\n * which has an editor\n */\nexport const apiCompose = async (requestConfig: IComposeAPIRequestConfig) => {\n const { data, ...config } = requestConfig\n let body = {\n document_id: data?.document_id,\n context: {\n prefix: data?.prefix,\n suffix: data?.suffix,\n title: data?.title\n }\n }\n return await apiClient.post('/compose', body, config)\n}\n\nexport interface HighlightCommandContext {\n // TODO: Finalise shape of payload / decide if we are sending only selection to LM\n prefix?: string\n selection: string\n suffix?: string\n title?: string\n document_id: string\n commandType: CommandType\n customPrompt?: string\n additionalPromptInputs?: Record\n commandTrigger?: HighlightCommandTrigger\n}\n\nexport type IHighlightCommandAPIPayload = HighlightCommandContext\nexport interface IHighlightCommandAPIRequestConfig\n extends AxiosRequestConfig {}\n\n/**\n * Highlight commands API. This API can be used by all content types\n * which has an editor\n */\nexport const apiHighlightCommand = async (\n requestConfig: IHighlightCommandAPIRequestConfig\n) => {\n const { data, ...config } = requestConfig\n let body = {\n document_id: data?.document_id,\n command_type: data?.commandType,\n command_trigger: data?.commandTrigger,\n custom_prompt: data?.customPrompt,\n context: {\n prefix: data?.prefix,\n selection: data?.selection,\n suffix: data?.suffix,\n title: data?.title,\n additional_prompt_inputs: data?.additionalPromptInputs\n }\n }\n return await apiClient.post('/highlight_command', body, config)\n}\n\nexport interface HighlightResearchCommandContext {\n prefix?: string\n selection: string\n suffix?: string\n title?: string\n document_id: string\n commandType: CommandType\n customPrompt?: string\n commandTrigger?: HighlightCommandTrigger\n}\n\nexport type HighlightResearchCommandAPIPayload = HighlightResearchCommandContext\nexport interface HighlightResearchCommandAPIRequestConfig\n extends AxiosRequestConfig {}\n\nexport const apiHighlightResearchCommand = async (\n requestConfig: HighlightResearchCommandAPIRequestConfig\n) => {\n const { data, ...config } = requestConfig\n let body = {\n document_id: data?.document_id,\n command_type: data?.commandType,\n command_trigger: data?.commandTrigger,\n custom_prompt: data?.customPrompt,\n context: {\n prefix: data?.prefix,\n selection: data?.selection,\n suffix: data?.suffix,\n title: data?.title\n }\n }\n return await apiClient.post('/highlight-research', body, config)\n}\n\nexport interface ToneAnalyzerContext {\n inputType: GenerationInputType\n inputValue: string\n}\n\nexport type IToneAnalyzerAPIPayload = ToneAnalyzerContext\n\nexport interface IToneAnalyzerAPIRequestConfig\n extends AxiosRequestConfig {}\n\nexport const apiAnalyzeTone = async (\n requestConfig: IToneAnalyzerAPIRequestConfig\n) => {\n const { data, ...config } = requestConfig\n let body = {\n input_type: data?.inputType,\n input_value: data?.inputValue\n }\n return await apiClient.post('/tone/analyze', body, config)\n}\n\n// TODO: Standardize batch generation across Phoenix & Tako.\n\nexport interface GenerateBatchInRequest {\n productIds?: string[]\n prodSearchQuery?: ProductSearchQuery\n adTextQuery?: AdTextFolderSearchQuery\n jobName: string | undefined\n generationType: ContentGenerationType\n splitOutput?: boolean\n catalogueTemplateName?: string\n}\n\n// Currently blocked by differing interfaces/flows.\nexport const apiGenerateBatch = async (\n requestConfig: GenerateBatchInRequest\n) => {\n let body = {\n product_ids: requestConfig.productIds,\n prod_desc_query: requestConfig.prodSearchQuery,\n ad_text_query: requestConfig.adTextQuery,\n job_name: requestConfig.jobName,\n generation_type: requestConfig.generationType,\n split_output: requestConfig.splitOutput\n }\n return apiClient.post('/describe/products', body)\n}\n\nexport const apiCheckContentFollowsBrandGuidelines = async (\n descriptions: string[],\n brands: string[]\n) => {\n const response = await apiClient.post(`/check-brand-guidelines`, {\n descriptions: descriptions,\n brands: brands\n })\n return response.data\n}\n\n/**\n * Pipeline-based product description generation endpoint.\n *\n * @note This endpoint uses callback method to generate product descriptions.\n * It is functionally close to `/describe/product/` endpoint but uses a different\n * method to generate descriptions.\n *\n * @param productId Product ID for which to generate a product description\n */\nexport const apiGenerateProductDescriptionWithCallback = async (\n productId: string,\n toneIds: string[],\n retailerId?: string,\n catalogueTemplateName?: string\n) => {\n const response = await apiClient.post(\n `${SERVER}/api/v2/generation/product-description`,\n {\n product_id: productId,\n tone_ids: toneIds,\n retailer_id: retailerId,\n catalogue_template_name: catalogueTemplateName\n }\n )\n return response.data\n}\n","import {\n LongFormContentLength,\n LongFormContentPOV\n} from '../components/longFormContent/interfaces'\n\nimport { CountryDetail, ToneSource } from '../utils/Interfaces'\n\nimport { EntityReference } from '../components/entityReference/types'\n\nimport { FeedbackContentGenerationType } from './ContentGeneration'\nimport { Description, ProductErrorType } from './Products'\nimport { KeywordResearchResult } from './Research'\n\nexport enum BlogStepper {\n TITLE,\n OUTLINE,\n INTRO,\n PARAGRAPH,\n CONCLUSION,\n FULL_ARTICLE\n}\n\nexport enum BlogCurrStep {\n NONE = -1,\n TITLE = 0,\n OUTLINES = 1,\n PARAGRAPHS = 2\n}\n\nexport enum SelectedBlogTab {\n /**\n * Enum that is used to identify the tab that is currently selected within the blog title/outline stage\n */\n CONTENT_BRIEF = 'content brief',\n KNOWLEDGE = 'knowledge'\n}\n\n/**\n * The pattern used to split outline headings into an array.\n * Note: We include for backward compatibility - we don't expect to see\n * it in newly generated outlines but older outlines still contain it.\n */\nexport const BLOG_OUTLINE_SEPARATOR_PATTERN = /\\n|/\n/**\n * The patter used to rejoin outline headings arrays into a string\n */\nexport const BLOG_OUTLINE_JOIN_TOKEN = '\\n'\n\n/**\n * Overrides the default timeout offset returned by backend via blog.expiredAt\n * as blog generation should have a longer timeout.\n */\nexport const BLOG_GENERATION_TIMEOUT_IN_SECONDS = 360\n\nexport enum BlogTheme {\n WRITER_BLOG_TITLE = 'blog_title',\n WRITER_BLOG_OUTLINE = 'blog_outline_General',\n WRITER_BLOG_INTRO = 'blog_introduction',\n WRITER_BLOG_PARAGRAPH = 'blog_paragraph',\n WRITER_BLOG_CONCLUSION = 'blog_conclusion',\n WRITER_BLOG_WRITE_MORE = 'blog_write_more' // TODO: consider different writers based on prefix or suffix\n}\n\nexport enum OutlineDetailCreationType {\n BY_USER = 'by_user',\n BY_RESEARCH = 'by_research'\n}\nexport interface OutlineDetail {\n outline_detail: string\n creation_type: OutlineDetailCreationType\n id: string\n}\n\n/**\n * The outline section is a representation of H2s + Ps\n */\nexport interface OutlineSection {\n /** This string stores the one heading (H2) */\n outline_heading: string\n /** This array of string stores the bullet points of each heading (H2) */\n details: OutlineDetail[]\n /** This id is used to identify the outline section */\n id: string\n}\n\nexport enum OutlineCreationMethodType {\n default = 'default',\n all_serp = 'all_serp',\n improve = 'improve',\n manual = 'manual'\n}\n\nexport const outlineCreationMethodToContentFeedbackTypeMap: {\n [key in OutlineCreationMethodType]: FeedbackContentGenerationType\n} = {\n [OutlineCreationMethodType.default]:\n FeedbackContentGenerationType.blog_outline_default,\n [OutlineCreationMethodType.all_serp]:\n FeedbackContentGenerationType.blog_outline_all_serp,\n [OutlineCreationMethodType.improve]:\n FeedbackContentGenerationType.blog_outline_improve,\n [OutlineCreationMethodType.manual]:\n FeedbackContentGenerationType.blog_outline_manual\n}\n\nexport interface OutlineWithDetails {\n /**\n * This list stores all the headings of an outline\n * and the details (bullet points) of each heading\n */\n list_of_outline_sections: OutlineSection[]\n /**\n * This id is used to keep track of which outline is currently selected.\n * In Step 3 of Blog, we will render the\n * outline based on the selected_outline_id\n */\n outline_id: string\n outline_creation_method: OutlineCreationMethodType\n}\n\nexport interface BlogPendingDetail {\n [key: string]: PendingDetail\n}\n\nexport interface PendingDetail {\n /**\n * The index of the outline, as there can be multiple outlines\n */\n outline_idx: number\n /**\n * The index of the section in that outline, as there can be multiple sections\n */\n section_idx: number\n /**\n * The string of the pending detail of that section.\n * Pending details are details that have not been entered yet.\n */\n pending_detail: string\n}\n\n// All Descriptions inside Blog object will have a description_id\nexport interface BlogDescription extends Description {\n description_id: string\n}\n\n/**\n * Schema for the blog web enrichment links configuration.\n *\n * It is used to store the links to include/exclude in the\n * blog web enrichment process.\n */\nexport interface BlogWebEnrichmentLinksConfig {\n /**\n * The list of internal links to include in the blog enrichment process.\n */\n internal_links_to_include: string[]\n\n /**\n * The list of external links to include in the blog enrichment process.\n */\n external_links_to_include: string[]\n\n /**\n * The list of external links to exclude in the blog enrichment process.\n */\n external_links_to_exclude: string[]\n}\n\nexport interface BlogEnrichmentContentResponse {\n /**\n * Map of outline section ID to enriched content to be used during generation\n */\n enriched_content_map: Record\n\n /**\n * List of sources that are used to produce the enriched content\n */\n source_list: string[]\n}\n\nexport interface Blog {\n username: string\n organizationName: string\n blogId: string\n product_details: string\n productId: string\n created_at: string\n modified_at: string\n loading: boolean\n descriptions: BlogDescription[]\n step: number\n target_audience: string\n brand_details: string\n title: string\n intro: string\n blog_outlines: string[]\n blog_pending_details: BlogPendingDetail\n blog_outlines_details: string[][]\n paragraphs: string[]\n blog_content: string\n keywords: string[]\n selected_keyword: string\n seo_keywords: string[]\n conclusion: string\n seo_region: CountryDetail\n loadingAt?: Date\n expiredAt?: Date\n productErrorType?: ProductErrorType\n blog_topic?: string\n blog_tone: string\n blog_tone_id?: string\n blog_tone_source?: ToneSource\n point_of_view: LongFormContentPOV\n outline_options: OutlineWithDetails[]\n selected_outline_id: string\n blog_length: LongFormContentLength\n reference_file_ids: string[] | null\n reference_links: string[] | null\n is_referencing_knowledge_base: boolean\n is_seo_outline_enabled: boolean\n keyword_search_results?: KeywordResearchResult\n is_keyword_search_loading?: boolean\n selected_organic_seo_headers?: string[]\n selected_paa_seo_headers?: string[]\n prev_selected_keyword_for_outline_gen?: string\n is_web_enrichment_mode_enabled: boolean\n web_enrichment_links_config: BlogWebEnrichmentLinksConfig\n existing_blog_outline?: string\n has_existing_outline_parsed?: boolean\n is_use_existing_outline_checked?: boolean\n}\n\nexport interface BlogUpdateForm {\n blogId: string\n blog_topic?: string\n product_details?: string\n target_audience?: string\n brand_details?: string\n title?: string\n intro?: string\n blog_outlines?: string[]\n blog_pending_details?: BlogPendingDetail\n paragraphs?: string[]\n blog_content?: string\n descriptions?: BlogDescription[]\n keywords?: string[]\n selected_keyword?: string\n seo_keywords?: string[]\n conclusion?: string\n step?: BlogCurrStep\n productErrorType?: ProductErrorType\n blog_tone?: string\n blog_tone_id?: string\n blog_tone_source?: ToneSource\n point_of_view?: LongFormContentPOV\n outline_options?: OutlineWithDetails[]\n selected_outline_id?: string\n blog_length?: LongFormContentLength\n reference_file_ids?: string[]\n reference_links?: string[] | null\n is_referencing_knowledge_base?: boolean\n is_seo_outline_enabled?: boolean\n keyword_search_results?: KeywordResearchResult\n is_keyword_search_loading?: boolean\n selected_organic_seo_headers?: string[]\n selected_paa_seo_headers?: string[]\n prev_selected_keyword_for_outline_gen?: string\n is_web_enrichment_mode_enabled?: boolean\n web_enrichment_links_config?: BlogWebEnrichmentLinksConfig\n seo_region?: CountryDetail\n existing_blog_outline?: string\n has_existing_outline_parsed?: boolean\n is_use_existing_outline_checked?: boolean\n}\n\nexport type SortByDate =\n | BlogOverviewSortBy.CREATED_AT\n | BlogOverviewSortBy.MODIFIED_AT\n\nexport enum BlogOverviewSortBy {\n SCORE = '_score',\n BLOG_ID = 'blogId',\n CREATED_AT = 'created_at',\n MODIFIED_AT = 'modified_at',\n BLOG_TITLE = 'title.raw'\n}\n\nexport interface BlogOverviewSearchQuery {\n blogIds?: Array\n search?: string\n scan?: boolean\n sortBy?: Array\n start?: number\n end?: number\n}\n\nexport interface BlogOverviewResponse {\n created_at: string\n blogId: string\n title: string\n keywords: Array\n modified_at?: string\n blog_topic: string\n word_count: number\n}\n\nexport enum BlogWriteMoreAction {\n APPROVE = 'approve',\n REJECT = 'reject'\n}\n\n/**\n * Schema for frozen blog article preview.\n * A blog article preview is a frozen version of a blog article that is\n * suitable for sharing.\n */\nexport interface IArticlePreview {\n id: string\n created_at: string\n blog_id: string\n title: string\n html_content: string\n author_display_name: string\n}\n\n/**\n * Common set of inputs for blog intro, conclusion, and paragraph generation.\n */\nexport interface BlogInputs {\n title: string\n blog_topic: string\n blog_tone: string\n blog_tone_id?: string\n blog_tone_source?: ToneSource\n seo_region?: CountryDetail\n target_audience: string\n point_of_view: string\n blog_length: LongFormContentLength\n product_details: string\n reference_file_ids: string[] | null\n reference_links: string[] | null\n is_referencing_knowledge_base: boolean\n brand_details: string\n entity_references?: readonly EntityReference[]\n primary_keyword_research_result_id?: string\n outline?: OutlineWithDetails\n keywords: string[]\n seo_keywords: string[]\n is_seo_outline_enabled: boolean\n outline_options: OutlineWithDetails[]\n selected_outline_id: string\n is_web_enrichment_mode_enabled: boolean\n web_enrichment_links_config: BlogWebEnrichmentLinksConfig\n}\n\n/**\n * Although this a generic interface, it is currently used only for blog.\n * @todo Move this interface to a more generic location if it is used for\n * other generations.\n */\nexport interface LanguageConfig {\n input_language: string\n output_language: string\n}\n\n/**\n * The input for generating a single paragraph in a blog.\n */\nexport interface BlogParagraphInputs {\n /**\n * The heading of the paragraph.\n */\n heading: string\n /**\n * Extra details used to generate the paragraph.\n *\n * These include information from content detective or user input.\n */\n extra_details: string\n /**\n * Position of the paragraph in the blog\n */\n paragraph_number: number\n /**\n * Number of words in the paragraph\n */\n paragraph_length: number\n /**\n * Enriched content to include in the paragraph\n */\n enriched_content?: string\n}\n\n/**\n * Common payload interface for blog generation request.\n */\nexport interface BlogGenerationPayload {\n blog_id: string\n language_config: LanguageConfig\n stream: boolean\n}\n\nexport interface BlogIntroGenerationPayload extends BlogGenerationPayload {\n blog_generation_inputs: BlogInputs\n}\n\nexport interface BlogParagraphsGenerationPayload extends BlogGenerationPayload {\n blog_generation_inputs: BlogInputs\n paragraphs_to_generate: BlogParagraphInputs[]\n}\n\nexport interface BlogConclusionGenerationPayload extends BlogGenerationPayload {\n blog_generation_inputs: BlogInputs\n enriched_content_source_list?: string[]\n}\n\nexport interface BlogOutlineGenerationInputs extends BlogInputs {\n num_outlines: number\n}\n\nexport interface BlogOutlineGenerationPayload extends BlogGenerationPayload {\n blog_generation_inputs: BlogOutlineGenerationInputs\n}\n\n/**\n * Common response interface for blog generation request.\n *\n * @note All three generation types (intro, paragraphs, and conclusion) share\n * the same response interface.\n */\nexport interface BlogGenerationResponse {\n generation_id: string\n lm_generation_id: string\n content: string\n delta: string\n is_last_stream_response: boolean\n}\n\nexport interface BlogOutlineGenerationResponse {\n generation_id: string\n outline?: OutlineWithDetails\n}\n\n/**\n * Error detail interface for blog streaming response.\n */\ninterface BlogStreamErrorDetail {\n error: string\n message: string\n}\n\n/**\n * Error interface for blog streaming response.\n */\nexport interface BlogStreamErrorResponse {\n detail?: BlogStreamErrorDetail\n}\n","import React, { useEffect, useMemo, useState } from 'react'\n\nimport { NumberParam, useQueryParam, withDefault } from 'use-query-params'\nimport { Subtract } from 'utility-types'\n\nimport { useNonInitialEffect } from '@hypotenuse/common/src/utils/Functions'\n\nexport enum SIZES {\n XL = 'XL',\n LG = 'LG',\n MD = 'MD',\n SM = 'SM'\n}\n\nconst DEVICE_SIZE = {\n [SIZES.XL]: 1200,\n [SIZES.LG]: 992,\n [SIZES.MD]: 768,\n [SIZES.SM]: 576\n}\n\nconst DEVICE_SIZE_TO_ITEM_COUNT_MAP = {\n [SIZES.XL]: 40,\n [SIZES.LG]: 30,\n [SIZES.MD]: 20,\n [SIZES.SM]: 10\n}\n\nexport interface PaginateByWindowSizeOutput {\n numPerPage: number\n page: number\n setPage: (currPage: number) => void\n index: { start: number; end: number }\n totalItems: number\n setTotalItems: React.Dispatch>\n numPages: number\n}\n\nexport interface WithPaginateByWindowSizeProps {\n paginateProps: PaginateByWindowSizeOutput\n}\n\nexport type SizeToCountMap = { [key in SIZES]: number }\nconst getNumPerPage = (sizeToCount: SizeToCountMap): number => {\n return window.innerWidth > DEVICE_SIZE[SIZES.XL]\n ? sizeToCount[SIZES.XL]\n : window.innerWidth > DEVICE_SIZE[SIZES.LG]\n ? sizeToCount[SIZES.LG]\n : window.innerWidth > DEVICE_SIZE[SIZES.MD]\n ? sizeToCount[SIZES.MD]\n : sizeToCount[SIZES.SM]\n}\n\nconst getStartAndEndIndex = (\n numPerPage: number,\n currPage: number\n): { start: number; end: number } => {\n let start = 0\n let end = numPerPage\n if (currPage && currPage > 1) {\n start = (currPage - 1) * numPerPage\n end = start + numPerPage\n }\n return { start, end }\n}\n\n/**\n * Handles pagination state.\n *\n * @param numPerPage Number of items to show per page\n * If a dynamic number of items depending on screen size is needed, use usePaginateByWindowSize instead.\n *\n * Returns the following:\n * - numPerPage -> how many items to display on page\n * - page -> current page\n * - setPage -> method to change current page and set new query param for page\n * - index -> { start, end } of the pagination\n * - totalItems -> the total number of items to be paginated\n * - setTotalItems -> sets value of totalItems\n * - numPages -> total number of pages\n */\nexport const usePaginate = (props: {\n numPerPage: number\n}): PaginateByWindowSizeOutput => {\n const { numPerPage = 10 } = props\n const [totalItems, setTotalItems] = useState(0)\n\n const [page, setPage] = useState(1)\n const index = useMemo(() => getStartAndEndIndex(numPerPage, page), [\n numPerPage,\n page\n ])\n const numPages = Math.max(1, Math.ceil(totalItems / numPerPage))\n\n /**\n * If current page exceeds total pages due to change in pagination or deletion of products,\n * bring user to last page\n */\n useNonInitialEffect(() => {\n if (page > numPages) {\n setPage(numPages)\n }\n }, [numPages, page])\n\n return useMemo(\n () => ({\n numPerPage,\n page,\n setPage,\n index,\n totalItems,\n setTotalItems,\n numPages\n }),\n [index, numPages, numPerPage, page, setPage, totalItems]\n )\n}\n\n/**\n * Handles pagination state based on screen width.\n *\n * @param deviceSizeToItemCountMap Optional size to number per page interface. Will use default mapping if not provided\n *\n * Returns the following:\n * - numPerPage -> how many items to display on page\n * - page -> current page\n * - setPage -> method to change current page and set new query param for page\n * - index -> { start, end } of the pagination\n * - totalItems -> the total number of items to be paginated\n * - setTotalItems -> sets value of totalItems\n * - numPages -> total number of pages\n */\nexport const usePaginateByWindowSize = (props: {\n deviceSizeToItemCountMap: SizeToCountMap\n}): PaginateByWindowSizeOutput => {\n const { deviceSizeToItemCountMap = DEVICE_SIZE_TO_ITEM_COUNT_MAP } = props\n const [totalItems, setTotalItems] = useState(0)\n const [numPerPage, setNumPerPage] = useState(\n getNumPerPage(deviceSizeToItemCountMap)\n )\n const [page, setPage] = useQueryParam('page', withDefault(NumberParam, 1))\n const index = useMemo(() => getStartAndEndIndex(numPerPage, page), [\n numPerPage,\n page\n ])\n const numPages = Math.max(1, Math.ceil(totalItems / numPerPage))\n\n /**\n * If current page exceeds total pages due to change in pagination or deletion of products,\n * bring user to last page\n */\n useNonInitialEffect(() => {\n if (page > numPages) {\n setPage(numPages)\n }\n }, [numPages, page])\n\n useEffect(() => {\n /**\n * Set number per page\n */\n const updateSize = () => {\n setNumPerPage(getNumPerPage(deviceSizeToItemCountMap))\n }\n window.addEventListener('resize', updateSize)\n return () => {\n window.removeEventListener('resize', updateSize)\n }\n }, [deviceSizeToItemCountMap])\n\n return useMemo(\n () => ({\n numPerPage,\n page,\n setPage,\n index,\n totalItems,\n setTotalItems,\n numPages\n }),\n [index, numPages, numPerPage, page, setPage, totalItems]\n )\n}\n\n/**\n * This HOC allows your component to manage pagination.\n * @param WrappedComponent component to wrap of React.ComponentType\n */\nexport function withPaginateByWindowSize<\n P extends WithPaginateByWindowSizeProps\n>(\n WrappedComponent: React.ComponentType

,\n deviceSizeToItemCountMap: SizeToCountMap = DEVICE_SIZE_TO_ITEM_COUNT_MAP\n) {\n const ComponentWithWindowSize: React.FunctionComponent<\n Subtract\n > = (props) => {\n const paginateProps = usePaginateByWindowSize({\n deviceSizeToItemCountMap\n })\n\n WrappedComponent.displayName = `WithPaginationByWindowSize(${\n WrappedComponent.displayName || WrappedComponent.name || 'Component'\n })`\n return \n }\n return ComponentWithWindowSize\n}\n","import React from 'react'\n\n/**\n * This is what's returned when you call `userToolCardContext()`\n */\nexport interface IToolCardContext {\n sectionId?: string\n catalogueTemplateId?: string\n}\n\nconst ToolCardContext = React.createContext(\n undefined\n)\n\nexport const ToolCardProvider = ToolCardContext.Provider\n\nexport const useToolCardContext = (): IToolCardContext | undefined => {\n // Allow returning undefined because we might not always have a\n // context provider, such as in tests\n const context = React.useContext(ToolCardContext)\n return context\n}\n","import React from 'react'\n\nimport { capitalize } from 'lodash-es'\n\nimport { palette } from '../atoms'\nimport { CircularProgress } from '@material-ui/core'\nimport MuiButton, {\n ButtonProps as MuiButtonProps\n} from '@material-ui/core/Button'\nimport { Theme, createStyles, makeStyles } from '@material-ui/core/styles'\nimport clsx from 'clsx'\n\n// Import this if you need coloured outlined or contained that is\n// not within MUI's default primary, secondary or default color.\n// To customize the respective colors, declare them in your theme.\n// Adapted off: https://stackoverflow.com/a/64560059.\nexport type ButtonColor =\n | 'primary'\n | 'secondary'\n | 'error'\n | 'success'\n | 'warning'\n | 'default'\n | 'inherit'\n | 'info'\n\nexport type ButtonVariant = 'contained' | 'outlined'\n\ninterface ButtonProps extends Omit {\n color: ButtonColor\n loading?: boolean\n}\n\nconst useStyles = makeStyles((theme) =>\n createStyles({\n outlinedSuccess: {\n borderColor: palette.success[500],\n color: palette.success[500]\n },\n outlinedError: {\n borderColor: palette.error[500],\n color: palette.error[500]\n },\n outlinedWarning: {\n borderColor: palette.warning[500],\n color: palette.warning[500]\n },\n outlinedInfo: {\n borderColor: theme.palette.info.main,\n color: theme.palette.info.main\n },\n containedSuccess: {\n backgroundColor: palette.success[500],\n color: theme.palette.success.contrastText,\n '&:hover': {\n backgroundColor: palette.success[700]\n }\n },\n containedError: {\n backgroundColor: palette.error[500],\n color: theme.palette.error.contrastText,\n '&:hover': {\n backgroundColor: palette.error[700]\n }\n },\n containedWarning: {\n backgroundColor: palette.warning[500],\n color: theme.palette.warning.contrastText,\n '&:hover': {\n backgroundColor: palette.warning[700]\n }\n },\n containedInfo: {\n backgroundColor: theme.palette.info.main,\n color: theme.palette.info.contrastText,\n '&:hover': {\n backgroundColor: theme.palette.info.dark\n }\n }\n })\n)\n\nconst Button: React.FC = (props) => {\n const {\n children,\n color,\n endIcon,\n loading,\n className: overrideClassName,\n ...restProps\n } = props\n const classes = useStyles()\n const className = classes[`${restProps.variant}${capitalize(color)}`]\n const colorProp =\n ['default', 'inherit', 'primary', 'secondary'].indexOf(color) > -1\n ? (color as 'default' | 'inherit' | 'primary' | 'secondary')\n : undefined\n return (\n ) || endIcon\n }\n >\n {children}\n \n )\n}\n\nButton.displayName = 'Button'\n\nexport default Button\n","import { SIZES as WindowSize } from '../HOC/WithPaginationByWindowSize'\nimport { DocumentType } from '../components/documents/types'\n\nimport { AppFeatures } from './Interfaces'\n\n/**\n * Constants common to all apps\n */\n\n// Environment STAGE\nexport const STAGE = process.env.REACT_APP_STAGE\nexport const APP_VERSION = process.env.REACT_APP_APP_VERSION || '0.1.0'\n\n// ===== LOCALSTORAGE KEYS =====\n//TODO: Move these keys used for local storage here into a localStorageKeys object for better code quality\nexport const HAS_SEEN_PAPERCUPS = 'hasSeenPapercups'\nexport const TEAM_INVITE_ID = 'teamInviteId'\nexport const IS_HIDE_EMPTY_METADATA_ROWS = 'isHideEmptyMetadataRows'\nexport const PREMIUM_HAS_CONTACTED_US = 'premiumHasContactedUs'\nexport const IMPORT_CONTACT_US = 'importContactUs'\nexport const IS_FIRST_MARK_AS_DONE = 'isFirstMarkAsDone'\nexport const PREMIUM_DONE_TUTORIAL_BEFORE = 'premiumDoneTutorialBefore'\nexport const PREMIUM_SHOW_BANNER_NAV = 'premiumShowBannerNav'\nexport const HAS_SUBMITTED_SOCIAL_MEDIA_POST_LINK =\n 'hasSubmittedSocialMediaPostLink'\nexport const IMAGE_GENERATION_LOADING_TIME = 'imageGenerationLoadingTime'\nexport const IS_HYPOCHAT_ENHANCED_QUALITY = 'isHypochatEnhancedQuality'\nexport const IS_HYPOCHAT_REAL_TIME_WEB_DATA = 'isHypochatRealTimeWebData'\nexport const HYPOCHAT_LAST_VIEWED_CHAT_THREAD = 'hypochatLastViewedThread'\nexport const IS_HYPOCHAT_CLOSED = 'isHypochatClosed'\nexport const ADTEXT_PING_DOT_LIST = 'adTextPingDotList'\nexport const HAS_USER_DISMISSED_BULK_GEN_NUDGE = 'hasUserDismissedBulkGenNudge'\nexport const HAS_USER_DISMISSED_BULK_IMPORT_NUDGE =\n 'hasUserDismissedBulkImportNudge'\n\n// ===== PAPERCUPS =====\nexport const PAPERCUPS_POPUP_DELAY = 180000\n\n// ===== Server =====\n// TODO: Server URL should be configured on a per-app basis.\n// Ideally we would refactor the apiClient builder to accept this\n// as a parameter and specify it in each individual app's config.\nexport const SERVER = process.env.REACT_APP_SERVER || ''\nexport const OPENTELEMETRY_SERVER =\n process.env.REACT_APP_OPENTELEMETRY_SERVER ||\n 'http://localhost:8000/collector'\nexport const FRONTEND_HOST =\n process.env.REACT_APP_FRONTEND_HOST || 'http://localhost:3000'\n\n// ===== Links to contact us page =====\nexport const CONTACT_US_LINK = 'https://www.hypotenuse.ai/contact-us-product'\n\nexport const BLOG_PRO_CONTACT_US_LINK =\n 'https://www.hypotenuse.ai/contact-us-blog-pro'\n\nexport const API_CONTACT_US_LINK = `https://www.hypotenuse.ai/contact-us-api`\n\n// ===== Colors =====\nexport const BLOG_PREFIX_COLOR = '#4062C2'\n// changes to this should be reflected in the mark styling in /platform/src/index.css\nexport const COMMAND_SELECTION_COLOR = '#CBE1FE'\n\n// ===== Semantic UI Popup Overflow Prevention\n// Needed when parent has overflow property: https://github.com/Semantic-Org/Semantic-UI-React/issues/3725\nexport const SEMANTIC_POPUP_OVERFLOW_PREVENTION_PROPS = {\n preventOverflow: {\n boundariesElement: 'offsetParent'\n }\n}\n\n// ===== Text to Image Generation constants =====\nexport const TEXT_TO_IMAGE_PROMPT_MAX_CHARS = 800\nexport const DEFAULT_NUM_OUTPUTS_FOR_TEXT_TO_IMAGE = 1\n\n// ===== Catalog constants =====\n\n/**\n * Metadata key to store the Shopify store name in the metadata of a catalog product.\n *\n * NOTE: Keep the frontend and backend versions of this constant in sync.\n */\nexport const CATALOG_PRODUCT_METADATA_SHOPIFY_STORE_NAME = 'shopify_store_name'\n/**\n * Metadata key to store the Shopify ID in the metadata of a catalog product.\n *\n * NOTE: Keep the frontend and backend versions of this constant in sync.\n */\nexport const CATALOG_PRODUCT_METADATA_SHOPIFY_ID = 'shopify_id'\n/**\n * Metadata key to store the PDB product item ID in the metadata of a catalog product.\n *\n * NOTE: Keep the frontend and backend versions of this constant in sync.\n */\nexport const CATALOG_PRODUCT_METADATA_PRODUCT_ITEM_ID = 'product_item_pdb_id'\n\n// ===== Blog constants =====\n\nexport const BLOG_CONTENT_BRIEF_TUTORIAL_BANNER_TEXT = `💡 Give Hypo AI details and clear instructions to help it create\namazing content. The more specific you are, the better the output\nwill be!`\n\nexport const BLOG_KNOWLEDGE_TUTORIAL_BANNER_TEXT = `💡 Let’s give Hypo AI some extra background knowledge to make the content\nmore accurate and tailored to you.`\nexport const BRAND_BACKGROUND_MAX_LIMIT = 1500\nexport const TOPIC_CHAR_MAX_LIMIT = 3000\n/**\n * Max limit of keywords a blog can have\n */\nexport const KEYWORDS_MAX_LIMIT = 5\n/**\n * Max character limit of all keywords\n */\nexport const TOTAL_KEYWORDS_CHAR_MAX_LIMIT = 200\nexport const TOTAL_SEO_KEYWORDS_CHAR_MAX_LIMIT = 60\nexport const TITLE_CHAR_MAX_LIMIT = 200\nexport const TARGET_AUDIENCE_MAX_CHARS = 1500\nexport const PRODUCT_DETAILS_MAX_CHARS = 1500\n/**\n * Max number of characters allowed per a H2 in a blog outline\n */\nexport const OUTLINE_CHAR_MAX_LIMIT = 200\n/**\n * Max total number of characters allowed in a blog outline\n */\nexport const OUTLINE_MAX_TOTAL_CHARACTER_COUNT = 10000\nexport const NON_SELECTED_INDEX = -1\nexport const ORIGINAL_TITLE_INDEX = -2\nexport const RELATED_KEYWORDS_PASSING_SCORE = 0.7\n/**\n * Minimum expected number of paragraph outlines for a blog post.\n */\nexport const MIN_EXPECTED_OUTLINES = 5\n/**\n * Maximum number of body paragraphs allowed per blog post.\n * Does not include the Intro and Conclusion.\n */\nexport const BLOG_MAX_OUTLINES = 18\n/**\n * Max character count for existing blog outline\n */\nexport const EXISTING_BLOG_OUTLINE_MAX_CHAR_COUNT = 6000\n/**\n * Max character count for existing content in SEO rewriter\n */\nexport const EXISTING_CONTENT_MAX_CHAR_COUNT_FOR_SEO_REWRITER = 15_000\n/**\n * Max number of talking points (H3s) that can be added under each outline heading (H2)\n */\nexport const MAX_OUTLINE_DETAILS = 10\nexport const OUTLINE_DETAILS_MAX_LIMIT = 200\n\n/**\n * Max number of files/links that can be uploaded as references for blog\n */\nexport const DEFAULT_MAX_NUM_OF_BLOG_REFERENCES = 3\n\n/**\n * Max number of files that can be uploaded as references for any content type that uses GenericReferenceFileSelectionTab\n */\nexport const DEFAULT_MAX_NUM_OF_REFERENCES: number = 1\n\n// ===== Limits for Advertising Copy =====\n/**\n * Number of characters soft limit for google ads headlines\n */\nexport const GOOGLE_HEADLINE_CHAR_MAX_LIMIT = 30\n/**\n * Number of characters soft limit for google ads descriptions\n */\nexport const GOOGLE_DESCRIPTION_CHAR_MAX_LIMIT = 90\n/**\n * Number of characters soft limit for linkedin post ads descriptions\n */\nexport const LINKEDIN_POST_CHAR_MAX_LIMIT = 3000\n/**\n * Default ad tone\n */\nexport const DEFAULT_AD_TONE = 'Conversational'\n\n/**\n * The URL at which blog previews are hosted.\n */\nexport const BLOG_PREVIEW_BASE_PATH =\n process.env.REACT_APP_BLOG_PREVIEW_BASE_PATH\n\n/**\n * The URL at which generated image previews are hosted.\n */\nexport const GENERATED_IMAGE_PREVIEW_BASE_PATH =\n process.env.REACT_APP_GENERATED_IMAGE_PREVIEW_BASE_PATH\n\n// ===== Limits for Dashboard Incentives =====\n\nexport const DEFAULT_REFERRAL_CREDITS = 50\nexport const DEFAULT_LINK_SHARING_CREDITS = 30\n\n// ===== HypoChat Page =====\nexport const DEFAULT_HYPOCHAT_THREAD_DISPLAY_NAME = 'New Chat'\nexport const DEFAULT_MAX_HYPOCHAT_THREAD_DISPLAY_NAME_LENGTH = 100\nexport const HYPOCHAT_CHAT_THREAD_DRAWER_WIDTH_DESKTOP = 280\nexport const HYPOCHAT_CHAT_THREAD_DRAWER_WIDTH_MOBILE = 200\n\n// ===== Sizes =====\nexport enum SIZES {\n small = 'sm',\n medium = 'md',\n large = 'lg'\n}\n\nexport const DEBOUNCED_TIMING = 330\nexport const CATALOG_QUERY_DEBOUNCED_TIMING = 1000\n\n// ====== Text ======\nexport const CUSTOM_TONE_OPTION = 'Describe a tone'\nexport const BRAND_TONE_OPTION = \"Your brand's tone\"\n\n// ====== Feature Flags ======\n// TODO: All feature flags moving forward should use GlobalFeatureFlags that can be enabled in DB.\n\n// Other frontend constants\nexport const DESKTOP_DRAWER_WIDTH_OPEN = 256\nexport const DESKTOP_DRAWER_WIDTH_CLOSE = 56\nexport const MOBILE_DRAWER_WIDTH_OPEN = 280\nexport const MOBILE_DRAWER_WIDTH_CLOSE = 0\n// In case we want to not close drawer on default\n// export const pathsWithClosedDrawer = [\n// 'blog-post',\n// 'advertising/',\n// 'catalog',\n// 'image-generation'\n// ]\nexport const SHOW_REFERRAL_SIDEBAR_LINK = false\nexport const ICON_SIZE = '20px'\nexport const ICON_STROKE = '2px'\n\nexport const COMPOSE_MIN_WORDS = 5\n\n// This is the max width of the generic editor used across the platform\nexport const EDITOR_MAX_WIDTH = '700px'\n\n// This is the list of country codes that are eligible for the promotion\n// We are excluding Columbia at the moment since the price is > 1M and Stripe cannot support more than 6 digits\n//export const PROMOTION_COUNTRY_CODES = ['IN', 'MX', 'CO', 'BR', 'PK', 'PH']\nexport const PROMOTION_COUNTRY_CODES = ['IN', 'MX', 'BR', 'PK', 'PH']\n\n// File upload constants\nexport const MAX_FILE_SIZE = 32_000_000 // 32 MB\n\n// In the event that 3 features are not selected, fill the rest with fallback features, in this order\n// In the event that 'other' is selected, its treated as a non-existant feature, so we do not count it towards\n// our feature selected count. 'others' only serves to provide analytics and feedback and is not an actual feature\nexport const FALLBACK_CHECKLIST_APP_FEATURES = [\n AppFeatures.blog_feature,\n AppFeatures.hypodoc,\n AppFeatures.summarise\n]\n\n// IMDA related\nexport const IMDA_BLOG_MAX_OUTLINES = 40\nexport const IMDA_MAX_OUTLINE_DETAILS = 20\nexport const IMDA_TARGET_AUDIENCE_OPTIONS = [\n 'Corporates',\n 'Political/International G2G Partners',\n 'Aspiring talent',\n 'Professionals',\n 'Seniors',\n 'Public',\n 'Parents',\n 'IMDA (employees)'\n]\nexport const IMDA_WRITER_BLOG_OUTLINE = 'blog_outline|imda'\nexport const IMDA_LINKEDIN_TALKING_POINTS_MAX_CHARACTERS = 3000\n\nexport const BUTTON_BOX_SHADOW =\n 'rgb(145 158 171 / 20%) 0px 0px 2px 0px, rgb(145 158 171 / 20%) 0px 1px 3px -1px'\n\n// ====== Papa custom plan users related =======\nexport const PAPA_PLAN_FACEBOOK_TEMPLATE_CARD_SUBTITLE =\n 'Craft powerful and compelling posts that speak to your target market.'\nexport const PAPA_PLAN_FACEBOOK_TEMPLATE_CARD_TITLE = 'PAP Facebook post'\n\n// ====== Defaults for # of outputs per generate for different generation types ======\nexport const DEFAULT_NUM_OUTPUTS_FOR_TEMPLATES = 1\nexport const DEFAULT_NUM_OUTPUTS_FOR_BLOG_TITLES = 4\nexport const DEFAULT_NUM_OUTPUTS_FOR_BLOG_OUTLINES = 1\n\n// ====== Product description related constants ======\n/**\n * Maximum number of generations before prompting the user with the bulk gen modal\n */\nexport const PRODUCT_DESCRIPTION_NUM_OF_GENERATES_BEFORE_BULK_GEN_NUDGE = 5\n/**\n * Maximum number of product additions before prompting the user with the bulk import modal\n */\nexport const PRODUCT_DESCRIPTION_NUM_OF_ADDITIONS_BEFORE_BULK_IMPORT_NUDGE = 5\n/**\n * Maximum number of words allowed for product description generation\n */\nexport const PRODUCT_DESCRIPTION_MAX_GENERATION_LENGTH = 500\n/**\n * Minimum number of words required for product description generation\n */\nexport const PRODUCT_DESCRIPTION_MIN_GENERATION_LENGTH = 10\nexport const PRODUCT_DESCRIPTION_DEFAULT_GENERATION_LENGTH = 150\n\n// ====== Document related constants, for the /documents page ======\n\n/**\n * The document types that are supported by the document overview page.\n *\n * @remarks A general document type is used instead of chat document type\n * for chat documents. Hence chat document type is not included in the list.\n */\nexport const DOCUMENT_OVERVIEW_PAGE_TYPES: DocumentType[] = [\n DocumentType.blog,\n DocumentType.general,\n DocumentType.instagram,\n DocumentType.google,\n DocumentType.linkedin,\n DocumentType.facebook,\n DocumentType.headline,\n DocumentType.rewriter,\n DocumentType.category_page,\n DocumentType.landing_page,\n DocumentType.eli5,\n DocumentType.email,\n DocumentType.video_intro,\n DocumentType.meta_desc,\n DocumentType.marketing_angles,\n DocumentType.press_release,\n DocumentType.summarise,\n DocumentType.youtube_title,\n DocumentType.bio_writer,\n DocumentType.ask_anything,\n DocumentType.file,\n DocumentType.folder\n]\n/**\n * Document types that can be moved around (in and out of folders) on the document overview page.\n */\nexport const MOVABLE_DOCUMENT_TYPES: DocumentType[] = [\n ...DOCUMENT_OVERVIEW_PAGE_TYPES\n]\n\n/**\n * The number of items to display per page, depending on the window size.\n * This must be defined outside of the component to keep a stable reference,\n * otherwise the paginator will re-render constantly.\n */\nexport const DEVICE_SIZE_TO_ITEM_COUNT_MAP = {\n [WindowSize.XL]: 30,\n [WindowSize.LG]: 30,\n [WindowSize.MD]: 20,\n [WindowSize.SM]: 10\n}\n\n// TODO: vary this across different device sizes.\n// this requires us to update the endpoint to take\n// the number of items per page\nexport const DEVICE_SIZE_TO_ASSET_COUNT_MAP = {\n [WindowSize.XL]: 24,\n [WindowSize.LG]: 24,\n [WindowSize.MD]: 24,\n [WindowSize.SM]: 24\n}\n\nexport const US_COUNTRY_ISO_CODE = 'US'\nexport const US_COUNTRY_NAME = 'United States'\n\nexport const BUBBLE_MENU_WIDTH = 500\nexport const BUBBLE_MENU_OFFSET = 55\n// ====== Product descriptions related constants ======\nexport const NUMBER_OF_PRODUCT_DESCRIPTIONS_TO_SCRAPE = 10\nexport const NUMBER_OF_RELATED_KEYWORDS_TO_RETURN = 20\n\nexport const SEO_REGION_SERVICE_CONFIG_KEY = 'seo_region'\n\n// ====== LoV Enrichment Metadata Magic Strings =====\nexport const SUGGESTED_VALUES_ALLOWED_DURING_ENRICHMENT_KEY =\n 'is_suggested_list_of_values_allowed_during_enrichment'\n","/**\n * Utility function to enable using Notistack's `useSnackbar` outside React components.\n * Reference: https://github.com/iamhosseindhv/notistack/issues/30#issuecomment-542863653\n *\n * The core of this workaround: We create a placeholder for the result of `useSnackbar()`.\n * When mounted as a child of a `SnackbarProvider`, the `SnackbarUtilsConfigurator` sets `useSnackbarRef`, giving us\n * access to all of Notistack's functionality without explicitly calling the `useSnackbar` hook\n */\nimport React from 'react'\n\nimport styled from '@emotion/styled'\nimport {\n OptionsObject,\n SnackbarKey,\n SnackbarMessage,\n VariantType,\n WithSnackbarProps,\n useSnackbar\n} from 'notistack'\n\nimport { Button } from '@material-ui/core'\n\nlet openChat: () => void\ninterface InnerConfiguratorProps {\n setUseSnackbarRef: (showSnackbar: WithSnackbarProps) => void\n openChat: () => void\n}\n\nconst InnerSnackbarUtilsConfigurator: React.FC = (\n props: InnerConfiguratorProps\n) => {\n props.setUseSnackbarRef(useSnackbar())\n openChat = props.openChat\n return null\n}\n\nlet useSnackbarRef: WithSnackbarProps\nconst setUseSnackbarRef = (useSnackbarRefProp: WithSnackbarProps) => {\n useSnackbarRef = useSnackbarRefProp\n}\n\ninterface SnackbarConfiguratorProps {\n openChat: () => void\n}\n\nexport const SnackbarConfigurator = (props: SnackbarConfiguratorProps) => (\n \n)\n\n// region Per-variant options\nexport type VariantOptions = {\n [key in VariantType]?: OptionsObject\n}\n\n/**\n * Defines default OptionsObject for all variants to inherit.\n * Just the Dismiss button for now\n */\nconst defaultOptions: OptionsObject = {\n action: (key) => (\n useSnackbarRef.closeSnackbar(key)}\n style={{ fontWeight: 'bold' }}\n >\n Dismiss\n \n )\n}\n/**\n * Defines default options for each snackbar variant, overriding the global default snackbar options\n * @type {{error: {action: (key) => JSX.Element, autoHideDuration: null}}}\n */\nconst defaultVariantOptions: VariantOptions = {\n default: defaultOptions,\n success: defaultOptions,\n warning: defaultOptions,\n info: defaultOptions,\n error: {\n ...defaultOptions,\n autoHideDuration: 30000,\n action: (key) => {\n // add get help button only to error variant\n const { action } = defaultOptions\n return (\n <>\n {/* SnackbarAction is either a ReactNode or a function that returns one*/}\n {action && typeof action === 'function' ? action(key) : action}\n {\n openChat()\n useSnackbarRef.closeSnackbar(key)\n }}\n style={{ fontWeight: 'bold' }}\n >\n Get Help\n \n \n )\n }\n }\n}\n// endregion\n\n// Wrapper around snackbar content to prevent overflow by truncating using ellipses\nconst SnackbarContentEllipsisDiv = styled.div`\n // Limit width of snackbar content to prevent horizontal overflow.\n max-width: 90vw;\n max-height: 30vh;\n\n // Vertical scroll\n overflow-y: auto;\n\n font-size: 16px;\n\n // Prevent horizontal scrolling\n overflow-x: hidden;\n\n // Not sure if this is necessary\n text-overflow: ellipsis;\n`\n\nexport const snackbar = {\n show(msg: SnackbarMessage, options?: OptionsObject): SnackbarKey {\n const variant = options?.variant\n const variantOptions = defaultVariantOptions[variant ?? 'default'] ?? {}\n const mergedOptions = { ...variantOptions, ...options }\n return useSnackbarRef.enqueueSnackbar(\n {msg},\n mergedOptions\n )\n },\n close(key?: SnackbarKey) {\n useSnackbarRef.closeSnackbar(key)\n }\n}\n\nexport default snackbar\n","import React from 'react'\n\nimport {\n Box,\n Dialog,\n Divider,\n Fade,\n FadeProps,\n IconButton,\n IconButtonProps\n} from '@material-ui/core'\nimport { DialogProps } from '@material-ui/core/Dialog/Dialog'\nimport Close from '@material-ui/icons/Close'\n\nexport interface SimpleDialogProps extends Omit {\n /**\n * Callback to close the modal. If provided, the close button will be displayed.\n * This prop is overridden from DialogProps to allow calling it directly without a click event.\n */\n onClose?: () => void // TODO: This prop override is unnecessary; can just passthrough from DialogProps\n topDivider?: boolean\n closeButtonSize?: IconButtonProps['size']\n disableTopBox?: boolean\n}\n\nconst DialogTransition = React.forwardRef(function Transition(\n props: FadeProps,\n ref: React.Ref\n) {\n return \n})\n\n/**\n * A generic dialog modal with sensible defaults\n *\n * Uses a fade transition by default\n *\n * @param {SimpleDialogProps} props\n * @returns {JSX.Element}\n */\nexport const SimpleDialog: React.FC = (props) => {\n const {\n title,\n // maxWidth defaults to false, which makes the dialog full width\n maxWidth = false,\n // topDivider defaults to true, adding a line at the top of the Dialog box\n topDivider = true,\n // closeButtonSize defaults to small size\n closeButtonSize = 'small',\n // Optional flag to remove top box from Dialog, defaults to False\n disableTopBox,\n onClose,\n children,\n ...dialogProps\n } = props\n return (\n \n {onClose && (\n <>\n {!disableTopBox && (\n \n \n \n \n \n )}\n {topDivider && }\n \n )}\n {children}\n \n )\n}\n","/**\n * This file is the source of truth for all colours used in the app, based on our design system.\n * They are used to maintain consistency across the app.\n * Do not update these colours unless you are updating the design system.\n */\n\n/**\n * These are the base colors used in our design system.\n */\nconst BASE_COLORS = {\n white: '#FFFFFF',\n black: '#000000',\n gray: {\n 25: '#FCFCFD',\n 50: '#F9FAFB',\n 100: '#F2F4F7',\n 200: '#EAECF0',\n 300: '#D0D5DD',\n 400: '#98A2B3',\n 500: '#667085',\n 600: '#475467',\n 700: '#344054',\n 800: '#1D2939',\n 900: '#101828'\n },\n blue: {\n 25: '#F5FAFF',\n 50: '#EFF8FF',\n 100: '#D1E9FF',\n 200: '#B2DDFF',\n 300: '#84CAFF',\n 400: '#53B1FD',\n 500: '#2E90FA',\n 600: '#1570EF',\n 700: '#175CD3',\n 800: '#1849A9',\n 900: '#194185'\n },\n red: {\n 25: '#FFFBFA',\n 50: '#FEF3F2',\n 100: '#FEE4E2',\n 200: '#FECDCA',\n 300: '#FDA29B',\n 400: '#F97066',\n 500: '#F04438',\n 600: '#D92D20',\n 700: '#B42318',\n 800: '#912018',\n 900: '#7A271A'\n },\n purple: {\n 25: '#FCFAFF',\n 50: '#EBEAFF',\n 100: '#DCDAFF',\n 200: '#CDC9FE',\n 300: '#ABA7FD',\n 400: '#8782FC',\n 500: '#6E63FA',\n 600: '#5148D7',\n 700: '#4434BF',\n 800: '#3C27B4',\n 900: '#2F08A1'\n },\n green: {\n 25: '#F6FEF9',\n 50: '#ECFDF3',\n 100: '#D1FADF',\n 200: '#A6F4C5',\n 300: '#6CE9A6',\n 400: '#32D583',\n 500: '#12B76A',\n 600: '#039855',\n 700: '#027A48',\n 800: '#05603A',\n 900: '#054F31'\n },\n yellow: {\n 25: '#FFFCF5',\n 50: '#FFFAEB',\n 100: '#FEF0C7',\n 200: '#FEDFB9',\n 300: '#FEC84B',\n 400: '#FDB022',\n 500: '#F79009',\n 600: '#DC6803',\n 700: '#B54708',\n 800: '#93370D',\n 900: '#7A2E0E'\n }\n}\n\n/**\n * These are the color aliases used in our design system.\n * While they contain the same colors as the base colors, they are used to provide context to the color.\n */\nconst COLOR_ALIASES = {\n error: BASE_COLORS.red,\n primary: BASE_COLORS.purple,\n success: BASE_COLORS.green,\n warning: BASE_COLORS.yellow\n}\n\nconst palette = {\n ...BASE_COLORS,\n ...COLOR_ALIASES\n}\n\nexport default palette\n","import { IconSize } from '../Icon'\n\nexport enum ButtonColor {\n primary = 'primary',\n red = 'red',\n gray = 'gray',\n blue = 'blue'\n}\nexport type Color = keyof typeof ButtonColor\n\nexport enum ButtonSize {\n xxs = 'xxs',\n xs = 'xs',\n sm = 'sm',\n md = 'md',\n lg = 'lg'\n}\nexport type Size = keyof typeof ButtonSize\n\n/**\n * Map of button size to icon size\n */\nexport const ICON_SIZE_MAP: Record = {\n [ButtonSize.xxs]: IconSize.small,\n [ButtonSize.xs]: IconSize.small,\n [ButtonSize.sm]: IconSize.medium,\n [ButtonSize.md]: IconSize.medium,\n [ButtonSize.lg]: IconSize.medium\n}\n","import React from 'react'\n\nimport { Subtract } from 'utility-types'\n\n/**\n * Type definition for a hook function that takes a single argument and returns a result\n */\ntype HookWithoutParams = () => R\n\n/**\n * Type definition for a HOC that injects props into a component in such a way that\n * the injected props don't need to be supplied when the wrapped component is instantiated.\n */\ntype PropInjectorHOC = (\n Component: React.ComponentType\n) => React.FunctionComponent>\n\n/**\n * A function that transforms a hook function (which takes no arguments) into a prop-injection style HOC.\n * * References:\n * {@link https://github.com/ricokahler/hocify/blob/29e166205f81aae8e262604d598a6adee57df952/index.js}\n * {@link https://medium.com/@jrwebdev/react-higher-order-component-patterns-in-typescript-42278f7590fb}\n * {@link https://react-typescript-cheatsheet.netlify.app/docs/hoc/full_example/}\n *\n * TODO: Extend to allow hooks that take parameters.\n * TODO: Extend to allow the 'enhancer' pattern.\n */\nexport const makePropInjectorHOCFromHook = (\n hook: HookWithoutParams\n): PropInjectorHOC => {\n return (Component: React.ComponentType) => {\n const WrapperComponent: React.FunctionComponent<\n Subtract\n > = (props) => {\n const hookResult = hook()\n return \n }\n WrapperComponent.displayName = `withInjectedProps(${\n Component.displayName || Component.name\n })`\n return WrapperComponent\n }\n}\n","import { DataLayerArgs } from 'react-gtm-module'\n\n// Events\nexport enum GtmEvents {\n /**\n * When a user is redirected to Stripe Checkout\n */\n PHOENIX_CHECKOUT_STARTED = 'phoenixCheckoutStarted',\n /**\n * Triggered after successful checkout\n */\n PHOENIX_CHECKOUT_SUCCESS = 'phoenixCheckoutSuccess',\n /**\n * Triggered after user verifies their email\n */\n PHOENIX_EMAIL_VERIFIED = 'phoenixEmailVerified',\n /**\n * Stripe checkout failed.\n * Currently not used.\n */\n PHOENIX_CHECKOUT_FAILED = 'phoenixCheckoutFailed',\n TAKO_SUBSCRIPTION = 'takoSubscription'\n}\n\n// Data Layers\nexport enum GtmDataLayerTypes {\n GTM_SUBSCRIPTION_LAYER = 'SubscriptionLayer'\n}\n\n// Data Layer\nexport interface GtmDataLayer extends DataLayerArgs {\n event: GtmEvents\n username: string\n transactionId: string\n planType?: string // Must be unique so that each transaction is unique\n}\n","import React, { DependencyList, EffectCallback, useEffect, useRef } from 'react'\n\nimport * as Sentry from '@sentry/browser'\nimport { format, parseISO } from 'date-fns'\nimport moment from 'moment'\nimport { OptionsObject, SnackbarMessage } from 'notistack'\nimport sanitizeFileName from 'sanitize-filename'\nimport TurndownService from 'turndown'\n\nimport { Button } from '@material-ui/core'\n\nimport { Description } from '../interfaces/Products'\n\nimport { HAS_SEEN_PAPERCUPS, MIN_EXPECTED_OUTLINES } from './Constants'\nimport { AppFeatures } from './Interfaces'\nimport snackbar from './Snackbar'\n\n// ==== Ad Descriptions ====\nexport const constructAdDescription = (\n title: string,\n description: string\n): string => {\n return `${title}\\nDescription:${description}`\n}\n\ninterface parsedDescription {\n title: string\n description: string\n}\n\nexport const parseAdDescription = (\n description: Description\n): parsedDescription => {\n const parts = description.content.split('\\nDescription:', 2)\n if (parts.length === 0) return { title: '', description: '' }\n else if (parts.length === 1) return { title: parts[0] ?? '', description: '' }\n else if (parts.length > 2)\n return { title: parts[0] ?? '', description: parts.slice(1).join('') }\n\n const [title, desc] = parts\n // Do not trim white space at the end of description. This will cause a bug where the user cannot type any spaces\n // when editing their descriptions at the end.\n return {\n title: title ?? '',\n description: desc ? desc.trimStart() : ''\n }\n}\n\n// ==== Snackbar ====\ninterface ShowWithSnackbarOptions<\n ClickType = any,\n EnterType = any,\n ExitType = any\n> {\n onClick?: () => ClickType\n onEnter?: () => EnterType\n onExit?: () => ExitType\n // TODO: Confirm button?\n buttonText?: string\n snackbarOptions?: Exclude\n}\n\n/**\n * Display a snackbar with:\n * - an 'enter' callback when the snackbar is first displayed\n * - an 'exit' callback when it closes 'naturally'\n * - a 'click' callback when it's closed programmatically (i.e. with a button click)\n * @param {SnackbarMessage} message\n * @param {ShowWithSnackbarOptions} options\n */\nexport const showWithSnackbar = function <\n ClickType = any,\n EnterType = any,\n ExitType = any\n>(\n message: SnackbarMessage,\n options: ShowWithSnackbarOptions\n): ClickType | EnterType | ExitType | undefined {\n let result: ClickType | EnterType | ExitType | undefined\n\n snackbar.show(message, {\n ...options.snackbarOptions,\n onEnter: (_node, _key) => {\n result = options.onEnter?.()\n },\n onClose: (_event, reason) => {\n // When close is not triggered programmatically (i.e. user clicked cancel), trigger exit\n if (reason !== 'instructed' && reason !== 'clickaway') {\n result = options.onExit?.()\n }\n },\n action: options.onClick\n ? (snackbarKey) => (\n {\n result = options.onClick?.()\n snackbar.close(snackbarKey)\n }}\n style={{ fontWeight: 'bold' }}\n >\n {options.buttonText ?? 'Cancel'}\n \n )\n : undefined\n })\n\n return result\n}\n\n// ==== Papercups ====\nexport const setHasSeenPapercups = (hasSeen: boolean): void => {\n localStorage.setItem(HAS_SEEN_PAPERCUPS, hasSeen.toString())\n}\n\nexport const getHasSeenPapercups = (): boolean => {\n return localStorage.getItem(HAS_SEEN_PAPERCUPS) === 'true'\n}\n\n// ==== Misc ====\nexport const argSort = (\n unsortedArr: T[],\n compareFn: (a: T, b: T) => number\n): number[] =>\n unsortedArr\n // Convert to an object containing the original value and its index\n .map((item, index) => ({ item, index }))\n // Sort the array of objects by the original value\n .sort((a, b) => compareFn(a.item, b.item))\n // Map to sorted indices\n .map(({ index }) => index)\n\nexport const isStringUrl = (possible_url: string) => {\n // Basic check to see if string is URL. Can be more robust, but for now just need a basic one\n const url_prefixes = ['www.', 'https:', 'http:']\n return url_prefixes.some((prefix) => possible_url.includes(prefix))\n}\n\nexport const stripProtocolFromUrl = (url: string) => {\n return url.replace(/^(https?:\\/\\/)?(www\\.)?/, '')\n}\n\n// Functions to count characters\nconst stripHtml = (s: string) => {\n s = s.replace(/<[^>]*>?/gm, '')\n return s\n}\nexport const countWords = (s: string) => {\n /**\n * Counts the number of words within a string.\n *\n * Reference: https://stackoverflow.com/questions/32311081/check-for-special-characters-in-string\n */\n const format = /^[!@#$%^&*()_+\\-=[\\]{};':\"\\\\|,.<>/?]*$/\n\n s = stripHtml(s)\n const s_split = s\n .replace(/ /g, ' ')\n .trim()\n .split(/[\\s\\r\\n]+/)\n const s_split_remove_empty = s_split\n .map((s) => s.trim())\n .filter((s) => s !== '' && !s.match(format))\n return s_split_remove_empty.length\n}\n\nexport const countCharacters = (s: string) => {\n s = stripHtml(s)\n s = s.replace(/ /g, '') // Newline will be represented as   leading to wrong number of chars so we need to strip it\n s = s.trimEnd() // Trim off any whitespace at the end\n return s.length\n}\n\nexport const numberWithCommas = (x: number) => {\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\n}\n\n// ==== Dates ====\nconst isoDateFormat = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d*)?$/\n\nfunction isIsoDateString(value: any): boolean {\n return value && typeof value === 'string' && isoDateFormat.test(value)\n}\n\nexport function handleDates(body: any) {\n if (body === null || body === undefined || typeof body !== 'object')\n return body\n\n for (const key of Object.keys(body)) {\n const value = body[key]\n // Note: The Z at the back of parseISO is necessary because we do UTC now.\n // We can remove the Z if we migrate our python datetime to use the ISO8601 spec.\n // See more here: https://stackoverflow.com/questions/19654578/python-utc-datetime-objects-iso-format-doesnt-include-z-zulu-or-zero-offset\n if (isIsoDateString(value)) body[key] = parseISO(`${value}Z`)\n else if (typeof value === 'object') handleDates(value)\n }\n}\n\n/**\n * Formats a given string representation of a datetime for display.\n *\n * @param datetime The string representation of the datetime to format.\n * @param includeTime Whether to include the time in the datetime representation.\n *\n * @returns The formatted datetime for display.\n */\nexport function convertDatetimeToLocaleString(\n datetime: string,\n includeTime: boolean = true\n): string {\n const date = new Date(datetime)\n\n let options: Intl.DateTimeFormatOptions = {\n day: 'numeric',\n month: 'short',\n year: 'numeric'\n }\n if (includeTime) {\n options = {\n ...options,\n hour: 'numeric',\n minute: 'numeric',\n hour12: true\n }\n }\n\n return date.toLocaleString('en-US', options)\n}\n\nexport function getDatetimeSince(date: Date): string {\n const currDate = new Date()\n let diffDays = currDate.getDate() - date.getDate()\n let diffMonths = currDate.getMonth() - date.getMonth()\n let diffYears = currDate.getFullYear() - date.getFullYear()\n\n // If date is today or yesterday, display time since (eg 4 hours ago, 2 minutes ago)\n if (diffYears === 0 && diffDays < 2 && diffMonths === 0) {\n return moment(date).fromNow()\n }\n // Hide year if within current year\n if (diffYears === 0) {\n return formatDateString(date, 'dd MMM')\n }\n return formatDateString(date, 'dd MMM yyyy')\n}\n\nexport function formatDateString(date: Date, dateFormat: string) {\n return format(date, dateFormat)\n}\n\nexport const formatDate = (date: Date): string => {\n const monthName = getMonthName(date)\n return `${date.getDate()} ${monthName} ${date.getFullYear()}`\n}\n\nexport const getMonthName = (date: Date): string => {\n return date.toLocaleString('default', { month: 'long' })\n}\n\n// An custom React Hook to run callback functions after delay using setInterval\n// See https://overreacted.io/making-setinterval-declarative-with-react-hooks/\nexport const useInterval = (callback: () => void, delay: number | null) => {\n const savedCallback = useRef(callback)\n\n useEffect(() => {\n savedCallback.current = callback\n }, [callback])\n\n useEffect(() => {\n if (delay === null) {\n return\n }\n const id = setInterval(() => savedCallback.current(), delay)\n return () => clearInterval(id)\n }, [delay])\n}\n\n// ==== Scroll ====\nexport const scrollToElementById = (elementId: string) => {\n const element = document.getElementById(elementId)\n element?.scrollIntoView({ behavior: 'smooth' })\n}\n\n// A useEffect that runs only during the second call.\n// This is especially useful when you dont want useEffect to be called during the initial render of the component.\nexport const useNonInitialEffect = (\n effect: EffectCallback,\n deps?: DependencyList\n) => {\n const initialRender = useRef(true)\n useEffect(() => {\n if (initialRender.current) {\n initialRender.current = false\n } else {\n effect()\n }\n /* eslint-disable-next-line react-hooks/exhaustive-deps */\n }, deps)\n}\n\nexport const padArray = (array: T[], minLen: number, fillValue: T) => {\n return minLen > array.length\n ? array.concat(Array(minLen - array.length).fill(fillValue))\n : array\n}\n\n// ==== Blog ====\n// Pads the outline array with empty strings to reach the minimum length\nexport const padOutlinesArray = (arr: string[]) => {\n return padArray(arr, MIN_EXPECTED_OUTLINES, '')\n}\n\n/**\n * Trim whitespace from the beginning and end of a string.\n */\nexport const trimNewlineAndWhitespace = (s: string) => {\n return s.replace(/^\\s+|\\s+$/g, '')\n}\n\nexport const downloadFile = (url: string, filename: string) => {\n const link = document.createElement('a')\n link.href = url\n link.setAttribute('download', filename)\n\n // Append to html link element page\n document.body.appendChild(link)\n\n // Start download\n link.click()\n\n // Clean up and remove the link\n document.body.removeChild(link)\n}\n\n/**\n * Wrapper method that takes a `Promise` and copies the resolved string to the clipboard.\n * This is a workaround for Safari as clipboard.writeText fails when called in asynchronous contexts.\n * Thus, the invocation of this method should not follow an await call.\n * Stick to using navigator.clipboard.writeText for simple synchronous text copying.\n * Reference: https://wolfgangrittner.dev/how-to-use-clipboard-api-in-safari/\n */\n\nexport const copyPromisedStringToClipboard = async (text: Promise) => {\n // handle Safari\n if (typeof ClipboardItem && navigator.clipboard.write) {\n const clipboardItem = new ClipboardItem({\n 'text/plain': text.then(\n (result) => new Blob([result], { type: 'text/plain' })\n )\n })\n await navigator.clipboard.write([clipboardItem])\n } else {\n const result = await text\n await navigator.clipboard.writeText(result)\n }\n}\n\n/**\n * Converts a number of bytes to a human readable format\n * @param bytes The number of bytes to be converted\n * @param decimals The number of decimal places to be displayed\n * @returns A string representing the number of bytes in human readable format (eg. 1.23 MB)\n *\n * Reference: https://stackoverflow.com/questions/15900485/correct-way-to-convert-size-in-bytes-to-kb-mb-gb-in-javascript\n */\nexport const parseBytesToHumanReadable = (\n bytes: number,\n decimals: number = 2\n): string => {\n if (!+bytes) return '0 Bytes'\n\n const k = 1000\n const dm = decimals < 0 ? 0 : decimals\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']\n\n const i = Math.floor(Math.log(bytes) / Math.log(k))\n\n return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`\n}\n\n// Error messages for link validation\nexport const INVALID_LINK_ERR_MSG =\n 'Please check if the link you have entered is valid'\nexport const INVALID_LINK_TYPE_ERR_MSG =\n \"We currently don't support links to PDFs or images\"\n\n/**\n * Validates whether string passed in is a valid link\n */\nexport const validateLinkIsValid = (text: string) => {\n const isURLValidRegex = /^(https:\\/\\/www\\.|www\\.|https?:\\/\\/|)[-a-zA-Z0-9@:%._+~#=]{2,256}\\.[a-z]{2,63}\\b([-a-zA-Z0-9@:%_+.~#?&//=]*)$/gm\n return isURLValidRegex.test(text)\n}\n\n/**\n * Validates that string passed in is not a media link\n */\nexport const isMediaLink = (text: string) => {\n const isURLMediaRegex = /^\\b\\S+\\.(?:jpg|jpeg|gif|png|bmp|webp|svg|pdf)[\\S]*\\b$/gm\n return isURLMediaRegex.test(text)\n}\n\n/**\n * Validates whether the string passed in is a valid non-media link\n */\nexport const validateLink = (text: string) => {\n return validateLinkIsValid(text) && !isMediaLink(text)\n}\n\n// https://github.com/mixmark-io/turndown conforms to CommonMark spec by default\nconst turndownService = new TurndownService({\n headingStyle: 'atx',\n codeBlockStyle: 'fenced'\n})\n// Adding some custom rules to match GitHub Flavoured Markdown and add commonly supported functionality\n// https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#styling-text\nturndownService\n .addRule('strikethrough', {\n filter: ['del', 's'],\n replacement: (content) => '~~' + content + '~~'\n })\n .keep('mark') // show tags as is since most markdown viewers display it as highlighted text\n .keep('u') // show tags as is since most markdown viewers display it as underlined text\n\nexport const htmlToMarkdown = (html: string) => {\n return turndownService.turndown(html)\n}\n\nexport const htmlContentToHtmlFile = (\n htmlContentWithTitle: string,\n title: string\n) => {\n const styles = `\n .tableWrapper {\n table {\n border-collapse: collapse;\n margin: 0;\n overflow: hidden;\n table-layout: fixed;\n width: 100%;\n border-style: hidden;\n td, th {\n border: 1px solid #ced4da;\n box-sizing: border-box;\n min-width: 1em;\n padding: 3px 5px;\n position: relative;\n vertical-align: top;\n > * {\n margin-bottom: 0;\n }\n }\n th {\n background-color: #f1f3f5;\n font-weight: bold;\n text-align: left;\n }\n .selectedCell:after {\n background: rgba(214, 200, 255, 0.1);\n border: 1px solid #6E63FA;\n content: \"\";\n left: -1px; /* Adjusted to span the border */\n right: -1px; /* Adjusted to span the border */\n top: -1px; /* Adjusted to span the border */\n bottom: -1px; /* Adjusted to span the border */\n pointer-events: none;\n position: absolute;\n }\n .column-resize-handle {\n background-color: #6E63FA;\n bottom: -2px;\n position: absolute;\n right: -1px;\n pointer-events: none;\n top: 0;\n width: 2px;\n }\n p {\n margin: 0;\n }\n }\n }\n .tableWrapper {\n overflow-x: auto;\n border: 1px solid #ced4da;\n border-radius: 4px;\n }\n .resize-cursor {\n cursor: ew-resize;\n cursor: col-resize;\n }\n `\n\n // Use a regular expression to find all elements\n const tableRegex = /()/g\n\n // This is done as somehow editor.getHtml() in the getEditorContentAndTitleInHtml function does not return the tables with\n // the div that usually encloses it, which has the class 'tableWrapper'. This is necessary for the table to be styled properly\n const wrappedContent = htmlContentWithTitle.replace(\n tableRegex,\n '
$1
'\n )\n\n return `\n\n\n \n \n ${title}\n \n\n\n${wrappedContent}\n\n`\n}\n\n/**\n * Replaces empty `

` tags with `
` tags to preserve new lines when exporting.\n *\n * This is necessary as whenever we hit \"Enter\" in Tiptap, it creates a `

` tag with a `
` tag inside it (`


`).\n * However this `
` tag is actually a ProseMirror decoration\n * so it is not returned by `editor.getHTML()` (https://github.com/ueberdosis/tiptap/issues/412#issuecomment-515689655)\n *\n * Call this function before exporting html to one of our output file types\n * @param content\n * @returns `content` with empty `

` tags replaced with `
` tags\n */\nexport const replaceEmptyParagraphsWithLineBreaks = (\n content: string\n): string => {\n // use regex to replace empty

tags with
tags\n const regex = /

<\\/p>/g\n return content.replace(regex, '
')\n}\n\n/**\n * Gives the number of words that the user will be rewarded for generating a piece of content\n * Based on the feature that the user is generating content for.\n * @param feature - the feature that the user is generating content for\n * @returns the number of words that the user will be rewarded for generating a piece of content\n */\nexport const getAppFeatureToWordsReward = (feature: AppFeatures): string => {\n switch (feature) {\n case AppFeatures.blog_feature:\n return '2,000 words'\n default:\n return '1,000 words'\n }\n}\n\nexport const downloadCsv = async (downloadLink: string, fileName: string) => {\n try {\n const response = await fetch(downloadLink)\n if (!response.ok) {\n throw response.statusText\n }\n\n const fileBlob = await response.blob()\n const fileURL = URL.createObjectURL(fileBlob)\n\n const link = document.createElement('a')\n link.href = fileURL\n link.download = sanitizeFileName(fileName)\n document.body.appendChild(link)\n link.click()\n document.body.removeChild(link)\n } catch (error) {\n snackbar.show('An error occurred while downloading your CSV.', {\n variant: 'error'\n })\n Sentry.captureException(error)\n }\n}\n","import React, { useContext, useEffect } from 'react'\n\nimport * as Sentry from '@sentry/react'\n\nimport {\n handleTrackCustomerContactUs,\n handleTrackCustomerLearnMore\n} from '@hypotenuse/common/src/api/Analytics'\nimport { makePropInjectorHOCFromHook } from '@hypotenuse/common/src/hooks/hocify'\nimport { useLocalStorage } from '@hypotenuse/common/src/hooks/useLocalStorage'\nimport {\n IMPORT_CONTACT_US,\n IS_FIRST_MARK_AS_DONE,\n IS_HIDE_EMPTY_METADATA_ROWS,\n PREMIUM_HAS_CONTACTED_US\n} from '@hypotenuse/common/src/utils/Constants'\n\nimport usePremiumPlanTier from '../../hooks/usePremiumPlanTier'\n\nimport { PlanType } from '../../components/utils/Interfaces'\n\nimport Analytics from '../../analytics/Analytics'\n\nexport interface TrialUserProps {\n isTrial: boolean\n isEnterpriseUser: boolean\n isUnlimitedUser: boolean\n premiumHasContactedUs: boolean\n handlePremiumContactUs: (isContactedUs: boolean, pathname?: string) => void\n importContactUs: boolean\n setImportContactUs: React.Dispatch>\n isHideEmptyMetadataRows: boolean\n setIsHideEmptyMetadataRows: React.Dispatch>\n isFirstMarkAsDone: boolean\n setIsFirstMarkAsDone: React.Dispatch>\n /**\n * Track when a user clicks 'learn more' on a feature\n * @param {string} feature Feature the user clicked 'learn more' on\n */\n handleTrackLearnMore: (feature?: string) => void\n refreshTrialStatus: () => void\n}\n\nexport const TrialUserContext = React.createContext({\n isTrial: false,\n isEnterpriseUser: false,\n isUnlimitedUser: false,\n premiumHasContactedUs: false,\n handlePremiumContactUs: () => {},\n importContactUs: false,\n setImportContactUs: () => {},\n isHideEmptyMetadataRows: true,\n setIsHideEmptyMetadataRows: () => {},\n isFirstMarkAsDone: true,\n setIsFirstMarkAsDone: () => {},\n handleTrackLearnMore: () => {},\n refreshTrialStatus: () => {}\n})\n\nexport const useTrialUserContext = () => useContext(TrialUserContext)\n\nexport const TrialUserProvider: React.FC = (props) => {\n const {\n data: userPlanTier,\n mutate: refreshTrialStatus\n } = usePremiumPlanTier()\n\n const isTrial = userPlanTier?.plan_type === PlanType.free ?? false\n const isEnterpriseUser =\n userPlanTier?.plan_type === PlanType.enterprise ?? false\n const isUnlimitedUser = userPlanTier?.plan_type === PlanType.unlimited\n const [\n premiumHasContactedUs,\n setPremiumHasContactedUs\n ] = useLocalStorage(PREMIUM_HAS_CONTACTED_US, false)\n const [importContactUs, setImportContactUs] = useLocalStorage(\n IMPORT_CONTACT_US,\n false\n )\n const [\n isHideEmptyMetadataRows,\n setIsHideEmptyMetadataRows\n ] = useLocalStorage(IS_HIDE_EMPTY_METADATA_ROWS, true)\n\n const [isFirstMarkAsDone, setIsFirstMarkAsDone] = useLocalStorage(\n IS_FIRST_MARK_AS_DONE,\n true\n )\n\n const handleTrackLearnMore = (feature?: string) => {\n handleTrackCustomerLearnMore(feature)\n .then((_response) => {\n Analytics.trackEvent('Trial user learn more')\n })\n .catch((_error) => {\n Sentry.captureMessage('Track trial user learn more failed', 'warning')\n })\n }\n\n // We abstract out the tracking event for these two following methods to\n // prevent copy pasting of the same code in multiple places\n const handlePremiumContactUs = (isContactedUs: boolean) => {\n handleTrackCustomerContactUs()\n .then((_response) => {\n Analytics.trackEvent('Trial user contact us')\n })\n .catch((_error) => {\n Sentry.captureMessage('Track trial user contact us failed', 'warning')\n })\n setPremiumHasContactedUs(isContactedUs)\n }\n\n // When context is instantiated, update the status of whether the use is on trial\n useEffect(() => {\n refreshTrialStatus()\n }, [refreshTrialStatus])\n\n return (\n \n {props.children}\n \n )\n}\n\n/**\n * HOC wrapper for the context hook.\n */\nexport const withTrialUserContext = makePropInjectorHOCFromHook(\n useTrialUserContext\n)\n","/**\n * Taken from https://github.com/smartmuki/sse-ts/blob/2eba7d9d000310d77bed18a26985b55ed99261ea/lib/sse.ts, which itself is a fork from https://github.com/mpetazzoni/sse.js\n *\n * Additional modifications had to be manually made to smartmuki's code as it had diverged from the upstream.\n * These changes were made by comparing with the upstream state here: https://github.com/mpetazzoni/sse.js/blob/cfe70a36d49009e403e1cd2419b097497ab693da/lib/sse.js\n *\n */\n\nconst FIELD_SEPARATOR = ':'\n\nenum XHRStates {\n INITIALIZING = -1,\n CONNECTING = 0,\n OPEN = 1,\n CLOSED = 2\n}\n\nexport type CustomEventWithReadyStateChange = CustomEvent & {\n readyState: XHRStates\n}\n\nexport type CustomEventWithError = CustomEvent & {\n status?: number\n message: E\n}\n\nexport type CustomEventWithData = CustomEvent & {\n data: T // Represents a JSON object\n id: string\n}\n\nexport enum SSEOptionsMethod {\n GET = 'GET',\n POST = 'POST'\n}\n\nexport enum EventType {\n message = 'message',\n error = 'error'\n}\n\nexport type CustomEventType =\n | CustomEvent\n | CustomEventWithData\n | CustomEventWithReadyStateChange\n | CustomEventWithError\n\nexport interface SSEOptions {\n /**\n * A dictionary of key-value pairs.\n * Like: { \"Content-type\": \"application/json\" }\n */\n headers?: { [key: string]: string }\n\n /**\n * The XMLHttpRequest.withCredentials property is a boolean value\n * that indicates whether or not cross-site Access-Control requests\n * should be made using credentials such as cookies,\n * authorization headers or TLS client certificates.\n * Setting withCredentials has no effect on same-site requests.\n */\n withCredentials?: boolean\n\n /**\n * The HTTP method (currently only GET and POST are supported)\n * [Required].\n */\n method: SSEOptionsMethod\n\n /**\n * The JSON stringified payload representing the request body.\n */\n payload?: string\n}\n\n// Only two types of Callbacks defined for now, one for each EventType\nexport type MessageCallback = (e: CustomEventWithData) => void\nexport type ErrorCallback = (e: CustomEventWithError) => void\nexport type Callback = MessageCallback | ErrorCallback\n\nexport class SSE {\n private listeners: { [key: string]: Callback[] } = {}\n private readyState: XHRStates = XHRStates.INITIALIZING\n private chunk = ''\n private progress = 0\n private xhr?: XMLHttpRequest\n\n constructor(private url: string, private options: SSEOptions) {\n if (!url) {\n throw new Error('url cannot be null')\n }\n\n if (!options || !options.method) {\n throw new Error('Method is mandatory in `options`')\n }\n }\n\n // only 2 overloads defined currently, one for each EventType\n public addEventListener(\n type: EventType.message,\n listener: MessageCallback\n ): void\n public addEventListener(\n type: EventType.error,\n listener: ErrorCallback\n ): void\n public addEventListener(type: EventType, listener: Callback): void {\n this.listeners[type] = this.listeners[type] || []\n\n if (this.listeners[type].indexOf(listener) === -1) {\n this.listeners[type].push(listener)\n }\n }\n\n public removeEventListener(type: EventType, listener: Callback) {\n if (!this.listeners[type]) {\n return\n }\n\n const filteredListeners = this.listeners[type].filter(\n (lis) => lis !== listener\n )\n if (!filteredListeners.length) {\n delete this.listeners[type]\n } else {\n this.listeners[type] = filteredListeners\n }\n }\n\n public stream() {\n this._setReadyState(XHRStates.CONNECTING)\n\n this.xhr = new XMLHttpRequest()\n this.xhr.onreadystatechange = () => this._checkStreamClosed()\n this.xhr.onprogress = (evt) => this._onStreamProgress(evt)\n this.xhr.onload = (evt) => this._onStreamLoaded(evt)\n this.xhr.onerror = (evt) => this._onStreamFailure(evt)\n this.xhr.onabort = () => this._onStreamAbort()\n\n this.xhr.open(this.options.method, this.url)\n\n for (const header in this.options.headers) {\n const headerValue = this.options.headers[header]\n if (headerValue) {\n this.xhr.setRequestHeader(header, headerValue)\n }\n }\n\n this.xhr.withCredentials = !!this.options.withCredentials\n this.xhr.send(this.options.payload)\n }\n\n close() {\n if (this.readyState === XHRStates.CLOSED) {\n return\n }\n\n this.xhr?.abort()\n this.xhr = undefined\n this._setReadyState(XHRStates.CLOSED)\n }\n\n private dispatchEvent(e?: CustomEventType) {\n if (!e) {\n return true\n }\n\n // e.source = this; Dont expose the SSE object\n\n const onHandler = 'on' + e.type\n if (this.hasOwnProperty(onHandler)) {\n ;(this as any)[onHandler].call(this, e)\n if (e.defaultPrevented) {\n return false\n }\n }\n\n if (this.listeners[e.type]) {\n return this.listeners[e.type]?.every((callback: any) => {\n callback(e)\n return !e.defaultPrevented\n })\n }\n\n return true\n }\n\n private _setReadyState(state: XHRStates) {\n const event = new CustomEvent(\n 'readystatechange'\n ) as CustomEventWithReadyStateChange\n event.readyState = state\n this.readyState = state\n this.dispatchEvent(event)\n }\n\n _onStreamFailure(e: ProgressEvent) {\n const event = e as ProgressEvent\n const failureEvent = new CustomEvent('error') as CustomEventWithError\n failureEvent.status = event.target?.status\n failureEvent.message = JSON.parse(event.target?.response || '{}')\n this.dispatchEvent(failureEvent)\n this.close()\n }\n\n _onStreamAbort() {\n const abortEvent = new CustomEvent('abort')\n this.dispatchEvent(abortEvent)\n this.close()\n }\n\n _onStreamProgress(e: ProgressEvent) {\n if (!this.xhr) {\n return\n }\n\n if (this.xhr.status !== 200) {\n this._onStreamFailure(e)\n return\n }\n\n if (this.readyState === XHRStates.CONNECTING) {\n const openEvent = new CustomEvent('open')\n this.dispatchEvent(openEvent)\n this._setReadyState(XHRStates.OPEN)\n }\n\n const data = this.xhr.responseText.substring(this.progress)\n this.progress += data.length\n\n data.split(/(\\r\\n|\\r|\\n){2}/g).forEach((part: string) => {\n if (part.trim().length === 0) {\n const chunkEvent = this._parseEventChunk(this.chunk.trim())\n this.dispatchEvent(chunkEvent)\n this.chunk = ''\n } else {\n this.chunk += part\n }\n })\n }\n\n private _onStreamLoaded(e: ProgressEvent) {\n this._onStreamProgress(e)\n\n const streamData = this._parseEventChunk(this.chunk)\n\n // Parse the last chunk.\n this.dispatchEvent(streamData)\n this.chunk = ''\n }\n\n /**\n * Parse a received SSE event chunk into a constructed event object.\n */\n private _parseEventChunk(chunk: string) {\n if (!chunk || !chunk.length) {\n return\n }\n\n const e: any = { id: null, retry: null, data: '', event: 'message' }\n\n chunk.split(/\\n|\\r\\n|\\r/).forEach((line: string) => {\n line = line.trimRight()\n const index = line.indexOf(FIELD_SEPARATOR)\n if (index <= 0) {\n // Line was either empty, or started with a separator and is a comment.\n // Either way, ignore.\n return\n }\n\n const field = line.substring(0, index)\n if (!(field in e)) {\n return\n }\n\n const value = line.substring(index + 1).trimLeft()\n if (field === 'data') {\n e[field] += value\n } else {\n e[field] = value\n }\n })\n\n const event = new CustomEvent(e.event) as CustomEventWithData\n event.id = e.id\n\n /**\n * If the event is a ping, the default data is an empty string.\n * In this case, we should not parse the data as JSON.\n */\n if (e.data.length <= 0) {\n return\n }\n\n try {\n event.data = JSON.parse(e.data)\n } catch (error: unknown) {\n // If event data is string date, it means that the backend has sent a ping\n // to check if the connection is still alive.\n const isPingDate =\n typeof event.data === 'string' && !isNaN(Date.parse(event.data))\n if (isPingDate) return\n\n console.error('Error parsing event data', error)\n return\n }\n\n return event\n }\n\n private _checkStreamClosed() {\n if (!this.xhr) {\n return\n }\n\n if (this.xhr.readyState === XMLHttpRequest.DONE) {\n this._setReadyState(XHRStates.CLOSED)\n }\n }\n}\n","export default __webpack_public_path__ + \"static/media/blank_document.396333f2.svg\";","import React from 'react'\n\nimport { useHistory } from 'react-router-dom'\nimport { StringParam, useQueryParam } from 'use-query-params'\n\nimport { apiCreateDocument } from '../../../api/Documents'\n\nimport snackbar from '../../../utils/Snackbar'\n\nimport blank_document_logo from '../assets/blank_document.svg'\n\nimport { BaseToolCard, ToolCardWithMetadata } from './BaseToolCard'\n\nconst TITLE = 'Blank document'\nconst SUBTITLE =\n 'Start crafting fresh and engaging content from scratch in a blank page.'\n\nconst BlankDocumentCard = () => {\n const history = useHistory()\n\n // TODO: Move this to the DocumentOverviewPage\n // folder id is the id of which the adtext is created in, from the folders\n // in the documents page\n const [currentFolderId] = useQueryParam('folderId', StringParam)\n\n const onClick = async () => {\n try {\n const newDocument = await apiCreateDocument({\n folderId: currentFolderId || undefined,\n isHidden: true\n })\n history.push(\n `/document?id=${newDocument.id}${\n newDocument?.folder_id ? `&folderId=${newDocument?.folder_id}` : ''\n }`\n )\n } catch (error) {\n console.error(error)\n snackbar.show(\n 'Failed to create document. Please contact our support team.',\n {\n variant: 'error'\n }\n )\n }\n }\n\n return (\n \n )\n}\n\nconst metadata = {\n id: 'blank_document',\n searchTerms: [TITLE, SUBTITLE]\n}\n\nexport const BlankDocumentCardWithMetadata: ToolCardWithMetadata = {\n card: ,\n metadata\n}\n","import React from 'react'\n\nimport { useHistory } from 'react-router-dom'\nimport { StringParam, useQueryParam } from 'use-query-params'\n\nimport { apiCreateBlog } from '../../../api/Blog'\n\nimport snackbar from '../../../utils/Snackbar'\nimport { useUserContext } from '../../../utils/context/UserContext'\n\nimport {\n EntityReferenceItem,\n ReferenceableEntityType\n} from '../../entityReference/types'\nimport blogIcon from '../assets/v2/blog_article.svg'\n\nimport { BaseToolCard, ToolCardWithMetadata } from './BaseToolCard'\n\nconst TITLE = 'Blog Article'\nconst SUBTITLE =\n 'Write SEO optimized blog articles with factual real time research.'\n\nconst IMDA_SPEECH_TITLE = 'IMDA Speech'\nconst IMDA_SPEECH_SUBTITLE =\n 'Write a speech from start to finish with a guided workflow.'\n\nconst BlogArticleCard = () => {\n const history = useHistory()\n\n const { user } = useUserContext()\n const isPapaPlanUser = !!user?.service_configs?.feature_flags?.is_papa_user\n const isImdaUser = !!user?.service_configs?.feature_flags?.is_imda_user\n\n // TODO: Move this to the DocumentOverviewPage\n // folder id is the id of which the adtext is created in, from the folders\n // in the documents page\n const [currentFolderId] = useQueryParam('folderId', StringParam)\n const [currentTopicRecommendationId] = useQueryParam(\n 'topicRecommendationId',\n StringParam\n )\n\n const onClick = async () => {\n try {\n const targetEntityReferences: EntityReferenceItem[] = []\n\n if (currentTopicRecommendationId) {\n targetEntityReferences.push({\n id: currentTopicRecommendationId,\n type: ReferenceableEntityType.topicRecommendation\n })\n }\n\n const blog = await apiCreateBlog(\n currentFolderId || undefined,\n targetEntityReferences\n )\n\n let queryParams = `?blogId=${blog.blogId}`\n if (currentFolderId) {\n queryParams += `&folderId=${currentFolderId}`\n }\n\n history.push({\n pathname: '/blog-post',\n search: queryParams\n })\n } catch (error) {\n snackbar.show('Failed to create blog. Please contact our support team', {\n variant: 'error'\n })\n }\n }\n\n const title = isImdaUser\n ? IMDA_SPEECH_TITLE\n : isPapaPlanUser\n ? 'PAP Article'\n : TITLE\n\n const subtitle = isImdaUser ? IMDA_SPEECH_SUBTITLE : SUBTITLE\n\n return (\n \n )\n}\n\nconst metadata = {\n id: 'blog_article',\n searchTerms: [TITLE, SUBTITLE]\n}\n\nexport const BlogArticleCardWithMetadata: ToolCardWithMetadata = {\n card: ,\n metadata\n}\n\nconst imdaMetadata = {\n id: 'imda_speech',\n searchTerms: [IMDA_SPEECH_TITLE, IMDA_SPEECH_SUBTITLE]\n}\n\nexport const IMDASpeechArticleCardWithMetadata: ToolCardWithMetadata = {\n card: ,\n metadata: imdaMetadata\n}\n","import React, { useCallback } from 'react'\n\nimport { useHistory } from 'react-router-dom'\n\nimport hypodoc_logo from '../assets/v2/hypodoc.svg'\n\nimport { BaseToolCard, ToolCardWithMetadata } from './BaseToolCard'\n\nconst TITLE = 'HypoDoc'\nconst SUBTITLE =\n 'Upload a technical document and ask AI to analyze, answer questions, summarize and more.'\n\nconst HypoDocCard = () => {\n const history = useHistory()\n const onClick = useCallback(async () => {\n history.push('/hypochat')\n }, [history])\n\n return (\n \n )\n}\n\nconst metadata = {\n id: 'hypodoc',\n searchTerms: [TITLE, SUBTITLE]\n}\n\nexport const HypoDocCardWithMetadata: ToolCardWithMetadata = {\n card: ,\n metadata\n}\n","import React, { useCallback } from 'react'\n\nimport { useHistory } from 'react-router-dom'\n\nimport hypochat_logo from '../assets/v2/hypochat.svg'\n\nimport { BaseToolCard, ToolCardWithMetadata } from './BaseToolCard'\n\nconst TITLE = 'HypoChat'\nconst SUBTITLE =\n 'Real time web AI chat for research brainstorm ideas, multi-purpose content creation.'\n\nconst HypoChatCard = () => {\n const history = useHistory()\n const onClick = useCallback(async () => {\n history.push('/hypochat')\n }, [history])\n\n return (\n \n )\n}\n\nconst metadata = {\n id: 'hypodoc',\n searchTerms: [TITLE, SUBTITLE]\n}\n\nexport const HypoChatCardWithMetadata: ToolCardWithMetadata = {\n card: ,\n metadata\n}\n","export default __webpack_public_path__ + \"static/media/ai_image_generator.5cf6362c.svg\";","import React, { useCallback } from 'react'\n\nimport { useHistory } from 'react-router-dom'\n\nimport image_generator_logo from '../assets/v2/ai_image_generator.svg'\n\nimport { BaseToolCard, ToolCardWithMetadata } from './BaseToolCard'\n\nconst TITLE = 'AI Image Generator'\nconst SUBTITLE = 'Create images for your marketing content.'\n\nconst ImageGeneratorCard = () => {\n const history = useHistory()\n const onClick = useCallback(async () => {\n history.push('/image-generation')\n }, [history])\n\n return (\n \n )\n}\n\nconst metadata = {\n id: 'hypoart',\n searchTerms: [TITLE, SUBTITLE]\n}\n\nexport const ImageGeneratorCardWithMetadata: ToolCardWithMetadata = {\n card: ,\n metadata\n}\n","export default __webpack_public_path__ + \"static/media/product_description_bulk.24cb46c2.svg\";","import React from 'react'\nimport { useCallback } from 'react'\n\nimport { handleUserClick } from '../../../api/Analytics'\n\nimport productDescriptionBulkIcon from '../assets/v2/product_description_bulk.svg'\n\nimport { BaseToolCard, ToolCardWithMetadata } from './BaseToolCard'\n\nconst TITLE = 'Product Descriptions (Bulk)'\nconst SUBTITLE =\n 'Create thousands of SEO optimized product descriptions in bulk.'\n\nconst ProductDescriptionCard = () => {\n const onClick = useCallback(async () => {\n handleUserClick(\n 'marketing-dashboard-product-description-card',\n window.location.pathname\n )\n }, [])\n return (\n \n )\n}\n\nconst metadata = {\n id: 'product_description',\n searchTerms: [TITLE, SUBTITLE]\n}\n\nexport const ProductDescriptionCardWithMetadata: ToolCardWithMetadata = {\n card: ,\n metadata\n}\n","import { AutomapperCardWithMetadata } from './cards/AutomapperToolCard'\nimport { ToolCardWithMetadata } from './cards/BaseToolCard'\nimport { BlankDocumentCardWithMetadata } from './cards/BlankDocumentCard'\nimport {\n BlogArticleCardWithMetadata,\n IMDASpeechArticleCardWithMetadata\n} from './cards/BlogArticleCard'\nimport { HypoDocCardWithMetadata } from './cards/HypoDocCard'\nimport { HypoChatCardWithMetadata } from './cards/HypochatCard'\nimport { ImageGeneratorCardWithMetadata } from './cards/ImageGeneratorCard'\nimport { ProductDescriptionCardWithMetadata } from './cards/ProductDescriptionCard'\nimport { ProductDescriptionRewriterCardWithMetadata } from './cards/ProductDescriptionRewriterCard'\n// Individual tool card components\nimport {\n AskAiAnythingCardWithMetadata,\n BioWriterCardWithMetadata,\n CategoryPageCardWithMetadata,\n Eli5CardWithMetadata,\n EmailCardWithMetadata,\n FacebookAdsCardWithMetadata,\n GoogleAdsCardWithMetadata,\n HeadlineCardWithMetadata,\n IMDALinkedinCardWithMetadata,\n InstagramCaptionsCardWithMetadata,\n LandingPageCardWithMetadata,\n LinkedinPostCardWithMetadata,\n MarketingAnglesCardWithMetadata,\n MetaDescCardWithMetadata,\n PressReleaseCardWithMetadata,\n RewriteForSeoCardWithMetadata,\n RewriterCardWithMetadata,\n SummarizerCardWithMetadata,\n VideoIntroCardWithMetadata,\n YoutubeTitleCardWithMetadata\n} from './cards/TemplateCard'\nimport { ToolCardGroupType } from './mappings'\n\nexport interface IToolCardGroup {\n id: ToolCardGroupType\n title: string\n subTitle: string\n cards: readonly ToolCardWithMetadata[]\n}\n\nconst FeaturedCardGroup: IToolCardGroup = {\n id: ToolCardGroupType.featured,\n title: 'Featured tools',\n subTitle: 'Explore our most popular and highly-rated tools.',\n cards: [\n ProductDescriptionRewriterCardWithMetadata,\n ProductDescriptionCardWithMetadata,\n BlogArticleCardWithMetadata,\n ImageGeneratorCardWithMetadata,\n HypoChatCardWithMetadata\n ] as const\n}\nconst GeneralCardGroup: IToolCardGroup = {\n id: ToolCardGroupType.general,\n title: 'General',\n subTitle: 'Improve your writing and repurpose content easily.',\n cards: [\n AutomapperCardWithMetadata,\n HypoDocCardWithMetadata,\n AskAiAnythingCardWithMetadata,\n RewriterCardWithMetadata,\n SummarizerCardWithMetadata,\n MarketingAnglesCardWithMetadata,\n Eli5CardWithMetadata,\n BlankDocumentCardWithMetadata\n ] as const\n}\nconst SocialAdsCardGroup: IToolCardGroup = {\n id: ToolCardGroupType.ads_social,\n title: 'Ads & social',\n subTitle: 'Create compelling copy for your next campaign.',\n cards: [\n InstagramCaptionsCardWithMetadata,\n GoogleAdsCardWithMetadata,\n FacebookAdsCardWithMetadata,\n LinkedinPostCardWithMetadata,\n YoutubeTitleCardWithMetadata,\n VideoIntroCardWithMetadata\n ] as const\n}\nconst SiteCardGroup: IToolCardGroup = {\n id: ToolCardGroupType.site,\n title: 'Site',\n subTitle: 'Transform your website into a content powerhouse.',\n cards: [\n HeadlineCardWithMetadata,\n LandingPageCardWithMetadata,\n MetaDescCardWithMetadata,\n CategoryPageCardWithMetadata,\n BioWriterCardWithMetadata\n ] as const\n}\nconst NewslettersCommsCardGroup: IToolCardGroup = {\n id: ToolCardGroupType.newsletters_comms,\n title: 'Newsletters & comms',\n subTitle: 'Craft effective messaging for your audience.',\n cards: [EmailCardWithMetadata, PressReleaseCardWithMetadata] as const\n}\nexport const DEFAULT_CARD_GROUPS: readonly IToolCardGroup[] = [\n FeaturedCardGroup,\n GeneralCardGroup,\n SocialAdsCardGroup,\n SiteCardGroup,\n NewslettersCommsCardGroup\n]\n\nconst HomePageFeaturedCardGroup: IToolCardGroup = {\n id: ToolCardGroupType.featured,\n title: 'Featured tools',\n subTitle: 'Explore our most popular and highly-rated tools.',\n cards: [\n ProductDescriptionRewriterCardWithMetadata,\n ProductDescriptionCardWithMetadata,\n BlogArticleCardWithMetadata,\n ImageGeneratorCardWithMetadata,\n HypoChatCardWithMetadata\n ] as const\n}\n\nconst LiveFeedPageFeaturedCardGroup: IToolCardGroup = {\n id: ToolCardGroupType.featured,\n title: 'Featured tools',\n subTitle: 'Explore our most popular and highly-rated tools.',\n cards: [\n BlogArticleCardWithMetadata,\n LinkedinPostCardWithMetadata,\n EmailCardWithMetadata\n ] as const\n}\n\nconst SuggestionFeedFeaturedCardGroup: IToolCardGroup = {\n id: ToolCardGroupType.featured,\n title: 'Featured tools',\n subTitle: 'Explore our most popular and highly-rated tools.',\n cards: [\n BlogArticleCardWithMetadata,\n LinkedinPostCardWithMetadata,\n EmailCardWithMetadata\n ] as const\n}\n\nconst SuggestionFeedGeneralCardGroup: IToolCardGroup = {\n id: ToolCardGroupType.general,\n title: 'General',\n subTitle: 'Improve your writing and repurpose content easily.',\n cards: [\n HypoDocCardWithMetadata,\n AskAiAnythingCardWithMetadata,\n RewriterCardWithMetadata,\n SummarizerCardWithMetadata,\n MarketingAnglesCardWithMetadata,\n Eli5CardWithMetadata\n ] as const\n}\n\n// A list of card groups specifically for the homepage\nexport const HOMEPAGE_CARD_GROUPS: readonly IToolCardGroup[] = [\n HomePageFeaturedCardGroup,\n GeneralCardGroup,\n SocialAdsCardGroup,\n SiteCardGroup,\n NewslettersCommsCardGroup\n]\n\nexport const LIVE_FEED_CARD_GROUPS: readonly IToolCardGroup[] = [\n LiveFeedPageFeaturedCardGroup,\n GeneralCardGroup,\n SocialAdsCardGroup,\n SiteCardGroup,\n NewslettersCommsCardGroup\n]\n\nexport const SUGGESTION_FEED_CARD_GROUPS: readonly IToolCardGroup[] = [\n SuggestionFeedFeaturedCardGroup,\n SuggestionFeedGeneralCardGroup,\n SocialAdsCardGroup,\n SiteCardGroup,\n NewslettersCommsCardGroup\n]\n\nexport const HomePageFeaturedCardGroupWithSeoRewriter: IToolCardGroup = {\n id: ToolCardGroupType.featured,\n title: 'Featured tools',\n subTitle: 'Explore our most popular and highly-rated tools.',\n cards: [\n ProductDescriptionRewriterCardWithMetadata,\n ProductDescriptionCardWithMetadata,\n BlogArticleCardWithMetadata,\n RewriteForSeoCardWithMetadata,\n ImageGeneratorCardWithMetadata,\n HypoChatCardWithMetadata\n ] as const\n}\n\n/**\n * A special featured card group for specifically for papa plan id user's homepage\n */\nconst PapaHomePageFeaturedCardGroup: IToolCardGroup = {\n id: ToolCardGroupType.featured,\n title: 'Featured tools',\n subTitle: 'Explore our most popular and highly-rated tools.',\n cards: [BlogArticleCardWithMetadata, FacebookAdsCardWithMetadata] as const\n}\n\nexport const HOMEPAGE_CARD_GROUPS_WITH_SEO_REWRITER: readonly IToolCardGroup[] = [\n HomePageFeaturedCardGroupWithSeoRewriter,\n GeneralCardGroup,\n SocialAdsCardGroup,\n SiteCardGroup,\n NewslettersCommsCardGroup\n]\n\n// A list of card groups customised for the papa plan id user's homepage\nexport const PAPA_HOMEPAGE_CARD_GROUPS: readonly IToolCardGroup[] = [\n PapaHomePageFeaturedCardGroup,\n GeneralCardGroup,\n SocialAdsCardGroup,\n SiteCardGroup,\n NewslettersCommsCardGroup\n]\n\n/**\n * A special featured card group for IMDA\n */\nconst IMDAHomePageFeaturedCardGroup: IToolCardGroup = {\n id: ToolCardGroupType.featured,\n title: 'Featured tools',\n subTitle: 'Explore our most popular and highly-rated tools.',\n cards: [\n IMDASpeechArticleCardWithMetadata,\n IMDALinkedinCardWithMetadata\n ] as const\n}\n\nconst IMDADocumentOverviewPageFeaturedCardGroup: IToolCardGroup = {\n id: ToolCardGroupType.featured,\n title: 'Featured tools',\n subTitle: 'Explore our most popular and highly-rated tools.',\n cards: [\n BlankDocumentCardWithMetadata,\n IMDASpeechArticleCardWithMetadata,\n IMDALinkedinCardWithMetadata\n ] as const\n}\n\nconst IMDASocialAdsCardGroup: IToolCardGroup = {\n id: ToolCardGroupType.ads_social,\n title: 'Ads & social',\n subTitle: 'Create compelling copy for your next campaign.',\n cards: [\n InstagramCaptionsCardWithMetadata,\n GoogleAdsCardWithMetadata,\n FacebookAdsCardWithMetadata,\n IMDALinkedinCardWithMetadata,\n YoutubeTitleCardWithMetadata,\n VideoIntroCardWithMetadata\n ] as const\n}\n\nconst IMDALiveFeedPageFeaturedCardGroup: IToolCardGroup = {\n id: ToolCardGroupType.featured,\n title: 'Featured',\n subTitle: 'Explore our most popular and highly-rated tools.',\n cards: [\n IMDASpeechArticleCardWithMetadata,\n IMDALinkedinCardWithMetadata\n ] as const\n}\n\nconst IMDASuggestionFeedFeaturedCardGroup: IToolCardGroup = {\n id: ToolCardGroupType.featured,\n title: 'Featured tools',\n subTitle: 'Explore our most popular and highly-rated tools.',\n cards: [\n IMDASpeechArticleCardWithMetadata,\n IMDALinkedinCardWithMetadata\n ] as const\n}\n\nexport const IMDA_HOMEPAGE_CARD_GROUPS: readonly IToolCardGroup[] = [\n IMDAHomePageFeaturedCardGroup,\n GeneralCardGroup,\n IMDASocialAdsCardGroup,\n SiteCardGroup,\n NewslettersCommsCardGroup\n]\n\nexport const IMDA_DOCUMENT_OVERVIEW_CARD_GROUPS: readonly IToolCardGroup[] = [\n IMDADocumentOverviewPageFeaturedCardGroup,\n GeneralCardGroup,\n IMDASocialAdsCardGroup,\n SiteCardGroup,\n NewslettersCommsCardGroup\n]\n\nexport const IMDA_LIVE_FEED_CARD_GROUPS: readonly IToolCardGroup[] = [\n IMDALiveFeedPageFeaturedCardGroup,\n GeneralCardGroup,\n IMDASocialAdsCardGroup,\n SiteCardGroup,\n NewslettersCommsCardGroup\n]\n\nexport const IMDA_SUGGESTION_FEED_CARD_GROUPS: readonly IToolCardGroup[] = [\n IMDASuggestionFeedFeaturedCardGroup,\n SuggestionFeedGeneralCardGroup,\n IMDASocialAdsCardGroup,\n SiteCardGroup,\n NewslettersCommsCardGroup\n]\n","export default __webpack_public_path__ + \"static/media/plan-cancellation-icon.45c890d6.svg\";","import React from 'react'\nimport { useCallback } from 'react'\n\nimport { handleUserClick } from '../../../api/Analytics'\n\nimport { useCatalogueTemplateContext } from '../../../utils/context/CatalogueTemplateContext'\n\nimport productDescriptionRewriterIcon from '../assets/v2/product_description_rewriter.svg'\n\nimport { BaseToolCard, ToolCardWithMetadata } from './BaseToolCard'\n\nconst TITLE = 'Rewrite Product Descriptions (Bulk)'\nconst SUBTITLE = 'Enhance thousands of existing product descriptions in bulk.'\nexport const REWRITER_CARD_ID = 'rewrite_product_description'\n\nconst ProductDescriptionRewriterCard = () => {\n const { rewriterTemplateId } = useCatalogueTemplateContext() || {}\n\n const onClick = useCallback(async () => {\n handleUserClick(\n 'marketing-dashboard-product-description-rewriter-card',\n window.location.pathname\n )\n }, [])\n return (\n \n )\n}\n\nconst metadata = {\n id: REWRITER_CARD_ID,\n searchTerms: [TITLE, SUBTITLE]\n}\n\nexport const ProductDescriptionRewriterCardWithMetadata: ToolCardWithMetadata = {\n card: ,\n metadata\n}\n","import React, { useCallback, useContext, useMemo, useState } from 'react'\n\nimport axios, { AxiosResponse } from 'axios'\nimport { Subtract } from 'utility-types'\n\nimport {\n ComposeContext,\n GenerateBatchInRequest,\n HighlightCommandContext,\n HighlightResearchCommandContext,\n ToneAnalyzerContext,\n apiAnalyzeTone,\n apiCompose,\n apiGenerateBatch,\n apiGenerateBlogAdText,\n apiGenerateContent,\n apiHighlightCommand,\n apiHighlightResearchCommand\n} from '../api/LanguageModel'\n\nimport { AdTextType, generationTypeMap } from '../interfaces/AdvertisingText'\nimport { BlogStepper } from '../interfaces/Blog'\nimport { ContentGenerationType } from '../interfaces/ContentGeneration'\nimport { Description } from '../interfaces/Products'\nimport { ToneFields } from '../interfaces/Tone'\n\nimport { ContactUsProps, handleContactUs } from '../analytics/utils'\nimport { apiClient } from '../utils/ApiClient'\nimport {\n CountryDetail,\n EnterpriseNudgeFeature,\n Nudge,\n RateLimitedServiceName,\n ServerErrorType\n} from '../utils/Interfaces'\n\nimport { EntityReference } from '../components/entityReference/types'\n\nimport {\n EnterpriseFeatureModalProps,\n useEnterpriseFeatureModal\n} from './useEnterpriseFeatureModal'\nimport { useMonetizationAwarenessModal } from './useMonetizationAwarenessModal'\n\n// ===== Types & Interfaces =====\n/**\n * This defines the type of the object returned by the useGenerationAPI hook.\n * NOTE: we have inconsistent naming for interfaces. Can consider abandoning the \"I\" prefix?\n * See https://softwareengineering.stackexchange.com/questions/117348/should-interface-names-begin-with-an-i-prefix\n */\nexport interface IGenerationAPIContext {\n // LM generation methods\n apiGenerateAdvertisingText: ({\n productId,\n adTextType,\n splitOutput,\n referenceLinks,\n referenceFileIds,\n numOutputs,\n entityReferences,\n isReferencingKnowledgeBase\n }: {\n productId: string\n adTextType: AdTextType\n splitOutput?: boolean\n referenceLinks?: string[]\n referenceFileIds?: string[]\n numOutputs?: number\n entityReferences?: readonly EntityReference[]\n isReferencingKnowledgeBase?: boolean\n }) => Promise<{ warning_message: string } | undefined>\n apiGenerateBlogAdtext: (productId: string) => Promise\n apiGenerateBlog: (\n productId: string,\n blogStepper: BlogStepper,\n is_team_knowledge_enabled: boolean,\n subSteps?: [number, number][],\n numOutputs?: number,\n entityReferences?: readonly EntityReference[],\n generationType?: ContentGenerationType,\n isSeoModeEnabled?: boolean,\n outlineHeaders?: string[],\n referenceLinks?: string[],\n referenceFileIds?: string[],\n primaryKeywordResearchResultId?: string,\n seoRegion?: CountryDetail\n ) => Promise<{ warning_message: string } | undefined>\n apiGenerateComposeContextual: (\n context: ComposeContext\n ) => Promise | undefined>\n apiGenerateHighlightCommand: (\n context: HighlightCommandContext\n ) => Promise | undefined>\n apiGenerateHighlightResearchCommand: (\n context: HighlightResearchCommandContext\n ) => Promise | undefined>\n apiGenerateToneAnalysis: (\n context: ToneAnalyzerContext\n ) => Promise | undefined>\n apiGenerateProductDescription: (\n productId: string,\n catalogueTemplateName?: string,\n isReferencingKnowledgeBase?: boolean\n ) => Promise | undefined>\n apiCancelDescribeProduct: (productId: string) => Promise>\n apiGenerateBatchContextual: (\n requestConfig: GenerateBatchInRequest\n ) => Promise | undefined>\n\n // Credit-related methods\n showInsufficientCreditsModal: boolean\n setShowInsufficientCreditsModal: (show: boolean) => void\n\n // Word-related methods\n\n /**\n * Checks if the user has enough words to generate content\n */\n showInsufficientWordsModal: boolean\n /**\n * Sets whether the user has enough words to generate content\n */\n setShowInsufficientWordsModal: (show: boolean) => void\n\n /**\n * Opens the RateLimitCTAModal\n *\n * While most content types have this method triggered within this hook,\n * HypoChat does not use any generation methods within it, and relies on\n * this method being passed to it externally\n */\n onRateLimitExceeded: () => void\n}\n\n/**\n * Props that are common to the generation API hook and provider\n */\nexport interface GenerationAPIHookAndProviderProps {}\n\n/**\n * Props that are exclusive to the generation API context provider\n */\nexport interface GenerationAPIProviderProps\n extends GenerationAPIHookAndProviderProps {\n /**\n * Callback when a rate-limit is exceeded\n */\n onRateLimitExceeded: () => void\n username?: string\n planListId?: string\n}\n\n/**\n * Props that are exclusive to the generation API hook\n */\nexport interface GenerationAPIHookProps\n extends GenerationAPIHookAndProviderProps {}\n\n// ===== Context & Provider =====\n/**\n * Generation API context\n */\nexport const GenerationAPIContext = React.createContext<\n IGenerationAPIContext | undefined\n>(undefined)\n\n/**\n * Generation API Context Provider\n */\nexport const GenerationAPIProvider: React.FC = (\n props\n) => {\n const { children, onRateLimitExceeded, username, planListId } = props\n\n const {\n openModal: openMonetizationAwarenessModal\n } = useMonetizationAwarenessModal((state) => ({\n openModal: state.openModal\n }))\n\n const { openModal: openEnterpriseFeatureModal } = useEnterpriseFeatureModal(\n (state) => ({\n openModal: state.openModal\n })\n )\n\n // Controls display of CTA modal when user runs out of credits\n // TODO: Move this out so this provider can deal purely with the REST API\n const [\n showInsufficientCreditsModal,\n setShowInsufficientCreditsModal\n ] = useState(false)\n\n const [\n showInsufficientWordsModal,\n setShowInsufficientWordsModal\n ] = useState(false)\n\n /**\n * Handle known errors from generation API endpoints\n */\n const handleKnownGenerationErrors = useCallback(\n async (error: unknown) => {\n // Check if it's an Axios error first\n if (axios.isAxiosError(error)) {\n if (error.response?.status === 429) {\n if (\n // If the rate-limit error is for Instagram image caption, show the modal\n error.response?.data.detail?.service_name ===\n RateLimitedServiceName.instagram_image_caption\n ) {\n openMonetizationAwarenessModal({\n featureName: Nudge.InstagramImageCaption,\n trackingId: 'instagram-image-caption-enterprise-price-plan-modal',\n elementId: 'instagram-image-caption',\n pathname: window.location.pathname\n })\n } else if (\n error.response?.data.detail?.service_name ===\n RateLimitedServiceName.rewrite_product_description\n ) {\n const contactUsProps: ContactUsProps = {\n elementId: 'product-description-rewriter-feature-modal',\n userId: username ?? '',\n planListId: planListId ?? ''\n }\n const modalProps: EnterpriseFeatureModalProps = {\n featureName: EnterpriseNudgeFeature.ProductDescriptionRewriter,\n elementId: 'product-description-rewriter-rate-limit',\n handleCTAClick: () => handleContactUs(contactUsProps)\n }\n openEnterpriseFeatureModal(modalProps)\n } else {\n // If a rate-limit error is exceeded, this callback should notify the user\n await onRateLimitExceeded()\n }\n } else if (\n error.response?.data.detail?.error === ServerErrorType.outOfCredits\n ) {\n // If not enough credits, show the modal\n setShowInsufficientCreditsModal(true)\n } else if (\n error.response?.status === 403 &&\n error.response?.data?.detail?.url\n ) {\n window.location.href = error.response.data.detail.url\n return\n } else if (error.response?.status === 403) {\n // If not enough words, show the modal\n setShowInsufficientWordsModal(true)\n } else {\n // Not a known Axios error; rethrow\n throw error\n }\n // Return response from error so that the caller can handle it\n return error.response\n } else {\n // Not an Axios error; rethrow\n throw error\n }\n },\n [\n onRateLimitExceeded,\n openMonetizationAwarenessModal,\n openEnterpriseFeatureModal,\n username,\n planListId\n ]\n )\n\n /**\n * Generate an advertisement\n * @param productId\n * @param {AdTextType} adTextType The type of ad to generate (instagram, google, etc)\n */\n const apiGenerateAdvertisingText = useCallback(\n async ({\n productId,\n adTextType,\n splitOutput,\n referenceLinks,\n referenceFileIds,\n numOutputs,\n entityReferences,\n isReferencingKnowledgeBase\n }: {\n productId: string\n adTextType: AdTextType\n splitOutput?: boolean\n referenceLinks?: string[]\n referenceFileIds?: string[]\n numOutputs?: number\n entityReferences?: readonly EntityReference[]\n isReferencingKnowledgeBase?: boolean\n }) => {\n // Compute generationType based on adTextType (this is a shim until we directly accept generationType as a param)\n const generationType: ContentGenerationType =\n generationTypeMap[adTextType]\n\n let payload = {\n entity_references: entityReferences,\n reference_links: referenceLinks,\n reference_file_ids: referenceFileIds\n }\n const response = await apiGenerateContent({\n data: payload,\n params: {\n productId,\n generation_type: generationType,\n num_outputs: numOutputs,\n split_output: splitOutput,\n is_referencing_knowledge_base: isReferencingKnowledgeBase\n }\n }).catch(handleKnownGenerationErrors)\n\n return response?.data\n },\n [handleKnownGenerationErrors]\n )\n\n const apiGenerateBlogAdtext = useCallback(\n async (productId: string) => {\n const response = await apiGenerateBlogAdText({\n params: {\n generation_type: ContentGenerationType.advertising_text_blog,\n productId\n }\n }).catch(handleKnownGenerationErrors)\n\n return response?.data\n },\n [handleKnownGenerationErrors]\n )\n\n /**\n * Generate content for (one step of) a blog\n * @param {string} productId\n * @param {BlogStepper} blogStepper Which step of the blog to generate for\n * @param {[number, number][]} subSteps Only for blogStepper.FULL_ARTICLE; payload for which parts of article to generate\n */\n const apiGenerateBlog = useCallback(\n async (\n productId: string,\n blogStepper: BlogStepper,\n is_referencing_knowledge_base?: boolean,\n subSteps?: [number, number][],\n numOutputs?: number,\n entityReferences?: readonly EntityReference[],\n generationType?: ContentGenerationType,\n isSeoModeEnabled?: boolean,\n outlineHeaders?: string[],\n referenceLinks?: string[],\n referenceFileIds?: string[],\n primaryKeywordResearchResultId?: string,\n seoRegion?: CountryDetail\n ) => {\n let finalGenerationType: ContentGenerationType\n if (!generationType) {\n // Compute generationType based on blogStepper (TODO: pass generationType directly as param, rather than computing it here)\n const generationTypeMap: {\n [key in BlogStepper]: ContentGenerationType\n } = {\n [BlogStepper.TITLE]: ContentGenerationType.blog_title,\n [BlogStepper.OUTLINE]: ContentGenerationType.blog_outline,\n [BlogStepper.INTRO]: ContentGenerationType.blog_introduction,\n // Note this duplicate is intentional\n [BlogStepper.FULL_ARTICLE]: ContentGenerationType.blog_paragraph,\n [BlogStepper.PARAGRAPH]: ContentGenerationType.blog_paragraph,\n [BlogStepper.CONCLUSION]: ContentGenerationType.blog_conclusion\n }\n finalGenerationType = generationTypeMap[blogStepper]\n } else {\n finalGenerationType = generationType\n }\n\n const stepperTuples: [number, number][] = [[blogStepper, -1]]\n let payload = {\n stepper_tuples: stepperTuples, // [[step, subStep], ...]\n entity_references: entityReferences,\n outline_headers: outlineHeaders,\n reference_file_ids: referenceFileIds,\n reference_links: referenceLinks,\n primary_keyword_research_result_id: primaryKeywordResearchResultId,\n seo_region: seoRegion\n }\n\n // For full article, specify whether to generate intro, any number of paras, and conclusion\n if (\n blogStepper === BlogStepper.FULL_ARTICLE ||\n blogStepper === BlogStepper.PARAGRAPH\n ) {\n if (subSteps === undefined) {\n throw new Error(\n 'subSteps must be specified when generating paragraphs'\n )\n }\n payload.stepper_tuples = subSteps\n }\n\n const response = await apiGenerateContent({\n data: payload,\n params: {\n productId,\n generation_type: finalGenerationType,\n num_outputs: numOutputs,\n is_seo_mode_enabled: isSeoModeEnabled,\n is_referencing_knowledge_base\n }\n }).catch(handleKnownGenerationErrors)\n\n return response?.data\n },\n [handleKnownGenerationErrors]\n )\n\n /**\n * Request the generation API to generate descriptions for a product\n * @param {string} productId\n */\n const apiGenerateProductDescription = useCallback(\n async (\n productId: string,\n catalogueTemplateName?: string,\n isRewriterGeneration?: boolean\n ) => {\n return await apiGenerateContent({\n data: { catalogue_template_name: catalogueTemplateName },\n params: {\n productId,\n generation_type: ContentGenerationType.product_descriptions,\n is_rewriter_generation: isRewriterGeneration\n }\n }).catch(handleKnownGenerationErrors)\n },\n [handleKnownGenerationErrors]\n )\n\n /**\n * Cancel content generation\n * @param {string} productId\n */\n const apiCancelDescribeProduct = useCallback(async (productId: string) => {\n const config = {\n params: {\n productId\n }\n }\n const data = {}\n return apiClient.post(\n '/describe/cancel/',\n data, // Can be just 'null'\n config\n )\n }, [])\n\n const apiGenerateBatchContextual = useCallback(\n async (requestConfig: GenerateBatchInRequest) => {\n return await apiGenerateBatch(requestConfig).catch(\n handleKnownGenerationErrors\n )\n },\n [handleKnownGenerationErrors]\n )\n\n /** Request the contextual compose API to generate content and return it\n * immediately as a Description object.\n *\n * @param context Context required for generation e.g. prefix, -> ..., suffix -> ...\n * @returns A Description object with generated content\n */\n const apiGenerateComposeContextual = useCallback(\n async (context: ComposeContext) => {\n const response = await apiCompose({\n data: context\n }).catch(handleKnownGenerationErrors)\n\n return response\n },\n [handleKnownGenerationErrors]\n )\n\n /** Request the highlight command API to generate content and return it\n * immediately as a Description object.\n *\n * @param context Context required for generation e.g. prefix, selection, suffix.\n * @returns A Description object with generated content\n */\n const apiGenerateHighlightCommand = useCallback(\n async (context: HighlightCommandContext) => {\n const response = await apiHighlightCommand({\n data: context\n }).catch(handleKnownGenerationErrors)\n\n return response\n },\n [handleKnownGenerationErrors]\n )\n\n /** Request the highlight research command API to generate content and return it\n * immediately as a Description object.\n *\n * @param context Context required for generation e.g. prefix, selection, suffix.\n * @returns A Description object with generated content\n */\n const apiGenerateHighlightResearchCommand = useCallback(\n async (context: HighlightResearchCommandContext) => {\n const response = await apiHighlightResearchCommand({\n data: context\n }).catch(handleKnownGenerationErrors)\n\n return response\n },\n [handleKnownGenerationErrors]\n )\n\n const apiGenerateToneAnalysis = useCallback(\n async (context: ToneAnalyzerContext) => {\n const response = await apiAnalyzeTone({\n data: context\n }).catch(handleKnownGenerationErrors)\n\n return response\n },\n [handleKnownGenerationErrors]\n )\n\n const providerValue = useMemo(\n () => ({\n apiGenerateComposeContextual,\n apiGenerateHighlightCommand,\n apiGenerateHighlightResearchCommand,\n apiGenerateToneAnalysis,\n apiGenerateAdvertisingText,\n apiGenerateBlogAdtext,\n apiGenerateBlog,\n apiGenerateProductDescription,\n apiCancelDescribeProduct,\n apiGenerateBatchContextual,\n showInsufficientCreditsModal,\n setShowInsufficientCreditsModal,\n showInsufficientWordsModal,\n setShowInsufficientWordsModal,\n onRateLimitExceeded\n }),\n [\n apiGenerateComposeContextual,\n apiGenerateHighlightCommand,\n apiGenerateHighlightResearchCommand,\n apiGenerateToneAnalysis,\n apiGenerateAdvertisingText,\n apiGenerateBlogAdtext,\n apiGenerateBlog,\n apiGenerateProductDescription,\n apiCancelDescribeProduct,\n apiGenerateBatchContextual,\n showInsufficientCreditsModal,\n showInsufficientWordsModal,\n onRateLimitExceeded\n ]\n )\n\n return (\n \n {children}\n \n )\n}\n\n// ===== Hook & HOC =====\n/**\n * Hook for requesting various content types from the Generation API.\n */\nexport const useGenerationAPI = (_props?: GenerationAPIHookProps) => {\n // NOTE: props currently unused, but can be used to override the provider's defaults in the future\n const context = useContext(GenerationAPIContext)\n if (context === undefined) {\n throw new Error(\n 'useGenerationAPI must be used within a GenerationAPIProvider'\n )\n }\n return context\n}\n\nexport const withGenerationAPI = (props?: GenerationAPIHookProps) => {\n return (\n Component: React.ComponentType\n ) => {\n const Wrapper: React.FC> = (\n componentProps\n ) => {\n const generationAPIHookResult = useGenerationAPI(props)\n return (\n \n )\n }\n return Wrapper\n }\n}\n","import React from 'react'\n\nimport Typography from '@hypotenuse/common/src/atoms/Typography'\nimport { Box, BoxProps, TypographyProps } from '@material-ui/core'\n\ntype LabelFlagVariant = 'regular' | 'rectangular'\ninterface LabelFlagProps extends BoxProps {\n content: React.ReactNode\n variant: LabelFlagVariant\n leadingIcon?: React.ReactNode\n icon?: React.ReactNode\n typographyProps?: TypographyProps\n}\n\nconst LabelFlag: React.FC = React.memo((props) => {\n const {\n content,\n variant,\n leadingIcon,\n icon,\n typographyProps,\n ...restProps\n } = props\n return (\n \n {leadingIcon}\n \n {content}\n \n {icon && (\n \n {icon}\n \n )}\n \n )\n})\nexport default LabelFlag\n","import { apiClient } from '../utils/ApiClient'\nimport {\n OrganizationInfo,\n OrganizationInvite,\n OrganizationMember,\n OrganizationMemberRole,\n OrganizationMemberWordUsageState,\n OrganizationMemberWordUsageStateMap,\n PlanTier,\n StripeUpcomingInvoice\n} from '../utils/Interfaces'\nimport {\n CreditsHistoryLineChartData,\n OrganizationUpdateForm,\n TimePeriod\n} from '../utils/Interfaces'\n\n/**\n * Remove a user from an organization\n */\nexport const apiDeleteOrganizationMember = async ({\n organizationId,\n userId\n}: {\n organizationId: string\n userId: string\n}) => {\n return apiClient.delete(\n `/organization/${organizationId}/user/${userId}`\n )\n}\n\n/**\n * Update an organization member's role\n */\nexport const apiSetOrganizationMemberRole = async ({\n organizationId,\n userId,\n role\n}: {\n organizationId: string\n userId: string\n role: OrganizationMemberRole\n}) => {\n return apiClient.put(\n `/organization/${organizationId}/user/${userId}/role`,\n null,\n {\n params: { role }\n }\n )\n}\n\n/**\n * Create a 'public' invite for users to join an organization.\n */\nexport const apiCreatePublicOrganizationInvite = async ({\n organizationId\n}: {\n organizationId: string\n}) => {\n return await apiClient.post(\n `/organization/${organizationId}/invite`\n )\n}\n\n/**\n * Revoke an organization invite.\n * This prevents the invite from being used to join the organization.\n */\nexport const apiRevokeOrganizationInvite = async ({\n organizationId,\n inviteId\n}: {\n organizationId: string\n inviteId: string\n}) => {\n return await apiClient.delete(\n `/organization/${organizationId}/invite/${inviteId}`\n )\n}\n\n/**\n * Accept an organization invite & add the current user to the org.\n */\nexport const apiAcceptOrganizationInvite = async (inviteId: string) => {\n return await apiClient\n .post(`/invite/${inviteId}/accept`)\n .then((resp) => resp.data)\n}\n\n/**\n * Send an email inviting a user to join an organization.\n */\nexport const apiSendOrganizationInviteEmail = async ({\n organizationId,\n role,\n email\n}: {\n /**\n * The organization to send the invite for\n */\n organizationId: string\n /**\n * The role the user will have when they join the organization\n */\n role: OrganizationMemberRole\n /**\n * The email to send the invite to\n */\n email: string\n}) => {\n return await apiClient.post(\n `/organization/${organizationId}/invite-email`,\n null,\n { params: { role, email } }\n )\n}\n\n/**\n * Get information about an organization.\n * @param organizationId The organization to get information about\n */\nexport const apiFetchOrganizationInfo = (organizationId: string) => {\n return apiClient\n .get(`/organization/${organizationId}`)\n .then((resp) => resp.data)\n}\n\n/**\n * List the users in an organization.\n */\nexport const apiFetchOrganizationUsers = (organizationId: string) => {\n return apiClient\n .get(`/organization/${organizationId}/users`)\n .then((resp) => resp.data)\n}\n\n/**\n * Get the word usage states for an organization's users.\n */\nexport const apiListOrganizationMemberWordUsageStates = async (\n organizationId: string\n) => {\n const resp = await apiClient.get(\n `/organization/${organizationId}/users/word-usage`\n )\n return resp.data\n}\n\n/**\n * Update the chip usage limit for a user in an organization.\n */\nexport const apiUpdateOrganizationMemberChipUsageLimit = async ({\n organizationId,\n userId,\n wordsUsageLimit\n}: {\n organizationId: string\n userId: string\n wordsUsageLimit: number\n}) => {\n const resp = await apiClient.put(\n `/organization/${organizationId}/user/${userId}/words-usage-limit`,\n null,\n {\n params: {\n words_usage_limit: wordsUsageLimit\n }\n }\n )\n return resp.data\n}\n\n/**\n * Remove the chip usage limit for a user in an organization.\n */\nexport const apiRemoveOrganizationMemberChipUsageLimit = async ({\n organizationId,\n userId\n}: {\n organizationId: string\n userId: string\n}) => {\n const resp = await apiClient.delete(\n `/organization/${organizationId}/user/${userId}/words-usage-limit`\n )\n return resp.data\n}\n\nexport const apiHandleChangeUserCredits = (\n organizationName: string,\n username: string,\n creditsChange: number\n) => {\n return apiClient.post(\n `/organization/${organizationName}/user/${username}/change-credits`,\n null,\n {\n params: {\n credits_change: creditsChange\n }\n }\n )\n}\n\n/**\n * Get the organization's planTier.\n */\nexport const fetchOrganizationPlanTier = async (\n organizationId: string\n): Promise => {\n const response = await apiClient.get(\n `/organization/${organizationId}/premium_plan_tier`\n )\n return response.data\n}\n\n/**\n * Get the organization's upcoming invoice details.\n */\nexport const apiGetUpcomingInvoice = async (\n organizationId: string\n): Promise => {\n const response = await apiClient.get(\n `/organization/${organizationId}/upcoming-invoice`\n )\n return response.data\n}\n\nexport const apiUpdateUserMonthlyAssignedCredits = async (\n username: string,\n new_credits_assigned_monthly: number\n) => {\n return apiClient.post(\n `/organization/user/${username}/set_new_credits_assigned_monthly`,\n null,\n {\n params: {\n username: username,\n new_credits_assigned_monthly: new_credits_assigned_monthly\n }\n }\n )\n}\n\nexport const fetchOrganizationCreditHistory = async (\n organizationName: string,\n timePeriod: TimePeriod\n): Promise => {\n const resp = await apiClient.get(\n `/organization/${organizationName}/credits_history`,\n {\n params: {\n time_period: timePeriod\n }\n }\n )\n return resp.data\n}\n\nexport const apiUpdateOrganization = async (\n organizationName: string,\n organizationUpdateForm: OrganizationUpdateForm\n) => {\n const response = await apiClient.put(\n `/organization/${organizationName}`,\n organizationUpdateForm\n )\n return response.data\n}\n\nexport const apiGetOrganizationOwnerEmail = async (\n organizationName: string\n) => {\n const response = await apiClient.get(\n `/organization/${organizationName}/owner-contact-details`\n )\n return response.data\n}\n","import { apiClient } from '@hypotenuse/common/src/utils/ApiClient'\n\nimport { ContentGenerationType } from '../../interfaces/ContentGeneration'\n\nimport {\n CrawlJobInfo,\n ExistingContent,\n SortCriteria,\n TopicRecommendation,\n TopicRecommendationCollection,\n TopicRecommendationCollectionType,\n TopicRecommendationTriggerSource,\n TopicRecommenderSettings\n} from './types'\n\nexport const apiGetTopicRecommendation = async (\n topicId: string\n): Promise => {\n return apiClient\n .get(`/topic-recommendation/topic/${topicId}`)\n .then((resp) => resp.data)\n}\n\nexport const apiGetTopicRecommendationCrawlJobs = async (): Promise<\n Map\n> => {\n return apiClient\n .get>(`/topic-recommendation/crawl-jobs`)\n .then((resp) => resp.data)\n}\n\nexport const apiGetRecommendedTopics = async (): Promise => {\n return apiClient\n .get('/topic-recommendation/live-feed')\n .then((resp) => resp.data)\n}\n\nexport const apiCreateTopicRecommendations = async (\n sortCriteria: SortCriteria\n): Promise => {\n return apiClient\n .post('/topic-recommendation/live-feed', {\n sort_criteria: sortCriteria\n })\n .then((resp) => resp.data)\n}\n\nexport const apiGetTopicRecommenderSettings = async (): Promise => {\n return apiClient\n .get('/topic-recommendation/settings')\n .then((resp) => resp.data)\n}\n\nexport const apiGetSuggestedTopics = async (): Promise => {\n return apiClient\n .get('/topic-recommendation/suggestion-feed')\n .then((resp) => resp.data)\n}\n\nexport const apiCreateSuggestedTopicRecommendations = async (): Promise => {\n return apiClient\n .post(\n '/topic-recommendation/suggestion-feed'\n )\n .then((resp) => resp.data)\n}\n\nexport const apiGetRecommendedTools = async (): Promise<\n ContentGenerationType[]\n> => {\n return apiClient\n .post('/topic-recommendation/tools-recommendation')\n .then((resp) => resp.data)\n}\n\nexport interface TopicRecommendationResponse {\n recommendations: TopicRecommendation[]\n is_url_used_for_recommendation: boolean\n}\n\nexport const apiCreateContentRecommendation = async (\n url: string,\n contentGenerationTools: ContentGenerationType[],\n generationTriggerSource: TopicRecommendationTriggerSource,\n topicRecommendationCollectionType?: TopicRecommendationCollectionType,\n waitForInputGeneration?: boolean\n): Promise => {\n return apiClient\n .post(\n '/topic-recommendation/content-recommendation',\n {\n url,\n content_generation_tools: contentGenerationTools,\n topic_recommendation_collection_type: topicRecommendationCollectionType,\n generation_trigger_source: generationTriggerSource,\n wait_for_input_generation: waitForInputGeneration\n }\n )\n .then((resp) => resp.data)\n}\n\nexport const apiGetContentRecommendation = async (\n topicRecommendationCollectionType?: TopicRecommendationCollectionType\n): Promise => {\n return apiClient\n .get(\n '/topic-recommendation/content-recommendation',\n {\n params: {\n topic_recommendation_collection_type: topicRecommendationCollectionType\n }\n }\n )\n .then((resp) => resp.data)\n}\n\nexport const apiGetSingleContentRecommendation = async (\n contentRecommendationId: string\n): Promise => {\n return apiClient\n .get(\n `/topic-recommendation/content-recommendation/${contentRecommendationId}`\n )\n .then((resp) => resp.data)\n}\n\nexport const apiGetExistingContent = async (): Promise => {\n return apiClient\n .get('/topic-recommendation/existing-content')\n .then((resp) => resp.data)\n}\n\nexport const apiDeleteRecommendation = async (id: string) => {\n return apiClient\n .delete(`/topic-recommendation/topic/${id}`)\n .then((resp) => resp.data)\n}\n","import React from 'react'\n\nimport {\n Button,\n ButtonProps,\n createStyles,\n makeStyles\n} from '@material-ui/core'\nimport clsx from 'clsx'\n\nimport palette from './Colors'\n\nconst useStyles = makeStyles(() =>\n createStyles({\n root: {\n color: palette.white,\n backgroundColor: palette.gray[900],\n borderColor: palette.gray[900],\n '&:hover': {\n backgroundColor: palette.gray[800],\n borderColor: palette.gray[800],\n boxShadow: 'none'\n }\n }\n })\n)\n\ninterface Props extends ButtonProps {}\n\n/**\n * Secondary action button (for actions like \"Cancel\")\n */\nexport const BlackButton: React.FC = React.memo((props) => {\n const classes = useStyles()\n const { className, ...rest } = props\n return \n \n \n \n {recommendedTools.map((tool, i) => (\n \n ))}\n \n \n \n )\n}\n\ninterface SuggestionForYouCardProps {\n tool: ContentGenerationType\n key: number\n showBulkRewriterCard: boolean\n}\n\nconst SuggestionForYouCard: React.FC = (\n props: SuggestionForYouCardProps\n) => {\n const { tool, key, showBulkRewriterCard } = props\n const history = useHistory()\n const classes = useStyles()\n\n const iconSrc = useMemo(() => {\n if (tool === ContentGenerationType.product_descriptions) {\n return catalogIcon\n } else if (tool === ContentGenerationType.blog_article) {\n return blogIcon\n } else if (tool === ContentGenerationType.chat_message) {\n return hypoChatIcon\n } else if (tool === ContentGenerationType.chat_message_file_upload) {\n return hypodoc_logo\n } else {\n const adTextType = generationTypeToAdTextMap?.[tool] ?? AdTextType.google\n return toolLogos[adTextType as AdTextType]\n }\n }, [tool])\n\n const title = useMemo(() => {\n if (tool === ContentGenerationType.product_descriptions) {\n return `${\n showBulkRewriterCard ? 'Rewrite ' : ''\n } Product Descriptions (Bulk)`\n } else if (tool === ContentGenerationType.blog_article) {\n return 'Blog Article'\n } else if (tool === ContentGenerationType.chat_message) {\n return 'HypoChat'\n } else if (tool === ContentGenerationType.chat_message_file_upload) {\n return 'HypoDoc'\n } else {\n const adTextType = generationTypeToAdTextMap?.[tool] ?? AdTextType.google\n return adHeaders?.[adTextType as AdTextType] ?? 'Ad text'\n }\n }, [tool, showBulkRewriterCard])\n\n const subtitle = useMemo(() => {\n if (tool === ContentGenerationType.product_descriptions) {\n return showBulkRewriterCard\n ? 'Enhance thousands of existing product descriptions in bulk.'\n : 'Create thousands of SEO optimized product descriptions in bulk.'\n } else if (tool === ContentGenerationType.blog_article) {\n return 'Write SEO optimized blog articles with factual real time research.'\n } else if (tool === ContentGenerationType.chat_message) {\n return 'Real time web AI chat for research brainstorm ideas, multi-purpose content creation.'\n } else if (tool === ContentGenerationType.chat_message_file_upload) {\n return 'Upload a technical document and ask AI to analyze, answer questions, summarize and more.'\n } else {\n const adTextType = generationTypeToAdTextMap?.[tool] ?? AdTextType.google\n return adSubHeaders?.[adTextType as AdTextType] ?? 'Ad text'\n }\n }, [tool, showBulkRewriterCard])\n\n useEffect(() => {\n const elementId = title.toLowerCase().replace(/ /g, '-')\n handleElementShown(elementId, 'suggested-for-you', window.location.pathname)\n }, [title])\n\n const { rewriterTemplateId = '' } = useCatalogueTemplateContext() || {}\n\n const href = useMemo(() => {\n if (tool === ContentGenerationType.product_descriptions) {\n // TODO: Update this to include the catalogue template id params\n // Will update this in the next iteration\n return showBulkRewriterCard\n ? `/product-descriptions?openCreateCatalogueModal=1&catTemplateId=${rewriterTemplateId}`\n : '/product-descriptions?openCreateCatalogueModal=1'\n } else if (\n ![\n ContentGenerationType.product_descriptions,\n ContentGenerationType.blog_article,\n ContentGenerationType.chat_message,\n ContentGenerationType.chat_message_file_upload,\n ContentGenerationType.chat_message\n ].includes(tool)\n ) {\n const adTextType = generationTypeToAdTextMap?.[tool] ?? AdTextType.google\n if (adTextType === AdTextType.meta_desc) return 'collections/meta_desc'\n\n let _href = `${marketingRoutes[adTextType]}`\n\n const isHidden = 1\n _href += `?isHidden=${isHidden}`\n\n return _href\n }\n }, [tool, showBulkRewriterCard, rewriterTemplateId])\n\n const _onClick = useCallback(async () => {\n handleUserClick(\n `home-${title.toLowerCase().split(' ').join('-')}`,\n window.location.pathname,\n 'suggested-for-you'\n )\n if (tool === ContentGenerationType.blog_article) {\n try {\n const blog = await apiCreateBlog()\n\n let queryParams = `?blogId=${blog.blogId}`\n\n history.push({\n pathname: '/blog-post',\n search: queryParams\n })\n } catch (_error) {\n snackbar.show(\n 'Failed to create blog. Please contact our support team',\n {\n variant: 'error'\n }\n )\n }\n } else if (\n tool === ContentGenerationType.chat_message_file_upload ||\n tool === ContentGenerationType.chat_message\n ) {\n history.push('/hypochat')\n }\n }, [history, tool, title])\n\n const [{ loading: loadingClick }, onClick] = useAsyncFn(_onClick, [_onClick])\n\n return (\n \n \n \n {loadingClick && (\n \n \n \n )}\n {!loadingClick && (\n \n \n \n )}\n \n \n {title}\n \n \n {subtitle}\n \n \n \n \n \n )\n}\n\nexport default ToolLibrary\n","import React, { useCallback } from 'react'\n\nimport palette from '../../atoms/Colors'\nimport Stack from '../atoms/Stack'\nimport { Grid, Tab, Tabs, createStyles, makeStyles } from '@material-ui/core'\n\nimport { SearchBarWithDebounce } from '../SearchBar'\n\nimport { ToolCardGroupType } from './mappings'\nimport { useStore } from './useStore'\n\nconst useStyles = makeStyles((theme) =>\n createStyles({\n header: {\n margin: 0\n },\n tabBar: {\n marginTop: theme.spacing(3.5),\n '& .MuiTab-root': {\n fontSize: '0.875rem',\n minWidth: 'fit-content', // NOTE: Overrides the default absolute minWidth set by MUI\n borderRadius: theme.shape.borderRadius,\n padding: theme.spacing(0, 2.5),\n minHeight: theme.spacing(4.5)\n },\n '& .Mui-selected': {\n backgroundColor: palette.primary[50],\n border: 'none',\n transition: 'background-color color 0.2s ease-out',\n color: palette.primary[700]\n },\n '& .MuiTab-wrapper': {\n // NOTE: MUI v4 does not support suffix icon for tabs\n // This is a workaround to display the icon after the label\n flexDirection: 'row-reverse',\n gap: theme.spacing(1)\n }\n }\n })\n)\n\nconst TabsValues: string[] = Object.values(ToolCardGroupType)\n\nconst ToolLibraryHeader = () => {\n const classes = useStyles()\n const tabValue = useStore((store) => store.tab)\n const onTabChange = useStore((store) => store.setTab)\n const search = useStore((store) => store.search)\n const setSearch = useStore((store) => store.setSearch)\n\n /**\n * Searches through the templates by title and subtitle and filters them based on the search value\n * @param value\n *\n * @note If the search result is empty, it will return suggestion and ask ai anything cards\n */\n const handleOnSearch = useCallback(\n (value: string) => {\n setSearch(value)\n },\n [setSearch]\n )\n\n return (\n \n \n \n

Tool library
\n \n \n \n \n \n {\n onTabChange(value)\n }}\n selectionFollowsFocus\n >\n {TabsValues.map((tab) => (\n \n ))}\n \n \n )\n}\n\nexport default ToolLibraryHeader\n","export enum DocumentType {\n /**\n * A blog post\n */\n blog = 'blog',\n\n /**\n * A general document\n */\n general = 'general',\n\n /**\n * Instagram captions document\n */\n instagram = 'instagram',\n\n /**\n * Google ads document\n */\n google = 'google',\n\n /**\n * LinkedIn post document\n */\n linkedin = 'linkedin',\n\n /*\n * Facebook ads document\n */\n facebook = 'facebook',\n\n /*\n * Headline document\n */\n headline = 'headline',\n\n /*\n * Rewriter document\n */\n rewriter = 'rewriter',\n\n /*\n * Category page descriptions document\n */\n category_page = 'category_page',\n\n /*\n * Landing page content document\n */\n landing_page = 'landing_page',\n\n /*\n * Simplify language document\n */\n eli5 = 'eli5',\n\n /*\n * Email document\n */\n email = 'email',\n\n /*\n * Video intro document\n */\n video_intro = 'video_intro',\n\n /*\n * Meta title and description document\n */\n meta_desc = 'meta_desc',\n\n /*\n * Marketing angles document\n */\n marketing_angles = 'marketing_angles',\n\n /*\n * Press release document\n */\n press_release = 'press_release',\n\n /*\n * Summarise content document\n */\n summarise = 'summarise',\n\n /*\n * YouTube title document\n */\n youtube_title = 'youtube_title',\n\n /*\n * Bio writer document\n */\n bio_writer = 'bio_writer',\n\n /*\n * Ask anything document\n */\n ask_anything = 'ask_anything',\n /**\n * HypoChat document\n */\n chat = 'chat',\n /**\n * Folder document. Not really a document where you can edit content, but a folder to organize documents\n */\n folder = 'folder',\n /**\n * File document. Not really a document where you can edit content, but a user uploaded file\n */\n file = 'file',\n /**\n * Uploaded files folder. The default folder where user uploaded files are stored\n */\n uploaded_files_folder = 'uploaded_files_folder',\n /**\n * Product description document, it does not exist on backend, but we use it so that we can reuse the same logic for document type\n */\n product_description = 'product_description',\n /**\n * Rewrite for SEO document\n */\n rewrite_for_seo = 'rewrite_for_seo'\n}\n\nexport type folderTypes =\n | DocumentType.folder\n | DocumentType.uploaded_files_folder\n\n/**\n * Labels for document types\n */\nexport const DocumentTypeLabels: Record = {\n [DocumentType.blog]: 'Blog article',\n [DocumentType.general]: 'General',\n [DocumentType.instagram]: 'Instagram captions',\n [DocumentType.google]: 'Google ads',\n [DocumentType.linkedin]: 'LinkedIn posts',\n [DocumentType.facebook]: 'Facebook ads',\n [DocumentType.headline]: 'Website headlines',\n [DocumentType.rewriter]: 'Rewriter',\n [DocumentType.category_page]: 'Category page',\n [DocumentType.landing_page]: 'Landing page',\n [DocumentType.eli5]: 'Simplify language',\n [DocumentType.email]: 'Email',\n [DocumentType.video_intro]: 'Video intro',\n [DocumentType.meta_desc]: 'Meta title and description',\n [DocumentType.marketing_angles]: 'Marketing angles',\n [DocumentType.press_release]: 'Press release',\n [DocumentType.summarise]: 'Summarise content',\n [DocumentType.youtube_title]: 'YouTube title',\n [DocumentType.bio_writer]: 'Bio writer',\n [DocumentType.ask_anything]: 'Ask AI anything',\n [DocumentType.chat]: 'Chat',\n [DocumentType.folder]: 'Folder',\n [DocumentType.file]: 'Uploaded file',\n [DocumentType.uploaded_files_folder]: 'Uploaded files folder',\n [DocumentType.product_description]: 'Product description',\n [DocumentType.rewrite_for_seo]: 'SEO content optimizer'\n}\n\nexport const documentRoutes: Partial> = {\n [DocumentType.facebook]: '/advertising/facebook',\n [DocumentType.google]: '/advertising/google',\n [DocumentType.instagram]: '/advertising/instagram',\n [DocumentType.headline]: '/advertising/headline',\n [DocumentType.linkedin]: '/advertising/linkedin',\n [DocumentType.rewriter]: '/advertising/rewriter',\n [DocumentType.category_page]: '/advertising/category_page',\n [DocumentType.landing_page]: '/advertising/landing_page',\n [DocumentType.eli5]: '/advertising/eli5',\n [DocumentType.email]: '/advertising/email_copy',\n [DocumentType.video_intro]: '/advertising/video_intro',\n [DocumentType.meta_desc]: '/advertising/meta_desc',\n [DocumentType.marketing_angles]: '/advertising/marketing_angles',\n [DocumentType.press_release]: '/advertising/press_release',\n [DocumentType.summarise]: '/advertising/summarise_copy',\n [DocumentType.youtube_title]: '/advertising/youtube_title',\n [DocumentType.bio_writer]: '/advertising/bio_writer',\n [DocumentType.ask_anything]: '/advertising/ask_anything',\n [DocumentType.blog]: '/blog-post',\n [DocumentType.general]: '/documents',\n [DocumentType.chat]: '/hypochat',\n [DocumentType.folder]: '/documents/folder',\n [DocumentType.uploaded_files_folder]: '/documents/folder',\n [DocumentType.product_description]: '/catalog',\n [DocumentType.rewrite_for_seo]: '/advertising/rewrite_for_seo'\n}\n/**\n * A document\n */\nexport interface IDocument {\n /**\n * Unique ID\n */\n id: string\n /**\n * The organization that created the document\n */\n organization_id: string\n /**\n * The user that created the document\n */\n user_id?: string\n /**\n * Title of the document\n */\n title?: string\n /**\n * Content\n */\n content: string\n /**\n * When the document was created\n */\n created_at: number\n /**\n * When the document was last updated\n */\n updated_at: number\n /**\n * When the content was last updated\n */\n content_updated_at?: number\n\n /**\n * The type of document\n * @default DocumentType.general\n */\n type: DocumentType\n /**\n * Whether the document has been starred\n */\n starred?: boolean\n /**\n * Whether the document has been deleted (soft delete)\n */\n deleted?: boolean\n /**\n * When the document was deleted\n */\n deleted_at?: string\n /**\n * ID of the content item the document is linked to\n * @default null\n */\n linked_item_id?: string\n /**\n * ID of the parent document/folder the document is linked to.\n * @default null\n */\n folder_id?: string\n /**\n * Type of the parent document/folder the document is linked to.\n * @default null\n */\n folder_type?: string\n /**\n * Whether the document jas been deleted (hard delete).\n * NOTE: Hard delete means hiding the document from the trash bin.\n * It has not actually been deleted from the database.\n */\n hard_deleted?: boolean\n /**\n * When the document was hard deleted\n */\n hard_deleted_at?: string\n /**\n * Whether the document is hidden.\n * Defaults to true upon creation, but is updated to false once the document or its linked item is updated.\n */\n is_hidden?: boolean\n\n /**\n * Whether the document is private\n */\n is_private?: boolean\n}\n\nexport interface DocumentWithWordCount extends IDocument {\n /**\n * The number of words in the document\n */\n word_count: number\n}\n\nexport interface DocumentQuery {\n /**\n * Start index for pagination\n * @default 0\n */\n start?: number\n\n /**\n * End index for pagination\n * @default 10\n */\n end?: number\n\n /**\n * Search term for query\n */\n search?: string\n\n /**\n * Search term using the document folder id for the query\n * Searches for all documents that are children of the folder id\n */\n folder_id?: string\n\n /**\n * Type of the parent document/folder the document is linked to.\n */\n folder_type?: string\n\n /**\n * Sort by list of fields\n */\n sort_by?: string[]\n\n /**\n * Filter by types of documents\n * @default []\n */\n types?: DocumentType[]\n}\n\n/**\n * Enum for document sort fields in document management page\n */\nexport enum DocumentOverviewSortBy {\n CREATED_AT = 'created_at',\n UPDATED_AT = 'updated_at',\n CONTENT_UPDATED_AT = 'content_updated_at',\n SCORE = '_score',\n ID = 'id',\n TITLE = 'title'\n}\n\nexport interface Comment {\n /**\n * Unique ID\n */\n id: string\n /**\n * The document that the comment is linked to\n */\n document_id: string\n /**\n * ID of user who authored the comment\n */\n user_id: string\n /**\n * Content of the comment\n */\n content: string\n /**\n * When the comment was created\n */\n created_at: number\n /**\n * When the comment was last updated\n */\n updated_at: number\n /**\n * Whether the comment has been deleted (soft delete)\n */\n deleted?: boolean\n /**\n * When the comment was deleted\n */\n deleted_at?: string\n}\n","// AdTextFormProduct max lengths\nexport const LONG_FORM_MAX_PRODUCT_CHARS = 15_000\nexport const EXTRA_LONG_FORM_MAX_PRODUCT_CHARS = 200_000 // For extra-long summarization\nexport const SHORT_FORM_MAX_PRODUCT_CHARS = 800\nexport const BLOG_MAX_PRODUCT_CHARS = 500\n\n/**\n * Special case for press release – shorter input limit than the rest.\n */\nexport const PRESS_RELEASE_MAX_PRODUCT_CHARS = 400\nexport const LONG_FORM_MAX_ROWS = 30\nexport const LONG_FORM_MIN_ROWS = 5\nexport const SHORT_FORM_MIN_ROWS = 1\nexport const SHORT_FORM_MAX_ROWS = undefined\n\n// AdTextFormTargetAudience max lengths\nexport const MAX_TARGET_AUDIENCE_CHARS = 200\n\n// AdTextFormBrand max lengths\nexport const MAX_BRAND_CHARS = 200\n\n// AdTextFormKeywords max lengths\nexport const MAX_TOTAL_KEYWORDS_CHARS = 1000\n\n// Options for summarizing text\nexport const SUMMARIZE_OUTPUT_FORMAT_OPTIONS: [string, string] = [\n 'Paragraph',\n 'Bullet points'\n]\n\n// Options for bio writer\nexport const BIO_WRITER_TONE_OPTIONS: [string, string] = [\n 'Third person',\n 'First person'\n]\n\n// Default Ad Tone (for all templates besides summarizer and bio writer)\nexport const DEFAULT_AD_TONE = 'Conversational'\n\nexport const IMDA_DEFAULT_AD_TONE = 'Passionate'\nexport const IMDA_DEFAULT_TARGET_AUDIENCE = 'Corporates'\n\n// Enums of all MIME file types that can be uploaded\nexport enum SupportedFileTypes {\n PDF = 'application/pdf',\n DOCX = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n TXT = 'text/plain',\n CSV = 'text/csv',\n XLS = 'application/vnd.ms-excel',\n XLSX = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n PNG = 'image/png',\n WEBP = 'image/webp',\n JPEG = 'image/jpeg',\n TIFF = 'image/tiff',\n RAW = 'image/x-panasonic-raw', // there are actually multiple MIME types for raw images, but we support this for now\n AVIF = 'image/avif'\n}\n\n/**\n * Map supported file types to their corresponding user friendly names.\n */\nexport const SUPPORTED_FILE_TYPE_TO_NAME_MAP: {\n [key in SupportedFileTypes]: string\n} = {\n [SupportedFileTypes.PDF]: 'PDF',\n [SupportedFileTypes.DOCX]: 'DOCX',\n [SupportedFileTypes.TXT]: 'TXT',\n [SupportedFileTypes.CSV]: 'CSV',\n [SupportedFileTypes.XLS]: 'XLS',\n [SupportedFileTypes.XLSX]: 'XLSX',\n [SupportedFileTypes.PNG]: 'PNG',\n [SupportedFileTypes.WEBP]: 'WEBP',\n [SupportedFileTypes.JPEG]: 'JPEG',\n [SupportedFileTypes.TIFF]: 'TIFF',\n [SupportedFileTypes.RAW]: 'RAW',\n [SupportedFileTypes.AVIF]: 'AVIF'\n}\n\n/**\n * The default list of MIME types that can be uploaded.\n */\nexport const DEFAULT_UPLOADABLE_FILE_TYPES: SupportedFileTypes[] = [\n SupportedFileTypes.PDF,\n SupportedFileTypes.DOCX,\n SupportedFileTypes.TXT,\n SupportedFileTypes.CSV,\n SupportedFileTypes.XLS,\n SupportedFileTypes.XLSX\n]\n\nexport const IMAGE_FILE_TYPES = [\n SupportedFileTypes.JPEG,\n SupportedFileTypes.PNG\n]\n","/**\n * This module provides Help Scout's Beacon script via a hook.\n */\nimport React, { useEffect, useState } from 'react'\n\nimport { LiveChatLoaderProvider, useChat } from 'react-live-chat-loader'\n\nimport { Beacon } from './types'\n\nexport interface BeaconProps {\n /**\n * The window.Beacon object - this should be undefined until the script is fully loaded.\n */\n beacon?: Beacon\n isBeaconLoaded: boolean\n disableBeaconLinks?: boolean\n}\n\n/**\n * Default value in the context is undefined.\n * Once the global Beacon script in the