{"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","IS_LOV_ENABLED_KEY","openChat","InnerSnackbarUtilsConfigurator","setUseSnackbarRef","useSnackbar","useSnackbarRef","useSnackbarRefProp","SnackbarConfigurator","defaultOptions","onClick","closeSnackbar","fontWeight","defaultVariantOptions","autoHideDuration","SnackbarContentEllipsisDiv","styled","div","msg","options","mergedOptions","enqueueSnackbar","close","DialogTransition","Transition","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_TYPE_TO_GENERATION_FILTER_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","unregister","serviceWorker","ready","registration"],"mappings":"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","file":"static/js/main.7d018191.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 || 'http://localhost:8000'\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\nexport const IS_LOV_ENABLED_KEY = 'is_lov_enabled'\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