{"version":3,"file":"js/979-c2f7caeec43194a1ff94.js","mappings":"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","sources":["webpack://realm_app/./app/javascript/components/AvatarOrInitials.tsx","webpack://realm_app/./app/javascript/components/BaseModal/index.tsx","webpack://realm_app/./app/javascript/components/InternalLinks.module.scss?d10c","webpack://realm_app/./app/javascript/components/InternalLinks.tsx","webpack://realm_app/./app/javascript/components/Markdown/styles.module.scss?e41c","webpack://realm_app/./app/javascript/components/Markdown/index.tsx","webpack://realm_app/./app/javascript/components/MarketingAndPropertyPages/Accordion/AccordionItem.tsx","webpack://realm_app/./app/javascript/components/MarketingAndPropertyPages/Accordion/index.tsx","webpack://realm_app/./app/javascript/components/MarketingAndPropertyPages/Cta/styles.module.scss?b231","webpack://realm_app/./app/javascript/components/MarketingAndPropertyPages/Cta/index.tsx","webpack://realm_app/./app/javascript/components/MarketingAndPropertyPages/StyledRichText/styles.module.scss?3e7c","webpack://realm_app/./app/javascript/components/MarketingAndPropertyPages/StyledRichText/index.tsx","webpack://realm_app/./app/javascript/components/MarketingSite/CtaSmall/styles.module.scss?fd08","webpack://realm_app/./app/javascript/components/MarketingSite/CtaSmall/index.tsx","webpack://realm_app/./app/javascript/components/MarketingAndPropertyPages/Accordion/MarketingAccordion.tsx","webpack://realm_app/./app/javascript/components/MarketingSite/PageContent/Section/Blog/styles.module.scss?bc18","webpack://realm_app/./app/javascript/components/MarketingSite/PageContent/Section/Blog/index.tsx","webpack://realm_app/./app/javascript/components/MarketingSite/PageContent/Section/Cards/styles.module.scss?3e77","webpack://realm_app/./app/javascript/components/MarketingSite/PageContent/Section/Cards/index.tsx","webpack://realm_app/./app/javascript/components/MarketingSite/PageContent/Section/Faq/styles.module.scss?0e31","webpack://realm_app/./app/javascript/components/MarketingSite/PageContent/Section/Faq/index.tsx","webpack://realm_app/./app/javascript/components/MarketingSite/PageContent/Section/List/styles.module.scss?c0fa","webpack://realm_app/./app/javascript/components/MarketingSite/PageContent/Section/List/index.tsx","webpack://realm_app/./app/javascript/components/MarketingSite/PageContent/Section/Menu/styles.module.scss?7ae4","webpack://realm_app/./app/javascript/components/MarketingSite/PageContent/Section/Menu/index.tsx","webpack://realm_app/./app/javascript/components/MarketingSite/PageContent/Section/ScrollingCards/styles.module.scss?eb23","webpack://realm_app/./app/javascript/components/MarketingSite/PageContent/Section/ScrollingCards/index.tsx","webpack://realm_app/./app/javascript/components/MarketingSite/PageContent/Section/Table/styles.module.scss?4157","webpack://realm_app/./app/javascript/components/MarketingSite/PageContent/Section/Table/index.tsx","webpack://realm_app/./app/javascript/components/MarketingSite/PageContent/Section/Text/styles.module.scss?f8a0","webpack://realm_app/./app/javascript/components/MarketingSite/PageContent/Section/Text/index.tsx","webpack://realm_app/./app/javascript/components/MarketingSite/PageContent/Section/styles.module.scss?70a2","webpack://realm_app/./app/javascript/components/MarketingSite/PageContent/Section/index.tsx","webpack://realm_app/./app/javascript/components/MarketingSite/PageContent/styles.module.scss?ff5d","webpack://realm_app/./app/javascript/components/MarketingSite/PageContent/index.tsx","webpack://realm_app/./app/javascript/components/NikhilButton/styles.module.scss?6aab","webpack://realm_app/./app/javascript/components/NikhilButton/index.tsx","webpack://realm_app/./app/javascript/components/PropertyPages/ToolTip/styles.module.scss?1839","webpack://realm_app/./app/javascript/components/PropertyPages/ToolTip/index.tsx","webpack://realm_app/./app/javascript/components/WistiaVideo.module.scss?4865","webpack://realm_app/./app/javascript/components/WistiaVideo.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/AeEventSignup/components/Container.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/AeEventSignup/screens/PickTask.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/AeEventSignup/screens/UserInfo.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/AeEventSignup/screens/ScheduleMeeting.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/AeEventSignup/screens/PayDeposit.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/AeEventSignup/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/Components/Card.module.scss?ff9c","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/Components/Card.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/FlippingCards/styles.module.scss?0cad","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/FlippingCards/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/Backers/styles.module.scss?a36d","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/Backers/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/BlogHighlights/styles.module.scss?b3e2","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/BlogHighlights/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/Cards/styles.module.scss?b8dd","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/Cards/index.tsx","webpack://realm_app/./app/javascript/components/MarketingAndPropertyPages/Accordion/CmsAccordion.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/CustomerLogos/styles.module.scss?d123","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/CustomerLogos/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/FormattedText/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Hero/styles.module.scss?076f","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Hero/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/ImageQuotes/styles.module.scss?af83","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/ImageQuotes/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/LandingCards/styles.module.scss?bb72","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/LandingCards/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/ListCard/styles.module.scss?fb8d","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/ListCard/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/OpenRoles/styles.module.scss?5a0e","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/OpenRoles/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/PhotoCard/styles.module.scss?4d73","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/PhotoCard/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/Press/styles.module.scss?8689","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/Press/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/ScrollingCards/styles.module.scss?d53c","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/ScrollingCards/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/QuotesCard/styles.module.scss?aab3","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/QuotesCard/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/Team/styles.module.scss?e249","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/Section/Team/index.tsx","webpack://realm_app/./app/javascript/utils/slugify.ts","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/styles.module.scss?bc5a","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/types.ts","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPage/utils.ts","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/CtaAdjustment/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/AddressAutocompleteField/styles.module.scss?bdaa","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/AddressAutocompleteField/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/Hero/styles.module.scss?358d","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/Hero/Media.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/Hero/CtaButton.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/Hero/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/GetStarted/styles.module.scss?be92","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/GetStarted/Background.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/Sections/Components/TitleHeader/styles.module.scss?31c7","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/Sections/Components/TitleHeader/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/GetStarted/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/BrowseStates/styles.module.scss?34ab","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/BrowseStates/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/Footer/styles.module.scss?916f","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/Footer/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/Sections/CustomEmbed/styles.module.scss?a827","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/Sections/CustomEmbed/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/Sections/InfoPoints/styles.module.scss?7d51","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/Sections/InfoPoints/InfoPoint.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/Sections/InfoPoints/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/Sections/ImageQuotes/styles.module.scss?91e6","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/Sections/ImageQuotes/ImageQuote.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/Sections/ImageQuotes/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/Sections/PhotoCards/styles.module.scss?9230","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/Sections/PhotoCards/Card.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/Sections/PhotoCards/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/Sections/ListCards/styles.module.scss?9ce6","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/Sections/ListCards/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/Sections/SocialProof/styles.module.scss?2395","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/Sections/SocialProof/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/Sections/TableOfContents/styles.module.scss?655d","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/Sections/TableOfContents/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/Sections/FoldingItems/styles.module.scss?4a1e","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/Sections/FoldingItems/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/Sections/InfoTable/styles.module.scss?8d62","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/Sections/InfoTable/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/styles.module.scss?cb2f","webpack://realm_app/./app/javascript/pages/_serverRendered/CmsPageV2/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/EventSignup/Alert.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/EventSignup/SignupForm.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/EventSignup/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomeSearch/HomeSearchListings.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomeownerSiteVisit/state.ts","webpack://realm_app/./app/javascript/pages/_serverRendered/HomeownerSiteVisit/NotFound.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomeownerSiteVisit/components/VendorDetails.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomeownerSiteVisit/components/PointOfContactLines.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomeownerSiteVisit/components/PointOfContact.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomeownerSiteVisit/Canceled.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomeownerSiteVisit/AlreadyResceduledModal.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomeownerSiteVisit/TooCloseToEventTimeModal.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomeownerSiteVisit/RescheduleWarningModal.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomeownerSiteVisit/Scheduled.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomeownerSiteVisit/api.ts","webpack://realm_app/./app/javascript/pages/_serverRendered/HomeownerSiteVisit/Availabilities/Calendar/types.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomeownerSiteVisit/Availabilities/Calendar/styles.module.scss?f5a8","webpack://realm_app/./app/javascript/pages/_serverRendered/HomeownerSiteVisit/Availabilities/Calendar/Month.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomeownerSiteVisit/Availabilities/Calendar/Week.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomeownerSiteVisit/Availabilities/Calendar/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomeownerSiteVisit/Reschedule/UpdateAvailability/ValidationCheck.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomeownerSiteVisit/Reschedule/UpdateAvailability/Slots/styles.module.scss?8cc1","webpack://realm_app/./app/javascript/pages/_serverRendered/HomeownerSiteVisit/Reschedule/UpdateAvailability/Slots/Slot.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomeownerSiteVisit/Reschedule/UpdateAvailability/Slots/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomeownerSiteVisit/Reschedule/UpdateAvailability/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomeownerSiteVisit/Reschedule/RescheduleReason.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomeownerSiteVisit/Reschedule/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomeownerSiteVisit/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Homepage/Hero/styles.module.scss?9c4a","webpack://realm_app/./app/javascript/pages/_serverRendered/Homepage/Hero/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Homepage/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Hero/Background/styles.module.scss?3afd","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Hero/Background/Image.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Hero/Background/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Components/SectionTitle/styles.module.scss?b0bc","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Components/SectionTitle/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Hero/Headline/Rotator/styles.module.scss?1c4b","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Hero/Headline/Rotator/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Hero/Headline/styles.module.scss?8918","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Hero/Headline/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Hero/SubHeadline/styles.module.scss?e32b","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Hero/SubHeadline/index.tsx","webpack://realm_app/./app/javascript/svgs/arrow.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Hero/NavLink/styles.module.scss?7f90","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Hero/NavLink/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Hero/styles.module.scss?7a7d","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Hero/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Header/styles.module.scss?f2e3","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Header/Logo.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Header/DesktopNavigation/styles.module.scss?3598","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Header/DesktopNavigation/QRCode.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Header/DesktopNavigation/Link.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Header/DesktopNavigation/index.tsx","webpack://realm_app/./app/javascript/svgs/hamburger.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Header/MobileNavigation/styles.module.scss?ade4","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Header/MobileNavigation/SubNavigation.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Header/MobileNavigation/NavLink.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Header/MobileNavigation/Link.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Header/MobileNavigation/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Header/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Components/CallToAction/styles.module.scss?dc74","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Components/CallToAction/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/CallToAction/styles.module.scss?b7af","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/CallToAction/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Footer/styles.module.scss?fe95","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Footer/Link.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Footer/LinkCategory.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Components/QRCode.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Components/useAdjustLink.ts","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Footer/DownloadCategory.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Footer/index.tsx","webpack://realm_app/./app/javascript/svgs/play.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Components/Image/styles.module.scss?5753","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Components/Image/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Sections/CustomerSocialProof/Testimonials/styles.module.scss?d60f","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Sections/CustomerSocialProof/Testimonials/Testimonial.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Sections/CustomerSocialProof/Testimonials/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Sections/CustomerSocialProof/styles.module.scss?d924","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Sections/CustomerSocialProof/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Sections/AppPreview/Previews/styles.module.scss?97a0","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Sections/AppPreview/Previews/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Sections/AppPreview/styles.module.scss?f7d8","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Sections/AppPreview/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Sections/MediaSocialProof/styles.module.scss?65d3","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Sections/MediaSocialProof/Image.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Sections/MediaSocialProof/Testimonials.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Sections/MediaSocialProof/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Sections/ImageQuotes/styles.module.scss?5bd1","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Sections/ImageQuotes/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Sections/ListCard/styles.module.scss?80c9","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Sections/ListCard/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Sections/PhotoCards/TitleHeader/styles.module.scss?ebc6","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Sections/PhotoCards/TitleHeader/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Sections/PhotoCards/styles.module.scss?e30f","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Sections/PhotoCards/Card.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/Sections/PhotoCards/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/styles.module.scss?e1a6","webpack://realm_app/./app/javascript/pages/_serverRendered/HomepageV2212/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Learn/content.ts","webpack://realm_app/./app/javascript/pages/_serverRendered/Learn/styles.module.scss?f4c3","webpack://realm_app/./app/javascript/pages/_serverRendered/Learn/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Meet/content.ts","webpack://realm_app/./app/javascript/pages/_serverRendered/Meet/styles.module.scss?49a0","webpack://realm_app/./app/javascript/pages/_serverRendered/Meet/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Privacy/index.tsx","webpack://realm_app/./app/javascript/components/NikhilInput/styles.module.scss?3559","webpack://realm_app/./app/javascript/components/NikhilInput/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectPricing/ProjectList/Search/styles.module.scss?9d75","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectPricing/ProjectList/Search/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectPricing/ProjectList/styles.module.scss?028f","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectPricing/ProjectList/Project.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectPricing/ProjectList/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectPricing/SelectedProjectList/Project.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectPricing/SelectedProjectList/styles.module.scss?dfb6","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectPricing/SelectedProjectList/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectPricing/CtaSection/styles.module.scss?aa91","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectPricing/CtaSection/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectPricing/Calculations/styles.module.scss?078b","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectPricing/Calculations/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectPricing/QRCode.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectPricing/styles.module.scss?4ca6","webpack://realm_app/./app/javascript/pages/_serverRendered/ProjectPricing/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Public/State/styles.module.scss?6849","webpack://realm_app/./app/javascript/pages/_serverRendered/Public/State/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Public/shared/IntroCopy/styles.module.scss?5ed9","webpack://realm_app/./app/javascript/pages/_serverRendered/Public/shared/IntroCopy/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Public/shared/PopularCities/styles.module.scss?dcdf","webpack://realm_app/./app/javascript/pages/_serverRendered/Public/shared/PopularCities/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Public/shared/Projects/styles.module.scss?cfdc","webpack://realm_app/./app/javascript/pages/_serverRendered/Public/shared/Projects/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Public/shared/Section/styles.module.scss?66dc","webpack://realm_app/./app/javascript/pages/_serverRendered/Public/shared/Section/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Public/shared/Statistics/styles.module.scss?970a","webpack://realm_app/./app/javascript/pages/_serverRendered/Public/shared/Statistics/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/ChartContainer/styles.module.scss?f216","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/ChartContainer/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/FindPropertyCTA/styles.module.scss?d9aa","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/FindPropertyCTA/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/GetRealmScoreCTA/styles.module.scss?d7c5","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/GetRealmScoreCTA/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/Section/styles.module.scss?c6a9","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/Section/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/Statistics/AverageBuildableSquareFeet/styles.module.scss?0a4f","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/Statistics/AverageBuildableSquareFeet/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/Statistics/AverageHomeValue/styles.module.scss?0f6d","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/Statistics/AverageHomeValue/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/Statistics/AverageHomeValuePotentialIncrease/styles.module.scss?8de4","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/Statistics/AverageHomeValuePotentialIncrease/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/Statistics/AverageSalePrice/styles.module.scss?451a","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/Statistics/AverageSalePrice/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/Statistics/PercentialBarGraph/styles.module.scss?b034","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/Statistics/PercentialBarGraph/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/Statistics/StatPill/styles.module.scss?3feb","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/Statistics/StatPill/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/RateTable/styles.module.scss?5a84","webpack://realm_app/./app/javascript/pages/_serverRendered/RateTable/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Terms/styles.module.scss?c636","webpack://realm_app/./app/javascript/pages/_serverRendered/Terms/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorContract/styles.module.scss?c311","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorContract/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSignup/styles.module.scss?83a9","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSignup/PageHeader.module.scss?c3a2","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSignup/PageHeader.tsx","webpack://realm_app/./app/javascript/svgs/vendor-signup/ThankYou.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSignup/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/utils.ts","webpack://realm_app/./app/javascript/svgs/location-off.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/components/LocalCard.module.scss?ca4c","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/components/LocalCard.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/components/Message/styles.module.scss?0b93","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/components/Message/index.tsx","webpack://realm_app/./app/javascript/svgs/info-filled.tsx","webpack://realm_app/./app/javascript/svgs/person.tsx","webpack://realm_app/./app/javascript/svgs/chevron-right.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/components/InfoList/styles.module.scss?9d1e","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/components/InfoList/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/PointOfContact/ContactInfo.module.scss?25b7","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/PointOfContact/ContactInfo.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/PointOfContact/styles.module.scss?78e1","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/PointOfContact/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/components/VSVLightbox.module.scss?af78","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/components/VSVLightbox.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/components/VSVSheetModal.module.scss?f523","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/components/VSVSheetModal.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/HouseholdDetails/HomeownerDetails.module.scss?6227","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/HouseholdDetails/HomeownerDetails.tsx","webpack://realm_app/./app/javascript/svgs/home.tsx","webpack://realm_app/./app/javascript/svgs/handyman.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/HouseholdDetails/styles.module.scss?2eb6","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/HouseholdDetails/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/CompletedLayout.module.scss?d8a0","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/CompletedLayout.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/Expired.tsx","webpack://realm_app/./app/javascript/svgs/alarm-off.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/Unavailable.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/components/VSVModal.module.scss?ea49","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/components/VSVModal.tsx","webpack://realm_app/./app/javascript/svgs/event-busy.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/FailureModal.tsx","webpack://realm_app/./app/javascript/svgs/chat-bubble.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/MismatchedModal.module.scss?9717","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/MismatchedModal.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/DeclineModal.tsx","webpack://realm_app/./app/javascript/svgs/access-time-filled.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/Availabilities/styles.module.scss?4102","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/Availabilities/index.tsx","webpack://realm_app/./app/javascript/svgs/event-available.tsx","webpack://realm_app/./app/javascript/svgs/calendar.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/ConfirmBookingModal.module.scss?400e","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/ConfirmBookingModal.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/EarlierDaysAvailableModal.module.scss?13cb","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/EarlierDaysAvailableModal.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/Unscheduled.module.scss?a212","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/AvailabilitySelection.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/Unscheduled.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/CancelModal.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/Reschedule.module.scss?438b","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/Reschedule.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/Scheduled.module.scss?f4d4","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/Scheduled.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/Canceled.module.scss?f03a","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/Canceled.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/Declined.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/components/NewLayout.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/components/VendorContactSelect.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/SchedulerAssign.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/ScreeningStep.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/Screening.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/Reassigned.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/SiteVisitCanceled.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/SiteVisitExpired.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/SiteVisitDeclined.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/SiteVisitDisqualified.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/Blocked.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/styles.module.scss?2fad","webpack://realm_app/./app/javascript/pages/_serverRendered/VendorSiteVisit/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/landing/ContractorsNearMe/ProjectListings/styles.module.scss?d967","webpack://realm_app/./app/javascript/pages/_serverRendered/landing/ContractorsNearMe/ProjectListings/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Public/styles.module.scss?6e35","webpack://realm_app/./app/javascript/pages/_serverRendered/landing/ContractorsNearMe/styles.module.scss?aded","webpack://realm_app/./app/javascript/pages/_serverRendered/landing/ContractorsNearMe/index.tsx","webpack://realm_app/./app/javascript/components/BarChartSimple/styles.module.scss?d7bc","webpack://realm_app/./app/javascript/components/BarChartSimple/index.tsx","webpack://realm_app/./app/javascript/components/MarketingAndPropertyPages/Compare/styles.module.scss?e306","webpack://realm_app/./app/javascript/components/MarketingAndPropertyPages/Compare/Comparison.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/landing/HomeValuesNearMe/styles.module.scss?846e","webpack://realm_app/./app/javascript/pages/_serverRendered/landing/HomeValuesNearMe/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/landing/PropertyPotential/styles.module.scss?ada5","webpack://realm_app/./app/javascript/pages/_serverRendered/landing/PropertyPotential/index.tsx","webpack://realm_app/./app/javascript/recoil/events.ts","webpack://realm_app/./app/javascript/svgs/clipboard.tsx","webpack://realm_app/./app/javascript/svgs/contractor-2.tsx","webpack://realm_app/./app/javascript/svgs/dollar-sign.tsx","webpack://realm_app/./app/javascript/svgs/email-2.tsx","webpack://realm_app/./app/javascript/svgs/email.tsx","webpack://realm_app/./app/javascript/svgs/money.tsx","webpack://realm_app/./app/javascript/svgs/phone.tsx","webpack://realm_app/./app/javascript/svgs/tools.tsx","webpack://realm_app/./app/javascript/components/MarketingAndPropertyPages/Accordion/styles.module.scss?b229","webpack://realm_app/./app/javascript/components/MarketingSite/shared/legal.module.scss?c756","webpack://realm_app/./app/javascript/pages/_serverRendered/HomeSearch/styles.module.scss?b935"],"sourcesContent":["import React, { FC } from 'react'\nimport cx from 'classnames'\nimport { getInitials } from 'utils/formatting'\n\ninterface AvatarOrInitialsProps {\n avatarUrl?: string | null\n name?: string | null\n className?: string\n}\n\nconst AvatarOrInitials: FC = ({ avatarUrl, name, className }) => {\n if (avatarUrl) {\n return (\n \n )\n }\n if (name) {\n return (\n
\n {getInitials(name)}\n
\n )\n }\n return null\n}\n\nexport default AvatarOrInitials\n","import React, { FC, Fragment, PropsWithChildren, Ref } from 'react'\nimport { Dialog, Transition } from '@headlessui/react'\nimport cx from 'classnames'\n\ninterface BaseModalProps {\n open: boolean\n setOpen: (value: boolean) => void\n width?: 'xs' | 'sm' | 'md' | 'xl' | '2xl' | '3xl' | 'full'\n className?: string\n dialogPanelRef?: Ref\n}\n\nconst BaseModal: FC> = ({\n children,\n open,\n setOpen,\n width = 'xl',\n dialogPanelRef,\n className,\n}) => {\n return (\n \n \n \n
\n \n
\n
\n \n \n {children}\n \n \n
\n
\n
\n
\n )\n}\n\nexport default BaseModal\n","// extracted by mini-css-extract-plugin\nexport default {\"internalLinks\":\"syFCs_UVpoDlldqKADtT\"};","import React, { FC } from 'react'\nimport styles from './InternalLinks.module.scss'\nimport cx from 'classnames'\n\nexport interface InternalLink {\n label: string\n destination_url: string\n source_url: string\n}\n\nexport interface Props {\n links: InternalLink[]\n className?: string\n}\n\nconst InternalLinks: FC = ({ links, className }) => {\n return (\n
\n {links.map((link) => {\n return (\n \n )\n })}\n
\n )\n}\n\nexport default InternalLinks\n","// extracted by mini-css-extract-plugin\nexport default {\"markdown\":\"A3TmDIAkUZZT4AStfGqw\"};","import React, { FC } from 'react'\nimport classnames from 'classnames'\nimport MarkdownElement from 'markdown-to-jsx'\nimport type { MarkdownToJSX } from 'markdown-to-jsx'\n\nimport styles from './styles.module.scss'\n\nconst Markdown: FC<{\n [key: string]: any\n children: string\n className?: string\n options?: MarkdownToJSX.Options\n}> = ({ className, ...other }) => (\n
\n \n
\n)\n\nexport default Markdown\n","import cx from 'classnames'\nimport React, { FC, PropsWithChildren, useCallback } from 'react'\n\nimport styles from './styles.module.scss'\n\ntype AccordionItemProps = {\n index: number\n selectedIndices: number[]\n title: string\n toggleIndex: (index?: number) => void\n}\n\nconst AccordionItem: FC> = ({\n children,\n index,\n selectedIndices,\n title,\n toggleIndex,\n}) => {\n const handleClick = useCallback(() => {\n toggleIndex(index)\n }, [toggleIndex, index])\n\n return (\n
\n \n
{children}
\n
\n )\n}\n\nexport default AccordionItem\n","import React, { FC, ReactNode, useCallback, useState } from 'react'\n\nimport styles from './styles.module.scss'\n\ninterface AccordionProps {\n preselectedItems?: number[]\n preopen?: boolean\n children?: (args: { selectedIndices: number[]; toggleIndex: (index: number) => void }) => ReactNode\n}\n\nconst Accordion: FC = ({ children, preopen, preselectedItems }) => {\n const [selectedIndices, setSelectedIndices] = useState(\n preselectedItems ? preselectedItems : preopen ? [0] : []\n )\n const toggleIndex = useCallback(\n (index: number) => {\n if (selectedIndices.includes(index)) {\n setSelectedIndices(selectedIndices.filter((e) => e !== index))\n } else {\n setSelectedIndices([...selectedIndices, index])\n }\n },\n [selectedIndices, setSelectedIndices]\n )\n\n return (\n
\n {children &&\n children({\n selectedIndices,\n toggleIndex,\n })}\n
\n )\n}\n\nexport default Accordion\n","// extracted by mini-css-extract-plugin\nexport default {\"cta\":\"cOlEMS4f3Hm9S_n6W7sr\",\"primary\":\"dx57PmExg2ZeO6eWIV7M\"};","import classnames from 'classnames'\nimport React, { FC, MouseEvent, ReactNode, useCallback } from 'react'\nimport { track } from 'utils/analytics'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n children: ReactNode\n className?: string\n cta?: string\n id?: string\n href: string\n target?: string\n type?: 'primary'\n}\n\nconst Cta: FC = ({ children, className, cta, id, href, target, type }) => {\n const handleClick = useCallback(\n async (event: MouseEvent) => {\n if (!cta) return\n event.preventDefault()\n await track('click cta', { cta, module: 'cms-marketing' })\n if (target === '_blank') {\n window.open(href, '_blank')?.focus()\n } else {\n window.location.href = href\n }\n },\n [cta, href, target]\n )\n\n if (!href) return null\n\n return (\n \n {children}\n \n )\n}\n\nexport default Cta\n","// extracted by mini-css-extract-plugin\nexport default {\"styledRichText\":\"bQetMNoSISA2dia1sgPu\"};","import cx from 'classnames'\nimport React, { FC, PropsWithChildren, useCallback } from 'react'\nimport { RichText, RichTextBlock } from 'prismic-reactjs'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n richText?: RichTextBlock[]\n dataReplacements?: { [key: string]: string | ((key: string) => string | null) } | ((key: string) => string | null)\n}\n\nconst StyledRichText: FC = ({ richText, dataReplacements }) => {\n const htmlSerializer = useCallback(\n (type, element, content, children, key) => {\n // If this is a 'data' custom type, then we want to do a\n // data replacement.\n if (type == 'label' && element.data?.label == 'data') {\n let replaced = content\n if (dataReplacements) {\n if (typeof dataReplacements === 'function') {\n replaced = dataReplacements(content)\n } else if (typeof dataReplacements === 'object') {\n const value = dataReplacements[content]\n if (typeof value === 'function') {\n replaced = value(key)\n } else if (typeof value !== 'undefined') {\n replaced = value\n }\n }\n }\n return {replaced}\n }\n return null\n },\n [dataReplacements]\n )\n\n return (\n
\n \n
\n )\n}\n\nexport const StyledText: FC> = ({ children, className }) => (\n
{children}
\n)\n\nexport default StyledRichText\n","// extracted by mini-css-extract-plugin\nexport default {\"ctaSmall\":\"ovhwhdEpsRaMbtzl301F\"};","import React, { FC, ReactNode } from 'react'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n children: ReactNode\n href: string\n}\n\nconst CtaSmall: FC = ({ children, href }) => (\n \n {children}\n \n)\n\nexport default CtaSmall\n","import React, { FC } from 'react'\n\nimport Accordion from 'components/MarketingAndPropertyPages/Accordion'\nimport AccordionItem from 'components/MarketingAndPropertyPages/Accordion/AccordionItem'\nimport { ContentAccordion } from 'components/MarketingSite/PageContent/types'\nimport Cta from 'components/MarketingAndPropertyPages/Cta'\n\nimport styles from './styles.module.scss'\n\nimport ImgBackyardHome from 'images/learn/projects/backyard-home.jpg'\nimport ImgBackyardHome2x from 'images/learn/projects/backyard-home@2x.jpg'\nimport ImgBathroom from 'images/learn/projects/bathroom.jpg'\nimport ImgBathroom2x from 'images/learn/projects/bathroom@2x.jpg'\nimport ImgConvertExisting from 'images/learn/projects/convert-existing.jpg'\nimport ImgConvertExisting2x from 'images/learn/projects/convert-existing@2x.jpg'\nimport ImgKitchen from 'images/learn/projects/kitchen.jpg'\nimport ImgKitchen2x from 'images/learn/projects/kitchen@2x.jpg'\nimport ImgMoreSpace from 'images/learn/projects/more-space.jpg'\nimport ImgMoreSpace2x from 'images/learn/projects/more-space@2x.jpg'\nimport ImgPool from 'images/learn/projects/pool.jpg'\nimport ImgPool2x from 'images/learn/projects/pool@2x.jpg'\n\nconst imageSrc = (image) => {\n switch (image) {\n case 'backyard-home':\n return [ImgBackyardHome, ImgBackyardHome2x]\n case 'bathroom':\n return [ImgBathroom, ImgBathroom2x]\n case 'convert-existing':\n return [ImgConvertExisting, ImgConvertExisting2x]\n case 'kitchen':\n return [ImgKitchen, ImgKitchen2x]\n case 'more-space':\n return [ImgMoreSpace, ImgMoreSpace2x]\n case 'pool':\n return [ImgPool, ImgPool2x]\n default:\n return [ImgPool, ImgPool2x]\n }\n}\n\nconst MarketingAccordion: FC = ({ items, preselectedItem }) => {\n return (\n \n {({ selectedIndices, toggleIndex }) =>\n items.map((item, index) => (\n \n {item.image != null && (\n \n )}\n
\n {item.header != null &&

{item.header}

}\n {item.body != null &&

{item.body}

}\n {item.cta != null && (\n \n {item.cta.title}\n \n )}\n
\n \n ))\n }\n
\n )\n}\n\nexport default MarketingAccordion\n","// extracted by mini-css-extract-plugin\nexport default {\"blog\":\"AlBxUoSTjpdhybAF_CAn\",\"item\":\"CDHOT3kOsNlqHfxpiik5\",\"withImage\":\"vaQQdb1iCLflMu8MMzns\",\"author\":\"WgtLsVqloPKEwcuzhQ9w\",\"title\":\"E5jYKT5Bo0fvQKyUc22W\",\"body\":\"JIndFIIkezxHYMwD99ol\",\"image\":\"IMQljPkLZufaVWdJvUo5\"};","import classnames from 'classnames'\nimport React, { FC } from 'react'\n\nimport { ContentBlog, ContentBlogItem } from 'components/MarketingSite/PageContent/types'\nimport Cta from 'components/MarketingAndPropertyPages/Cta'\n\nimport ImgBlogLiz from 'images/learn/blog/liz.jpg'\nimport ImgWhyData from 'images/learn/blog/why-data-will-change-home-ownership.jpg'\n\nimport styles from './styles.module.scss'\n\nconst Blog: FC = ({ items }) => (\n
\n {items.map((item) => (\n \n ))}\n
\n)\n\nconst BlogItem: FC = ({ author, title, href, image, body }) => (\n
\n
\n {author.name}\n

\n {author.name}\n
\n {author.title}\n

\n
\n

{title}

\n {image != null && {image.alt}}\n {body != null &&

{body}

}\n \n {'Read'}\n \n
\n)\n\nconst authorImageSrc = (key) => {\n switch (key) {\n case 'liz':\n return ImgBlogLiz\n }\n}\n\nconst postImageSrc = (key) => {\n switch (key) {\n case 'why-data-will-change-home-ownership':\n return ImgWhyData\n }\n}\n\nexport default Blog\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"bqBGPttXk9ZBJPs6j_YR\",\"twoUp\":\"GrqeyjPZ4lZ4mfWFY7na\",\"card\":\"lZoHrUlq6odZiGCroNIv\",\"title\":\"mo7gChUPUPNI70RaGUaI\",\"body\":\"OW7LFFysZIbRukiK2kF5\",\"image\":\"MI9hTxlAIlNx351icLPD\"};","import classnames from 'classnames'\nimport React, { FC } from 'react'\n\nimport { ContentCards } from 'components/MarketingSite/PageContent/types'\n\nimport ImgBackyard from 'images/learn/strategies/backyard.png'\nimport ImgBackyard2x from 'images/learn/strategies/backyard@2x.png'\nimport ImgLivingSpace from 'images/learn/strategies/living-space.png'\nimport ImgLivingSpace2x from 'images/learn/strategies/living-space@2x.png'\nimport ImgMaximize from 'images/learn/strategies/maximize.png'\nimport ImgMaximize2x from 'images/learn/strategies/maximize@2x.png'\nimport ImgRental from 'images/learn/strategies/rental.png'\nimport ImgRental2x from 'images/learn/strategies/rental@2x.png'\n\nimport ImgPotentialValue from 'images/homepage/illustrations/potential-value.png'\nimport ImgRealScore from 'images/homepage/illustrations/real-score.png'\nimport ImgPersonalizedAdvice from 'images/homepage/illustrations/personalized-advice.png'\n\nimport styles from './styles.module.scss'\n\nconst Cards: FC = ({ cards }) => (\n
\n {cards.map((card) => (\n
\n

{card.title}

\n {card.image != null && (\n
\n \n
\n )}\n {card.body &&

{card.body}

}\n
\n ))}\n
\n)\n\nconst imageSrc = (image) => {\n switch (image) {\n case 'backyard':\n return [ImgBackyard, ImgBackyard2x]\n case 'living-space':\n return [ImgLivingSpace, ImgLivingSpace2x]\n case 'maximize':\n return [ImgMaximize, ImgMaximize2x]\n case 'rental':\n return [ImgRental, ImgRental2x]\n case 'potential-value':\n return [ImgPotentialValue]\n case 'real-score':\n return [ImgRealScore]\n case 'personalized-advice':\n return [ImgPersonalizedAdvice]\n }\n}\n\nexport default Cards\n","// extracted by mini-css-extract-plugin\nexport default {\"question\":\"n4TryXNjcERLpL2Iw4OB\"};","import React from 'react'\n\nimport styles from './styles.module.scss'\n\nconst FAQ: React.FC = () => (\n <>\n
\n

\n {'What is the Realm Score and how can I get mine?'}\n

\n
\n
\n {\n 'Your Realm Score helps you understand how much of your property’s potential you’ve already tapped into, both in terms of home value and livability. Look up any address at realmhome.com to find its Realm Score. It’s calculated on a standardized scale of 0-1,000 and is easy to use to compare properties as it only takes into account the things you are able to change about your property.'\n }\n
\n
\n
\n
\n

\n {'What types of home remodeling projects can Realm help me with?'}\n

\n
\n
\n {\n 'Realm provides local project cost estimates as well as property-specific recoup estimates for home upgrades (kitchen remodel, bathroom remodel), adding space (home addition, garage conversion), and installing amenities (pool, deck, landscaping).'\n }\n
\n
\n
\n
\n

\n {'Does Realm cost anything to use?'}\n

\n
\n
\n {\n 'Realm is free to use. You can access property-specific recoup calculations for a variety of projects in your free Realm Dashboard after creating an account. You can add as many properties as you’d like to your dashboard.'\n }\n
\n
\n
\n
\n

\n {'What data does Realm use for its home value estimator?'}\n

\n
\n
\n {\n 'Our home value estimator uses both categorical and numeric data about your property to estimate its value. We’ve aggregated thousands of data points from a variety of sources including tax history, building permits, zoning regulations, listing price history, and listings photos.'\n }\n
\n
\n
\n \n)\n\nexport default FAQ\n","// extracted by mini-css-extract-plugin\nexport default {\"list\":\"uvT2y7MKPPN4ctLaQ7Kq\",\"title\":\"Dt2XoN6Dc9DJsiGXQNiK\",\"body\":\"OXh71tnCd72kwsvf7hxV\"};","import React, { FC } from 'react'\n\nimport { ContentList } from 'components/MarketingSite/PageContent/types'\n\nimport styles from './styles.module.scss'\n\nconst List: FC = ({ items, footer }) => (\n <>\n
    \n {items.map((item) => (\n
  • {item}
  • \n ))}\n
\n

{footer.title}

\n

{footer.body}

\n \n)\n\nexport default List\n","// extracted by mini-css-extract-plugin\nexport default {\"menu\":\"rJnJ25rVd5YApB2hysB1\",\"link\":\"toLRHY61pB0NM9i5bjNw\"};","import React, { FC } from 'react'\n\nimport { ContentMenu } from 'components/MarketingSite/PageContent/types'\n\nimport styles from './styles.module.scss'\n\nconst Menu: FC = ({ items }) => (\n <>\n \n \n)\n\nexport default Menu\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"O42mSJIcEx7jUXB5xkgd\",\"item\":\"wMKz6ONt0xcCGTHHDqbd\",\"title\":\"A8_jMEsKWMswxiDHXvKw\",\"body\":\"DLRNFmsEnhJUmMvmWj0r\",\"footer\":\"wDYPdN5loYaF2qI_VHD6\"};","import classnames from 'classnames'\nimport React, { FC } from 'react'\n\nimport { ContentScrollingCards } from 'components/MarketingSite/PageContent/types'\n\nimport styles from './styles.module.scss'\n\nconst ScrollingCards: FC = ({ items }) => (\n
\n {items.map((item) => (\n
\n {item.title != null &&

{item.title}

}\n

{item.body}

\n {item.footer != null &&

{item.footer}

}\n
\n ))}\n
\n)\n\nexport default ScrollingCards\n","// extracted by mini-css-extract-plugin\nexport default {\"table\":\"oGRe36XwYyV_9jBTI3sa\",\"title\":\"oO8XjxqIBHXkf2vJlzen\"};","import React, { FC } from 'react'\n\nimport { ContentTable } from 'components/MarketingSite/PageContent/types'\n\nimport styles from './styles.module.scss'\n\nconst Table: FC = ({ items }) => (\n <>\n
    \n {items.map((item) => (\n
  • \n

    {item.title}

    \n {item.body != null &&

    {item.body}

    }\n
  • \n ))}\n
\n \n)\n\nexport default Table\n","// extracted by mini-css-extract-plugin\nexport default {\"image\":\"WVFBiCwjDQuMRKbrNJFz\",\"title\":\"JwWbFlf7B1DTAbzJJQ2w\",\"text\":\"_3lhoJAqgUUoRFvSi_f0\",\"footer\":\"U2iqETLdLNfybb9sVVbT\"};","import React, { FC } from 'react'\n\nimport Markdown from 'components/Markdown'\n\nimport { ContentText } from 'components/MarketingSite/PageContent/types'\nimport Cta from 'components/MarketingAndPropertyPages/Cta'\n\nimport ImgCaseStudy1 from 'images/learn/case-study-1.jpg'\n\nimport styles from './styles.module.scss'\n\nconst Text: FC = ({ body, cta, footer, image, title }) => (\n <>\n {image != null && {image.alt}}\n {title != null &&

{title}

}\n {body != null && {body}}\n {footer != null && {footer}}\n {cta != null && {cta.title}}\n \n)\n\nconst imageSrc = (image) => {\n switch (image) {\n case 'case-study-1':\n return ImgCaseStudy1\n }\n}\n\nexport default Text\n","// extracted by mini-css-extract-plugin\nexport default {\"section\":\"kAwOYUwEqfON_rTqOKm7\",\"transparent\":\"ypmoU1MHlFXgCVkGrf8g\",\"lapis\":\"xrnlhenPxTHeQSOEfy5L\",\"moss-fine\":\"hxHlYckngjh1TJa3QBLB\",\"tangerine-fine\":\"weu97mLZxH9Mr3ywDWsl\",\"overflow\":\"dcVOIeSJaVE8GeYu_47n\",\"title\":\"ZT5nSN3d0q3jCbRbzpvc\",\"body\":\"PhulS3SdCSf4K_XRZFb4\"};","import classnames from 'classnames'\nimport React, { FC } from 'react'\n\nimport Cta from 'components/MarketingAndPropertyPages/Cta'\nimport { ContentType, SectionType } from 'components/MarketingSite/PageContent/types'\nimport MarketingAccordion from 'components/MarketingAndPropertyPages/Accordion/MarketingAccordion'\nimport Blog from 'components/MarketingSite/PageContent/Section/Blog'\nimport Cards from 'components/MarketingSite/PageContent/Section/Cards'\nimport Faq from 'components/MarketingSite/PageContent/Section/Faq'\nimport List from 'components/MarketingSite/PageContent/Section/List'\nimport Markdown from 'components/Markdown'\nimport Menu from 'components/MarketingSite/PageContent/Section/Menu'\nimport ScrollingCards from 'components/MarketingSite/PageContent/Section/ScrollingCards'\nimport Table from 'components/MarketingSite/PageContent/Section/Table'\nimport Text from 'components/MarketingSite/PageContent/Section/Text'\n\nimport styles from './styles.module.scss'\n\ntype Props = SectionType & {\n className?: string\n}\n\nconst Section: FC = ({ className, navItem, title, body, cardBackgroundColor, contentType, content, cta }) => (\n \n {title != null && (\n \n {title}\n \n )}\n {body != null &&

{body}

}\n {contentType && }\n {cta != null && (\n \n {cta.title}\n \n )}\n \n)\n\nconst SectionContent: FC<{ contentType: ContentType; content: any }> = ({ contentType, content }) => {\n switch (contentType) {\n case 'accordion':\n return \n case 'blog':\n return \n case 'cards':\n return \n case 'faq':\n return \n case 'list':\n return \n case 'menu':\n return \n case 'scrollingCards':\n return \n case 'table':\n return \n case 'text':\n return \n default:\n return null\n }\n}\n\nexport default Section\n","// extracted by mini-css-extract-plugin\nexport default {\"pageContent\":\"xlLmiUmvzg0BYBXxNDZ1\",\"sidebar\":\"OHaOMFlN8Rmav8KlAIxG\",\"intro\":\"dQmNCq5RWWKA5pGkWrPs\",\"introTitle\":\"N9LK1q8EEsRHOeJdup9C\",\"nav\":\"WAvXVTrD3zUB3spgIQkg\",\"navItem\":\"W8NTvHQKNhCRrF0g9Pve\",\"navBullet\":\"pUALuxShtAg0stzziDJw\",\"navText\":\"mvwqX62_L8jtaMJjguBW\",\"navItemActive\":\"eCKHobYCVjZGXXkySr0R\",\"section\":\"MVV85CNdRL8c4Dmt92rX\",\"sectionSidebar\":\"fcdzp4bbULlZIunCfS8J\",\"anchor\":\"jQHC3YHwg0gOaQBUpw3v\",\"hr\":\"Nuq4etIOpNQZ4oQ9B1Np\"};","import classnames from 'classnames'\nimport React, { FC, Fragment, ReactNode, useMemo } from 'react'\n\nimport CtaSmall from 'components/MarketingSite/CtaSmall'\nimport Section from 'components/MarketingSite/PageContent/Section'\nimport { MarketingSitePage, NavItem, Intro as IntroType } from 'components/MarketingSite/PageContent/types'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n content: MarketingSitePage\n hero?: ReactNode\n}\n\nconst PageContent: FC = ({ content, hero }) => {\n const navItems = useMemo(\n () =>\n content.sections.reduce((items: NavItem[], section) => {\n if (section.navItem != null) {\n return [...items, section.navItem]\n }\n return items\n }, []),\n [content.sections]\n )\n\n return (\n
\n
\n \n \n
\n {hero}\n {content.sections.map((section, index) => (\n \n {(section.navItem != null || section.intro != null) && index !== 0 && (\n
\n {section.navItem != null && index != 0 && (\n
\n
{'→'}
\n
{section.navItem.title}
\n
\n )}\n {section.intro != null && }\n
\n )}\n
\n {section.cardBackgroundColor === 'transparent' &&\n content.sections[index + 1]?.cardBackgroundColor === 'transparent' ? (\n
\n ) : null}\n \n ))}\n
\n )\n}\n\nexport const Intro: FC = ({ title, body, cta }) => (\n
\n

{title}

\n {body != null &&

{body}

}\n {cta != null && {cta.title}}\n
\n)\n\nexport default PageContent\n","// extracted by mini-css-extract-plugin\nexport default {\"button\":\"elq63kwZEMXqBUoBMUMR\",\"disabled\":\"Xc3SNAJRuDQt2n3jd9gF\"};","import React, { ForwardRefRenderFunction, forwardRef, PropsWithChildren } from 'react'\nimport cx from 'classnames'\n\nimport OldButton, { ButtonProps } from 'components/Button2'\n\nimport styles from './styles.module.scss'\n\n/* This was the button created for the new CamV2 onboarding flow.\n As anticipated, and since it has now shown up in a separate location\n I'm going to assume this is a slow migration to this as the new design.\n Therefore it has been advanced to '/components', and I'm giving it a\n memorable name, with the idea that eventually it will completely replace\n our current Button2.\n*/\nexport type { ButtonProps }\n\nconst Button: ForwardRefRenderFunction> = (\n { className, disabled, ...props },\n ref\n) => (\n \n)\n\nexport default forwardRef(Button)\n","// extracted by mini-css-extract-plugin\nexport default {\"tooltip\":\"xvdZMJRKSpG6GgbUFsGZ\",\"holder\":\"sUOdepgsQQXoMlECelkw\",\"icon\":\"OLvBz3fK9_RY2CkWL6zg\",\"tip\":\"bg_H_2MWCrVlH8yq6Rc_\"};","import React from 'react'\nimport classNames from 'classnames'\n\nimport Info from 'svgs/info'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n}\n\nconst ToolTip: React.FC> = ({ className, children }) => (\n \n \n \n {children}\n \n \n)\nexport default ToolTip\n","// extracted by mini-css-extract-plugin\nexport default {\"wistiaVideo\":\"h6o2R6tqSRA9HxJiAu7I\",\"reponsiveWrapper\":\"sNPL3NdRostXKTNhGWj8\",\"embed\":\"C_Ll3HEbmP9tnQ6LR5OH\",\"swatch\":\"wWHKTFd5Wzw4XQc44Bai\"};","import React, { FC, useEffect, useState, useCallback } from 'react'\nimport classNames from 'classnames'\n\nimport styles from './WistiaVideo.module.scss'\nimport { track } from 'utils/analytics'\n\ninterface Props {\n videoId: string\n className?: string\n}\n\ndeclare global {\n interface Window {\n Wistia: { api: (id: string) => WistiaVideo }\n _wq: Array\n }\n}\ninterface WistiaVideo {\n remove: () => void\n}\n\nconst WISTIA_SCRIPT_ID = 'wistia_external_script'\n\nconst WistiaVideo: FC = ({ videoId, className }) => {\n const [isLoaded, setIsLoaded] = useState(false)\n const [paddingTop, setPaddingTop] = useState(56.25)\n\n useEffect(() => {\n // Install the external script, if it is not yet defined\n if (!document.getElementById(WISTIA_SCRIPT_ID)) {\n const permScript = document.createElement('script')\n permScript.id = WISTIA_SCRIPT_ID\n permScript.async = true\n permScript.src = 'https://fast.wistia.com/assets/external/E-v1.js'\n document.body.appendChild(permScript)\n }\n\n // We always need the video script\n const vidScript = document.createElement('script')\n vidScript.async = true\n vidScript.src = `https://fast.wistia.com/embed/medias/${videoId}.jsonp`\n document.body.appendChild(vidScript)\n\n window._wq = window._wq || []\n window._wq.push({\n id: '_all',\n onReady: (video) => {\n const asset = video.data.media.assets[0]\n if (video.data.media.hashedId !== videoId) return\n setPaddingTop((asset.height / asset.width) * 100)\n video.bind('play', () => {\n track('play video', { videoId })\n })\n video.bind('end', () => {\n track('finish video', { videoId })\n })\n },\n })\n\n return () => {\n // Stop playback\n if (window && window.Wistia) {\n const video = window.Wistia.api(videoId)\n if (video) video.remove()\n }\n\n // Drop the video script when we leave.\n vidScript.remove()\n }\n }, [videoId])\n\n const onLoad = useCallback(() => setIsLoaded(true), [])\n\n return (\n \n
\n
\n
\n \n
\n
\n
\n \n )\n}\n\nexport default WistiaVideo\n","import RealmLogo from 'components/MarketingSite/Header/RealmLogo'\nimport React, { FC, PropsWithChildren } from 'react'\n\nconst Container: FC = ({ children }) => {\n return (\n <>\n
\n \n
\n
\n {children}\n
\n \n )\n}\n\nexport default Container\n","import CheckCircle from '@mui/icons-material/CheckCircle'\nimport RadioButtonUnchecked from '@mui/icons-material/RadioButtonUnchecked'\nimport CoreInput from 'components/Core/CoreInput'\nimport CoreList from 'components/Core/CoreList'\nimport Container from 'pages/_serverRendered/AeEventSignup/components/Container'\nimport {\n EventsMode,\n EventsPackage,\n eventsPropsState,\n eventsSelectedAeIdState,\n eventsSelectedMarketState,\n eventsAeSelectedModeState,\n eventsSelectedPackagePriceInDollarsState,\n eventsSelectedPackageState,\n} from 'recoil/events'\nimport React, { FC, Fragment, useCallback, useEffect, useMemo, useState } from 'react'\nimport { useHistory, useLocation } from 'react-router-dom'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport cx from 'classnames'\nimport CoreText from 'components/Core/CoreText'\nimport CoreButton from 'components/Core/CoreButton'\nimport Info from '@mui/icons-material/Info'\n\nconst PickTask: FC = () => {\n const [selectedAeId, setSelectedAeId] = useRecoilState(eventsSelectedAeIdState)\n const [selectedMode, setSelectedMode] = useRecoilState(eventsAeSelectedModeState)\n const [selectedPackage, setSelectedPackage] = useRecoilState(eventsSelectedPackageState)\n const [selectedPrice, setSelectedPrice] = useRecoilState(eventsSelectedPackagePriceInDollarsState)\n const [selectedMarket, setSelectedMarket] = useRecoilState(eventsSelectedMarketState)\n\n const location = useLocation()\n const { success } = (location.state as { success?: boolean }) || {}\n\n const [customizingPrice, setCustomizingPrice] = useState(false)\n const props = useRecoilValue(eventsPropsState)\n\n const history = useHistory()\n\n const handleNext = useCallback(() => {\n history.push('user-info')\n }, [history])\n\n const handleClickMode = useCallback(\n (value: EventsMode) => {\n return () => setSelectedMode(value)\n },\n [setSelectedMode]\n )\n\n const handleClickPackage = useCallback(\n (value: EventsPackage) => {\n return () => setSelectedPackage(value)\n },\n [setSelectedPackage]\n )\n\n const handleClickCustomizePrice = useCallback(() => {\n setCustomizingPrice(true)\n }, [])\n\n const handleChangePrice = useCallback(\n (value: string) => {\n setSelectedPrice(value ? parseInt(value) : null)\n },\n [setSelectedPrice]\n )\n\n const valid = useMemo(() => {\n if (!selectedMode) return false\n if (!selectedAeId) return false\n if (!selectedMarket) return false\n\n if (selectedMode != 'deposit') return true\n\n return !!selectedPackage\n }, [selectedMode, selectedPackage, selectedAeId, selectedMarket])\n\n useEffect(() => {\n if (selectedPackage) {\n const newSelectedPrice = props?.packages?.find((x) => x == selectedPackage)?.price_in_dollars\n if (newSelectedPrice) setSelectedPrice(newSelectedPrice)\n }\n }, [setSelectedPrice, props?.packages, selectedPackage])\n\n useEffect(() => {\n if (selectedMarket && props?.sales_events) {\n if (props.sales_events.findIndex((x) => x.name == selectedMarket) < 0) setSelectedMarket('')\n }\n if (selectedAeId && props?.aes) {\n if (props.aes.findIndex((x) => x.id == selectedAeId) < 0) setSelectedAeId('')\n }\n })\n\n const modes: { mode: EventsMode; name: string }[] = [\n { mode: 'meeting', name: 'Schedule a meeting' },\n { mode: 'deposit', name: 'Collect a deposit' },\n { mode: 'just-info', name: 'Just collect info' },\n ]\n\n return (\n \n
\n \n {'Realm Signup'}\n \n {success && (\n
\n \n
{'User added!'}
\n
\n )}\n
\n {props?.aes && (\n
\n \n {props.aes.map(({ name, id }) => (\n \n ))}\n \n \n
\n {'Not listed here? You may be looking for the '}\n \n {'simple event signup form'}\n \n {'.'}\n
\n
\n )}\n {props?.sales_events && (\n \n {props.sales_events.map((event) => (\n \n ))}\n \n \n )}\n
\n \n {'What do you want to do?'}\n \n \n {modes.map(({ mode, name }) => {\n return (\n \n \n ) : (\n \n )\n }\n onClick={handleClickMode(mode)}\n />\n {props?.packages && mode == 'deposit' && selectedMode == 'deposit' && (\n \n {props.packages.map((pkg) => {\n return (\n \n ) : (\n \n )\n }\n right={\n pkg == selectedPackage && customizingPrice ? (\n
\n
\n {pkg.price_in_dollars}\n
\n
{'$'}
\n \n
\n ) : (\n
\n
{`$${pkg.price_in_dollars}`}
\n {pkg == selectedPackage && (\n \n {'Customize Price'}\n \n )}\n
\n )\n }\n onClick={handleClickPackage(pkg)}\n />\n )\n })}\n
\n )}\n
\n )\n })}\n
\n
\n\n \n
\n )\n}\n\nexport default PickTask\n","import CoreText from 'components/Core/CoreText'\nimport SignupForm from 'pages/_serverRendered/EventSignup/SignupForm'\nimport Container from 'pages/_serverRendered/AeEventSignup/components/Container'\nimport {\n eventsAddedUserState,\n eventsCreatingPropertyTokenState,\n eventsPropsState,\n eventsSelectedAeIdState,\n eventsSelectedMarketState,\n eventsAeSelectedModeState,\n useResetEventOnboarding,\n} from 'recoil/events'\nimport React, { FC, useCallback, useMemo, useState } from 'react'\nimport { useHistory } from 'react-router-dom'\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\nimport CoreInput from 'components/Core/CoreInput'\n\nconst UserInfo: FC = () => {\n const mode = useRecoilValue(eventsAeSelectedModeState)\n const setUser = useSetRecoilState(eventsAddedUserState)\n const selectedAeId = useRecoilValue(eventsSelectedAeIdState)\n const selectedMarket = useRecoilValue(eventsSelectedMarketState)\n const props = useRecoilValue(eventsPropsState)\n const [alert, setAlert] = useState<{ type: 'error' | 'success'; message: string } | null>(null)\n\n const setCreatingPropertyToken = useSetRecoilState(eventsCreatingPropertyTokenState)\n const reset = useResetEventOnboarding()\n\n const signupType = useMemo(() => {\n if (!props?.sales_events) return 'non-homeshow-event'\n\n const selectedEvent = props.sales_events.find((x) => x.name == selectedMarket)\n if (!selectedEvent) return 'non-homeshow-event'\n\n return selectedEvent.event_type == 'home_show' ? 'homeshow' : 'non-homeshow-event'\n }, [props?.sales_events, selectedMarket])\n\n const selectedAeName = useMemo(() => {\n if (!selectedAeId) return\n\n return props?.aes.find((x) => x.id == selectedAeId)?.name || ''\n }, [selectedAeId, props?.aes])\n\n const history = useHistory()\n\n const handleSuccess = useCallback(\n async (user, creatingPropertyToken) => {\n setUser(user)\n setCreatingPropertyToken(creatingPropertyToken)\n\n switch (mode) {\n case 'meeting':\n history.push('schedule-meeting')\n break\n case 'deposit':\n history.push('pay-deposit')\n break\n default:\n reset()\n history.push('/', { success: true })\n break\n }\n },\n [mode, history, setUser, reset, setCreatingPropertyToken]\n )\n\n return (\n \n \n {'To get started, tell us a bit about you and your home.'}\n \n }\n className=\"tw:space-y-4\"\n >\n \n \n \n \n \n {props && (\n \n {props.project_types.map((projectType) => (\n \n ))}\n \n )}\n \n \n )\n}\n\nexport default UserInfo\n","import {\n eventsAddedUserState,\n eventsPropsState,\n eventsSelectedAeSelector,\n useResetEventOnboarding,\n} from 'recoil/events'\nimport React, { FC, useCallback, useEffect, useMemo } from 'react'\nimport { InlineWidget, useCalendlyEventListener } from 'react-calendly'\nimport { useHistory } from 'react-router-dom'\nimport { useRecoilValue } from 'recoil'\nimport { useWindowHeight } from 'utils/windowHeight'\n\nconst ScheduleMeeting: FC = () => {\n const history = useHistory()\n const windowHeight = useWindowHeight()\n const user = useRecoilValue(eventsAddedUserState)\n const ae = useRecoilValue(eventsSelectedAeSelector)\n const props = useRecoilValue(eventsPropsState)\n const reset = useResetEventOnboarding()\n\n const calendlyUrl = useMemo(() => ae?.calendly_link || props?.calendly_url, [ae?.calendly_link, props?.calendly_url])\n\n useEffect(() => {\n if (!calendlyUrl) history.push('/')\n }, [calendlyUrl, history])\n\n useCalendlyEventListener({\n onEventScheduled: useCallback(async () => {\n setTimeout(() => {\n reset()\n history.push('/')\n }, 2000)\n }, [history, reset]),\n })\n\n if (!calendlyUrl) return null\n\n return (\n \n )\n}\n\nexport default ScheduleMeeting\n","import Info from '@mui/icons-material/Info'\nimport CreatingProperty from 'components/Auth/CreatingProperty'\nimport CoreButton from 'components/Core/CoreButton'\nimport Loading from 'components/Loading'\nimport HandleURLQuery from 'non-rendering/HandleURLQuery'\nimport Container from 'pages/_serverRendered/AeEventSignup/components/Container'\nimport React, { FC, useCallback, useEffect, useState } from 'react'\nimport { useHistory } from 'react-router-dom'\nimport { useRecoilValue } from 'recoil'\nimport {\n eventsAddedUserState,\n eventsCreatingPropertyTokenState,\n eventsSelectedAeSelector,\n eventsSelectedPackagePriceInDollarsState,\n eventsSelectedPackageState,\n purchasePackage,\n} from 'recoil/events'\n\nconst PayDeposit: FC = () => {\n const [loading, setLoading] = useState(false)\n const [propertyId, setPropertyId] = useState()\n const [error, setError] = useState(false)\n const selectedPackage = useRecoilValue(eventsSelectedPackageState)\n const selectedPrice = useRecoilValue(eventsSelectedPackagePriceInDollarsState)\n const selectedAe = useRecoilValue(eventsSelectedAeSelector)\n const creatingPropertyToken = useRecoilValue(eventsCreatingPropertyTokenState)\n const user = useRecoilValue(eventsAddedUserState)\n const history = useHistory()\n\n const handleClickTryAgain = useCallback(() => {\n setError(false)\n setLoading(true)\n }, [])\n\n const handleCreatingPropertySuccess = useCallback(({ id: propertyId }) => {\n setPropertyId(propertyId)\n setLoading(true)\n }, [])\n\n useEffect(() => {\n if (!creatingPropertyToken) setLoading(true)\n }, [creatingPropertyToken])\n\n useEffect(() => {\n if (!loading) return\n if (!user) return\n if (!selectedAe) return\n\n const _ = async () => {\n if (selectedPackage && user.email) {\n try {\n setError(false)\n const response = await purchasePackage({\n user_email: user.email,\n package_id: selectedPackage.id,\n property_id: propertyId,\n custom_price_in_cents: (selectedPrice || selectedPackage.price_in_dollars) * 100,\n admin_user_id: selectedAe.admin_user_id,\n })\n\n if (response.isError) {\n setError(true)\n return\n }\n\n window.location.href = response.redirect_url\n } catch {\n setError(true)\n } finally {\n setLoading(false)\n }\n }\n }\n _()\n })\n\n const onReturnFromStripe = useCallback(\n async (key: string, value: Array) => {\n if (!value || value.length == 0) return\n\n if (key == 'success') history.push('/')\n else setError(true)\n },\n [history]\n )\n\n return (\n \n \n\n {error ? (\n <>\n
\n \n
{'An error occured'}
\n
\n \n \n ) : creatingPropertyToken ? (\n \n \n \n ) : (\n
\n \n
\n )}\n
\n )\n}\n\nexport default PayDeposit\n","import React, { FC, useEffect } from 'react'\n\nimport { useAdjustBanner } from 'non-rendering/ShowOrHideAdjustBanner'\nimport { BrowserRouter, Route, StaticRouter, Switch } from 'react-router-dom'\nimport PickTask from 'pages/_serverRendered/AeEventSignup/screens/PickTask'\nimport UserInfo from 'pages/_serverRendered/AeEventSignup/screens/UserInfo'\nimport { RecoilRoot, useSetRecoilState } from 'recoil'\nimport { EventsProps, eventsPropsState } from 'recoil/events'\nimport ScheduleMeeting from 'pages/_serverRendered/AeEventSignup/screens/ScheduleMeeting'\nimport PayDeposit from 'pages/_serverRendered/AeEventSignup/screens/PayDeposit'\n\nconst Inner: FC = (props) => {\n const setProps = useSetRecoilState(eventsPropsState)\n\n const { hideAdjustBanner } = useAdjustBanner()\n useEffect(() => hideAdjustBanner(), [hideAdjustBanner])\n\n useEffect(() => {\n setProps(props)\n }, [props, setProps])\n\n return (\n
\n \n \n \n \n \n \n
\n )\n}\n\nconst AeEventSignup: FC = (props) => {\n let Router = StaticRouter\n if (typeof window !== 'undefined') Router = BrowserRouter\n\n return (\n \n \n \n \n \n )\n}\n\nexport default AeEventSignup\n","// extracted by mini-css-extract-plugin\nexport default {\"card\":\"WxtZ7tKnjY7g2sC1wUQR\"};","import React, { CSSProperties, FC, PropsWithChildren } from 'react'\n\nimport { BrandColor } from 'pages/_serverRendered/CmsPage/types'\nimport cx from 'classnames'\nimport styles from './Card.module.scss'\n\nexport const colors = {\n white: '#fff',\n 'moss-fine': '#f7fcf0',\n 'moss-light': '#ecf3e9',\n 'moss-regular': '#4a957a',\n 'moss-bright': '#dcf836',\n 'sonne-fine': '#fffbeb',\n 'sonne-light': '#ffd66e',\n 'sonne-regular': '#ffb800',\n 'sonne-bright': '#ffe81d',\n 'lapis-fine': '#edf5fa',\n 'lapis-light': '#a2a7d3',\n 'lapis-regular': '#484ec8',\n 'lapis-bright': '#364af9',\n 'tangerine-fine': '#fcf5f0',\n 'tangerine-light': '#ffb7a1',\n 'tangerine-regular': '#ff7043',\n 'tangerine-bright': '#ff1850',\n 'neutrals-200': '#eeeff1',\n}\n\nexport const colorsToStyle: Record = {\n white: { backgroundColor: 'white' },\n 'moss-fine': { backgroundColor: colors['moss-fine'] },\n 'moss-light': { backgroundColor: colors['moss-light'] },\n 'moss-regular': { backgroundColor: colors['moss-regular'], color: 'white' },\n 'moss-bright': { backgroundColor: colors['moss-bright'] },\n 'sonne-fine': { backgroundColor: colors['sonne-fine'] },\n 'sonne-light': { backgroundColor: colors['sonne-light'] },\n 'sonne-regular': { backgroundColor: colors['sonne-regular'] },\n 'sonne-bright': { backgroundColor: colors['sonne-bright'] },\n 'lapis-fine': { backgroundColor: colors['lapis-fine'] },\n 'lapis-light': { backgroundColor: colors['lapis-light'] },\n 'lapis-regular': { backgroundColor: colors['lapis-regular'], color: 'white' },\n 'lapis-bright': { backgroundColor: colors['lapis-bright'], color: 'white' },\n 'tangerine-fine': { backgroundColor: colors['tangerine-fine'] },\n 'tangerine-light': { backgroundColor: colors['tangerine-light'] },\n 'tangerine-regular': { backgroundColor: colors['tangerine-regular'] },\n 'tangerine-bright': { backgroundColor: colors['tangerine-bright'], color: 'white' },\n 'neutrals-200': { backgroundColor: colors['neutrals-200'] },\n transparent: {},\n}\n\nexport interface CardProps {\n id?: string\n backgroundColor?: BrandColor\n className?: string\n style?: CSSProperties\n}\n\nconst Card: FC> = ({ backgroundColor, children, className, id, style }) => (\n \n {children}\n \n)\n\nexport default Card\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"il2E5lUF7ZTa46Xqm5GO\",\"item\":\"xhyFI6LLTqzAUGs6YB3v\",\"front\":\"crWzyqAL8BuATStXcxQB\",\"back\":\"Cr0e_d9qXl5o4zFYyR1i\",\"frontImage\":\"H96YCpDeVmGHRXDMUIR1\",\"arrow\":\"zzmf9zA5YLZV89kN7yiL\",\"title\":\"YDtFN7cb7VFwD0lUFGCs\",\"body\":\"zZYRUJbt0l6o_tIkS4d8\",\"footer\":\"lOsv1q48KAi7dIb0YxEo\"};","import React, { FC } from 'react'\nimport classnames from 'classnames'\n\nimport { SliceFlippingCards } from 'pages/_serverRendered/CmsPage/types'\nimport { colorsToStyle } from 'pages/_serverRendered/CmsPage/Section/Components/Card'\nimport styles from './styles.module.scss'\n\nconst IMG_WIDTH = 512\n\nconst computeImgHeight = (dimensions?: { width: number; height: number } | null) => {\n if (!dimensions) return undefined\n\n return Math.round((dimensions.height * IMG_WIDTH) / dimensions.width)\n}\n\nconst FlippingCards: FC = ({ items, primary }) => (\n
\n {items.map((item) => (\n
\n
\n {item.image.url && (\n \n )}\n
{'→'}
\n
\n
\n {item.title[0] != null &&

{item.title[0].text}

}\n {item.body1[0] != null &&

{item.body1[0].text}

}\n {item.footer[0] != null &&

{item.footer[0].text}

}\n
\n
\n ))}\n
\n)\n\nexport default FlippingCards\n","// extracted by mini-css-extract-plugin\nexport default {\"backers\":\"Ij_6csFb11iLOSkn99lu\",\"h2\":\"oTcoXkW4IFQ3xBoh_72I\",\"backersBackers\":\"NOXcDEQCV9hhmhV4Y3gb\"};","import React, { FC } from 'react'\n\nimport { SliceBackers } from 'pages/_serverRendered/CmsPage/types'\nimport Card from 'pages/_serverRendered/CmsPage/Section/Components/Card'\nimport cx from 'classnames'\nimport { hasTextPresent } from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\nimport styles from './styles.module.scss'\nimport { thumbnailUrl } from 'pages/_serverRendered/CmsPage/utils'\n\ninterface BackersProps {\n className?: string\n id?: string\n slice: SliceBackers\n}\n\nconst Backers: FC = ({ className, id, slice }) => {\n return (\n \n {hasTextPresent(slice.primary.title1) &&

{slice.primary.title1[0].text}

}\n
\n {slice.items.map((e) =>\n e.link.link_type === 'Web' && e.logo.url ? (\n \n {e.logo.alt\n \n ) : e.logo.url ? (\n {e.logo.alt\n ) : null\n )}\n
\n
\n )\n}\n\nexport default Backers\n","// extracted by mini-css-extract-plugin\nexport default {\"blogHighlights\":\"IXidd0IPUgLCNd8Cnua_\",\"h2\":\"Xbu4QsvRIBZEUhwDONSh\",\"item\":\"SxRWyd3HTC30YovDKGhg\",\"itemInner\":\"meehhD_pQXSaHi47SZBH\",\"blogPostImage\":\"Q3QYGxBVLCK_X8v90jNd\",\"authorInfo\":\"VLTN0i4WEe1bCS7up5cq\",\"authorDetails\":\"iNdiZc7QVae_AVqiWtJD\",\"authorPicture\":\"xG1c1tSqmrtbIBluhrmi\",\"blogPostTitle\":\"ddPRPpehs6NQ8amwKfan\"};","import PresentRichText, { hasTextPresent } from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\nimport React, { FC } from 'react'\n\nimport { SliceBlogHighlights } from 'pages/_serverRendered/CmsPage/types'\nimport Cta from 'components/MarketingAndPropertyPages/Cta'\nimport styles from './styles.module.scss'\nimport { thumbnailUrl } from 'pages/_serverRendered/CmsPage/utils'\n\nconst BlogHighlights: FC = ({ items }) => {\n return (\n
\n {items.map((e, i) => (\n
\n {e.blog_post_image.url && (\n \n )}\n
\n
\n {e.author_picture.url && (\n \n )}\n
\n
{`${e.author_name || 'Realm team'}${e.author_role ? ',' : ''}`}
\n {e.author_role &&
{e.author_role}
}\n
\n
\n {hasTextPresent(e.blog_post_title) &&

{e.blog_post_title[0].text}

}\n \n \n {'Read'}\n \n
\n
\n ))}\n
\n )\n}\n\nexport default BlogHighlights\n","// extracted by mini-css-extract-plugin\nexport default {\"cards\":\"pRpm6Fh8zHLIgP1IEBgG\",\"card\":\"dczr3aKpf84KpvlobQKD\",\"h4\":\"AS8SoVLMrfAC1qbmGoZ4\",\"body\":\"LZRNyOfPPCvfxxtDmVd3\",\"image\":\"Aq5K0ceOd67SueJzDv1w\"};","import React, { FC } from 'react'\n\nimport { RichText } from 'prismic-reactjs'\nimport { SliceCards } from 'pages/_serverRendered/CmsPage/types'\nimport { hasTextPresent } from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\nimport styles from './styles.module.scss'\nimport { thumbnailUrl } from 'pages/_serverRendered/CmsPage/utils'\n\nconst Cards: FC = ({ items }) => (\n
\n {items.map((card, i) =>\n hasTextPresent(card.body1) ? (\n
\n \n
\n ) : (\n
\n {hasTextPresent(card.title) &&

{card.title[0].text}

}\n {card.image?.url != null && (\n
\n {card.image.alt\n
\n )}\n
\n )\n )}\n
\n)\n\nexport default Cards\n","import React, { FC } from 'react'\n\nimport Accordion from './index'\nimport AccordionItem from './AccordionItem'\nimport Cta from 'components/MarketingAndPropertyPages/Cta'\nimport { RichText } from 'prismic-reactjs'\nimport { SliceAccordion } from 'pages/_serverRendered/CmsPage/types'\nimport { hasTextPresent } from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\nimport styles from './styles.module.scss'\n\nconst CmsAccordion: FC = ({ items, primary }) => {\n return (\n <>\n {hasTextPresent(primary?.subtitle) && (\n
\n \n
\n )}\n \n {({ selectedIndices, toggleIndex }) =>\n items.map((item, index) => (\n \n {item.image?.url != null && (\n {item.image.alt\n )}\n
\n {hasTextPresent(item.header) && (\n
\n \n
\n )}\n {hasTextPresent(item.body1) && (\n
\n \n
\n )}\n {item.cta_title != null && (\n \n {item.cta_title}\n \n )}\n
\n \n ))\n }\n
\n \n )\n}\n\nexport default CmsAccordion\n","// extracted by mini-css-extract-plugin\nexport default {\"customerLogos\":\"KJF0kxH7PPzxQglw2a82\",\"mediaContainer\":\"TeuFUXRK9Oz7GhIIQfJQ\",\"videoSubContainer\":\"wObv87MzutTwgmwRnjb6\",\"image\":\"LeWfzgaHC38ZTkRIBOgw\",\"customerLogosLogos\":\"xkoTaBddyyzNjsNa6ncQ\"};","import React, { FC, useMemo } from 'react'\n\nimport { SliceCustomerLogos } from 'pages/_serverRendered/CmsPage/types'\nimport WistiaVideo from 'components/WistiaVideo'\nimport styles from './styles.module.scss'\n\nconst extractWistiaVideoIdFromUrl = (url: string) => {\n const match = url.match(/myrealm.wistia.com\\/medias\\/(.+)/)\n if (match && match.length > 1) {\n return match[1]\n }\n\n return null\n}\n\nconst CustomerLogos: FC = ({ primary, items }) => {\n const videoId = useMemo(() => {\n if (primary.media && primary.media.link_type == 'Web') {\n return extractWistiaVideoIdFromUrl(primary.media.url || '')\n }\n }, [primary.media])\n\n return (\n <>\n
\n {primary.media && primary.media.link_type === 'Media' && (\n \"\"\n )}\n {primary.media && primary.media.link_type === 'Web' && videoId && (\n
\n \n
\n )}\n
\n {items.length > 0 && (\n
\n {items.map((e) =>\n e.link.link_type === 'Web' && e.logo.url ? (\n \n {e.logo.alt\n \n ) : e.logo.url ? (\n {e.logo.alt\n ) : null\n )}\n
\n )}\n \n )\n}\n\nexport default CustomerLogos\n","import React, { FC } from 'react'\n\nimport { SliceFormattedText } from 'pages/_serverRendered/CmsPage/types'\n\nimport StyledRichText from 'components/MarketingAndPropertyPages/StyledRichText'\n\nconst FormattedText: FC = ({ primary }) => \n\nexport default FormattedText\n","// extracted by mini-css-extract-plugin\nexport default {\"hero\":\"zG3BxjzBSMfq0tVk4J1y\",\"title\":\"wg5A3eH3BqI8smy_uiMw\",\"description\":\"HwP6HZfWdWdJPBhWPdwu\",\"descriptionBullets\":\"sOteZKS0SNbgGPiK6jxn\",\"titleIntro\":\"n6DNjNF1rjxUOj21_Xa4\",\"ctaOr\":\"QRXZ71i8YLZKUaR5G3os\",\"contact\":\"lMnj_u8890BpyqkUFDoZ\",\"strategy1\":\"WQNZgIY0nvAKQfZik_KG\",\"strategy2\":\"Y14iY1wqtNRLoTZeouQ_\",\"strategy3\":\"D_yQvCgS4NweZWuntaPb\",\"strategy4\":\"dk5NqvJMoiDbiCqaFclK\",\"strategies\":\"iEzI2tLOVtiGdtvhBIWs\",\"strategy\":\"Cwo1MbntTdNu7jz8xNTN\",\"strategyBullet\":\"bksBh_8fh2jO_krsjoIH\",\"strategyText\":\"OnFMkKZz58jaMyzrgXrE\",\"strategyActive\":\"uqzHK8eyiLRfbCgzfSEg\"};","import React, { FC, useCallback, useEffect, useRef, useState } from 'react'\n\nimport { AddressAutocompleteField } from '../AddressAutocompleteField'\nimport Cta from 'components/MarketingAndPropertyPages/Cta'\nimport { default as HeroContainer } from 'pages/_serverRendered/Homepage/Hero'\nimport { HeroData, AutocompleteRedirectTargetTypes } from 'pages/_serverRendered/CmsPage/types'\nimport { ConvertAutocompleteRedirectTarget } from 'pages/_serverRendered/CmsPage/utils'\nimport Markdown from 'components/Markdown'\nimport classnames from 'classnames'\nimport styles from './styles.module.scss'\nimport { hasTextPresent } from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\n\ninterface Props extends HeroData {\n onInputVisibleChange?: (boolean) => void\n autocompleteRedirectTarget: AutocompleteRedirectTargetTypes\n onRequestHeaderHeight: () => number | undefined\n}\n\nconst Hero: FC = (data) => {\n switch (data.type) {\n case 'bullets':\n return \n case 'homepage':\n return \n default:\n return \n }\n}\n\nexport const Default: FC = ({\n onInputVisibleChange,\n autocompleteRedirectTarget,\n title,\n description,\n include_cta,\n media,\n override_button_label_long,\n override_button_label_short,\n onRequestHeaderHeight,\n}) => {\n return (\n \n {hasTextPresent(title) &&

{title[0].text}

}\n {hasTextPresent(description) &&

{description[0].text}

}\n \n {include_cta && (\n <>\n

{'or'}

\n \n {'Talk to an Advisor'}\n \n \n )}\n
\n )\n}\n\nexport const Homepage: FC = ({\n onInputVisibleChange,\n autocompleteRedirectTarget,\n title,\n description,\n media,\n override_button_label_long,\n override_button_label_short,\n}) => {\n return (\n \n {description?.[0].text != null &&

{description[0].text}

}\n

\n {title[0].text || ''}\n

\n \n
\n )\n}\n\n// Wait 5 seconds before rotating through options\nconst rotateInterval = 3000\nconst strategies = ['Increase home value', 'Add more living space', 'Earn rental income', 'Improve my backyard']\n\nexport const Bullets: FC = ({\n onInputVisibleChange,\n autocompleteRedirectTarget,\n title,\n description,\n media,\n override_button_label_long,\n override_button_label_short,\n}) => {\n const [selectedStrategy, setSelectedStrategy] = useState()\n\n const onStrategyClick = useCallback(\n (id) => {\n setSelectedStrategy(selectedStrategy === id ? undefined : id)\n setShouldRotateStrategies(false)\n },\n [selectedStrategy]\n )\n\n const [shouldRotateStrategies, setShouldRotateStrategies] = useState(true)\n const rotateIndexRef = useRef(-1)\n\n const rotateStrategies = useCallback(() => {\n if (shouldRotateStrategies) {\n rotateIndexRef.current = rotateIndexRef.current + 1\n\n // Once we've rotated through all the options once, stop rotating\n if (rotateIndexRef.current < strategies.length) {\n setSelectedStrategy(strategies[rotateIndexRef.current])\n } else {\n setSelectedStrategy(undefined)\n setShouldRotateStrategies(false)\n }\n }\n }, [shouldRotateStrategies])\n\n useEffect(() => {\n if (rotateIndexRef.current < 0) {\n rotateStrategies()\n }\n\n const interval = setInterval(rotateStrategies, rotateInterval)\n return () => clearInterval(interval)\n }, [rotateStrategies])\n\n return (\n s === selectedStrategy)}`])}\n media={media}\n >\n

{title[0].text}

\n
\n {strategies.map((strategy) => (\n \n ))}\n
\n \n {description?.[0].text != null &&

{description[0].text}

}\n \n )\n}\n\ninterface StrategyProps {\n active: boolean\n strategy: string\n onClick: (string) => void\n}\n\nconst Strategy: FC = ({ active, strategy, onClick }) => {\n const onStrategyClick = useCallback(() => onClick(strategy), [onClick, strategy])\n const onStrategyKeyPress = useCallback(\n (event) => {\n if (event.keyCode === 13) onStrategyClick()\n },\n [onStrategyClick]\n )\n\n return (\n \n
{'→'}
\n
{strategy}
\n \n )\n}\n\nexport default Hero\n","// extracted by mini-css-extract-plugin\nexport default {\"imageQuotes\":\"uTs3NSp01bPAqxiXahhn\",\"h2\":\"FW0WhK2iFqLM1NZLiC6g\",\"container\":\"jeDsp1ee4NAxDS2fHBsR\",\"item\":\"p8UoCwnvTruKJG9zHkGb\",\"description\":\"OmrchPFDGlprAyBZWS53\",\"name\":\"QqrjMY5jzKNDWRuD4iAm\",\"location\":\"e2rexiETXcINwjpVoT5E\"};","import PresentRichText, { hasTextPresent } from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\nimport React, { FC } from 'react'\n\nimport { SliceImageQuotes } from 'pages/_serverRendered/CmsPage/types'\nimport cx from 'classnames'\nimport styles from './styles.module.scss'\nimport { thumbnailUrl } from 'pages/_serverRendered/CmsPage/utils'\n\ninterface ImageQuotesProps {\n id?: string\n className?: string\n slice: SliceImageQuotes\n}\n\nconst ImageQuotes: FC = ({ id, className, slice }) => {\n return (\n
\n {hasTextPresent(slice.primary?.title1) &&

{slice.primary?.title1[0].text}

}\n
\n {slice.items.map((item, i) =>\n item.link?.url ? (\n \n {item.image.url && {item.image.alt}\n
\n
\n {item.name}\n {` - ${item.location}`}\n
\n \n
\n
\n ) : (\n
\n {item.image.url && {item.image.alt}\n
\n
\n {item.name}\n {` - ${item.location}`}\n
\n \n
\n
\n )\n )}\n
\n
\n )\n}\n\nexport default ImageQuotes\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"OEG8qxgmwJTIa6vGEq_L\",\"twoUp\":\"iZ2nSopVFpjcM1wTu1Ee\",\"card\":\"_eTYegkAFIohol7Gv9Pc\",\"title\":\"IU5Ccr4ypyld5d13HKFx\",\"body\":\"AIOV2vI1dxd7fcdQtWj5\",\"image\":\"oSNZkIyjsjZZGAUIWnU5\"};","import React, { FC } from 'react'\n\nimport { SliceLandingCards } from 'pages/_serverRendered/CmsPage/types'\nimport cx from 'classnames'\nimport styles from './styles.module.scss'\nimport { thumbnailUrl } from 'pages/_serverRendered/CmsPage/utils'\n\nconst LandingCards: FC = ({ items }) => {\n return (\n
\n {items.map((card) => (\n
\n {card.title?.[0]?.text != null &&

{card.title?.[0]?.text}

}\n {card.image?.url != null && (\n
\n {card.image.alt\n
\n )}\n {card.body1?.[0]?.text &&

{card.body1?.[0]?.text}

}\n
\n ))}\n
\n )\n}\n\nexport default LandingCards\n","// extracted by mini-css-extract-plugin\nexport default {\"listCard\":\"HXd0M_j7WZHzw_RIKgQ_\",\"h2\":\"ZTiM9cbEgXN8hhWwY63f\",\"h3\":\"jp9rEkkBrK8sCYFRa0VA\",\"description\":\"UBOP7fxfPVcLfKeX74Mg\",\"bulletsContainer\":\"_aebWLllTFOKMW2jjjQA\",\"bullets\":\"WnpEZJH70O6Yw5bobzro\",\"checkmarks\":\"rxHAiLH3mC4XFnm6r1X_\",\"numbers\":\"dFqPmIJ9xoCoOFOjRhlg\",\"closingText\":\"gV5jX8oPle4UhoBQ1KIw\",\"image\":\"p1gHrIRuefwy6oHgi73H\"};","import React, { FC } from 'react'\n\nimport Card from 'pages/_serverRendered/CmsPage/Section/Components/Card'\nimport Cta from 'components/MarketingAndPropertyPages/Cta'\nimport { SliceListCard } from 'pages/_serverRendered/CmsPage/types'\nimport { RichText } from 'prismic-reactjs'\nimport cx from 'classnames'\nimport { hasTextPresent } from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\nimport styles from './styles.module.scss'\nimport { thumbnailUrl } from 'pages/_serverRendered/CmsPage/utils'\n\ninterface ListCardProps {\n id?: string\n className?: string\n slice: SliceListCard\n}\n\nconst ListCard: FC = ({ id, className, slice }) => {\n return (\n \n {hasTextPresent(slice.primary.title1) &&

{slice.primary.title1[0].text}

}\n {slice.primary.image.url && (\n {slice.primary.image.alt\n )}\n {hasTextPresent(slice.primary.subheader) &&

{slice.primary.subheader[0].text}

}\n {hasTextPresent(slice.primary.description) && (\n
\n \n
\n )}\n {hasTextPresent(slice.primary.bullets) && (\n
\n \n
\n )}\n {hasTextPresent(slice.primary.closing_text) && (\n
\n \n
\n )}\n \n {slice.primary.cta_text}\n \n
\n )\n}\n\nexport default ListCard\n","// extracted by mini-css-extract-plugin\nexport default {\"openRoles\":\"f94ip5mqZDGXHnI5tHTb\",\"h2\":\"ZkbLrChEq8FUfNeRDmNe\",\"item\":\"uq6cHWJaURXjzvP9fd3c\"};","import PresentRichText, { hasTextPresent } from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\nimport React, { FC } from 'react'\n\nimport Card from 'pages/_serverRendered/CmsPage/Section/Components/Card'\nimport Cta from 'components/MarketingAndPropertyPages/Cta'\nimport { SliceOpenRoles } from 'pages/_serverRendered/CmsPage/types'\nimport cx from 'classnames'\nimport styles from './styles.module.scss'\n\ninterface OpenRolesProps {\n className?: string\n id?: string\n slice: SliceOpenRoles\n}\n\nconst OpenRoles: FC = ({ className, id, slice }) => {\n return (\n \n {hasTextPresent(slice.primary.title1) &&

{slice.primary.title1[0].text}

}\n \n
\n {slice.items.map((e, i) => (\n \n {e.role_name}\n \n ))}\n
\n \n {slice.primary.cta_title}\n \n
\n )\n}\n\nexport default OpenRoles\n","// extracted by mini-css-extract-plugin\nexport default {\"h2\":\"wrLqeq1gHtKvYVh3O7PK\",\"item\":\"Ne87_dbzfXwFm1JeY4vW\"};","import React, { FC } from 'react'\n\nimport { SlicePhotoCard } from 'pages/_serverRendered/CmsPage/types'\nimport PresentRichText from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\nimport styles from './styles.module.scss'\nimport { thumbnailUrl } from 'pages/_serverRendered/CmsPage/utils'\n\nconst PhotoCard: FC = ({ items }) => {\n return (\n <>\n {items.map((e, i) => (\n
\n {e.image.url && {e.image.alt}\n
\n

{e.title[0].text}

\n \n
\n
\n ))}\n \n )\n}\n\nexport default PhotoCard\n","// extracted by mini-css-extract-plugin\nexport default {\"press\":\"S5FXdwYuPDUuEupJc51L\",\"h2\":\"c80c4aczS7j0F9Rr5RRa\",\"container\":\"hYpd2QuSuzWUyURGPZmX\",\"item\":\"HKRJHKeFbJTCuQSeRqWM\",\"quote\":\"CAp_wq8J0xjwlQoOuv4b\",\"source\":\"jFYQBqZiIKzlsWqb2Go3\"};","import PresentRichText, { hasTextPresent } from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\nimport React, { FC } from 'react'\n\nimport Card from 'pages/_serverRendered/CmsPage/Section/Components/Card'\nimport Cta from 'components/MarketingAndPropertyPages/Cta'\nimport { SlicePress } from 'pages/_serverRendered/CmsPage/types'\nimport cx from 'classnames'\nimport styles from './styles.module.scss'\n\ninterface PressProps {\n className?: string\n id?: string\n slice: SlicePress\n}\n\nconst Press: FC = ({ className, id, slice }) => {\n return (\n \n {hasTextPresent(slice.primary?.title1) &&

{slice.primary?.title1[0].text}

}\n \n
\n {slice.items.map((item, index) =>\n item.link ? (\n \n {item.quote[0] &&

{item.quote[0].text}

}\n {item.source &&

{item.source}

}\n
\n ) : (\n
\n {item.quote[0] &&

{item.quote[0].text}

}\n {item.source &&

{item.source}

}\n
\n )\n )}\n
\n \n {slice.primary?.cta_title}\n \n
\n )\n}\n\nexport default Press\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"yH9RynDEZ0Pc6nq5qvDx\",\"item\":\"RioWMG46CJVRvRaN5IK0\",\"title\":\"hmIij3d4c1OzePp5h2sb\",\"body\":\"dbycRDq3wjE1p3oky_Uf\",\"footer\":\"tsLG6RBbKLrn2kSqzeNM\"};","import React, { FC } from 'react'\nimport { colors, colorsToStyle } from 'pages/_serverRendered/CmsPage/Section/Components/Card'\n\nimport { BrandColor } from 'pages/_serverRendered/CmsPage/types'\nimport { RichTextBlock } from 'prismic-reactjs'\nimport classnames from 'classnames'\nimport styles from './styles.module.scss'\n\ninterface ScrollingCardsProps {\n backgroundColor?: BrandColor\n primary?: { card_color?: BrandColor }\n items: {\n body1: RichTextBlock[]\n footer: RichTextBlock[]\n title: RichTextBlock[]\n }[]\n}\n\nconst ScrollingCards: FC = ({ backgroundColor, items, primary }) => {\n return (\n
\n {items.map((item) => (\n \n {item.title[0] != null &&

{item.title[0].text}

}\n {item.body1[0] != null && (\n
\n

{item.body1[0].text}

\n
\n )}\n {item.footer[0] != null &&

{item.footer[0].text}

}\n
\n ))}\n \n )\n}\n\nexport default ScrollingCards\n","// extracted by mini-css-extract-plugin\nexport default {\"quotes\":\"B9Usi7jM1OCys39_Agya\",\"h2\":\"fzIH7xglUAJMF66PydPw\"};","import PresentRichText, { hasTextPresent } from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\nimport React, { FC } from 'react'\n\nimport Cta from 'components/MarketingAndPropertyPages/Cta'\nimport { SliceQuotesCard } from 'pages/_serverRendered/CmsPage/types'\nimport ScrollingCards from 'pages/_serverRendered/CmsPage/Section/ScrollingCards'\nimport cx from 'classnames'\nimport styles from './styles.module.scss'\n\ninterface QuotesCardProps {\n className?: string\n id?: string\n slice: SliceQuotesCard\n}\n\nconst QuotesCard: FC = ({ className, id, slice }) => {\n return (\n
\n {hasTextPresent(slice.primary?.title) &&

{(slice.primary?.title || [])[0]?.text}

}\n \n \n \n {slice.primary?.cta_title}\n \n
\n )\n}\n\nexport default QuotesCard\n","// extracted by mini-css-extract-plugin\nexport default {\"team\":\"YrfA1VZCPDgoREbN5hDv\",\"h2\":\"eStHH7Q6XHYNhiNKjBHI\",\"items\":\"RkFFAVOOEZ16fo45kPf_\"};","import React, { FC } from 'react'\n\nimport Card from 'pages/_serverRendered/CmsPage/Section/Components/Card'\nimport Cta from 'components/MarketingAndPropertyPages/Cta'\nimport { SliceTeam } from 'pages/_serverRendered/CmsPage/types'\nimport cx from 'classnames'\nimport { hasTextPresent } from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\nimport styles from './styles.module.scss'\nimport { thumbnailUrl } from 'pages/_serverRendered/CmsPage/utils'\n\ninterface TeamProps {\n className?: string\n id?: string\n slice: SliceTeam\n}\n\nconst Team: FC = ({ className, id, slice }) => {\n return (\n \n {hasTextPresent(slice.primary.title1) &&

{slice.primary.title1[0].text}

}\n
\n {slice.items.map((e, i) => (\n
\n {e.picture.url && {e.picture.alt}\n
{e.name}
\n
{e.role}
\n
\n ))}\n
\n \n {slice.primary.cta_title}\n \n
\n )\n}\n\nexport default Team\n","const slugify = (title?: string): string | undefined => {\n return title\n ? title\n .toLowerCase()\n .replace(/[^\\w ]+/g, '')\n .replace(/ +/g, '-')\n : undefined\n}\n\nexport default slugify\n","// extracted by mini-css-extract-plugin\nexport default {\"header\":\"R7XW2wVh10RBKa3gKkfp\",\"search\":\"pPS_FfPihkBOZV852NTX\",\"content\":\"UF5eF7nOErmX9Uc8QDCi\",\"sidebar\":\"RROlub8Z0kfRT5u926R6\",\"intro\":\"k9lWlwo8K8hfe2_w8esA\",\"introTitle\":\"uULwcQHye6OmLBMJ3mUc\",\"nav\":\"wsXCoRF8qZePCC7HDV4C\",\"navItem\":\"RZif_ohocyI3U9plALE7\",\"navBullet\":\"O0gD09ocjR64et8_l8aB\",\"navText\":\"cl7s7e_1zFmWqM0lDqLJ\",\"navItemActive\":\"QK68IRSIKfVaCwI7QSKW\",\"gridColumn\":\"tVmM8RG7gltdBBDfqNtm\",\"slice\":\"WXFF1RfQVo0PdehXK4Ob\",\"transparent\":\"aDgMSlyslEa68LV2N15B\",\"lapis\":\"fZ3eT1mHpdzicl2gSsxV\",\"moss-fine\":\"xgSIkhuFVE2EJLDXIf4A\",\"tangerine-fine\":\"Rtm1CwvbdyUfO7zakNYg\",\"overflow\":\"l1guuv5FOL8obrCxBPfM\",\"sliceTitle\":\"nu280aUAUDiMIHegbZO1\",\"sliceBody\":\"nK1lQClfUrQiIj4fGOI4\",\"sectionSidebar\":\"ZZujDuZgFfV1HHMEdKrJ\",\"anchor\":\"pAOOhSQR6r0g4U7K2qOE\",\"hr\":\"iY65WR79bGaXzeBUpJd1\",\"getStarted\":\"olC0293DfmfbtjhBChHj\"};","import { CmsPageData, IntroData, Slice as SliceType } from './types'\nimport React, { FC, useEffect, useMemo, useState, useRef, useCallback } from 'react'\n\nimport AddressAutocomplete from 'components/MarketingSite/Header/AddressAutocomplete'\nimport Backers from './Section/Backers'\nimport BlogHighlights from './Section/BlogHighlights'\nimport Cards from './Section/Cards'\nimport CmsAccordion from 'components/MarketingAndPropertyPages/Accordion/CmsAccordion'\nimport Cta from 'components/MarketingAndPropertyPages/Cta'\nimport CustomerLogos from './Section/CustomerLogos'\nimport FlippingCards from './Section/FlippingCards'\nimport Footer from 'components/MarketingSite/Footer'\nimport FormattedText from './Section/FormattedText'\nimport GetStarted from 'pages/_serverRendered/Homepage/GetStarted'\nimport Header from 'components/MarketingSite/Header'\nimport Hero from './Hero'\nimport ImageQuotes from './Section/ImageQuotes'\nimport LandingCards from './Section/LandingCards'\nimport ListCard from './Section/ListCard'\nimport Markdown from 'components/Markdown'\nimport OpenRoles from './Section/OpenRoles'\nimport PhotoCard from './Section/PhotoCard'\nimport Press from './Section/Press'\nimport QuotesCard from './Section/QuotesCard'\nimport ScrollingCards from './Section/ScrollingCards'\nimport Team from './Section/Team'\nimport classnames from 'classnames'\nimport { colorsToStyle } from './Section/Components/Card'\nimport { hasTextPresent } from './Section/Components/PresentRichText'\nimport slugify from 'utils/slugify'\nimport styles from './styles.module.scss'\nimport { trackPage } from 'utils/analytics'\nimport { ConvertAutocompleteRedirectTarget } from 'pages/_serverRendered/CmsPage/utils'\nimport CustomEmbed from 'pages/_serverRendered/Blog/shared/CustomEmbed'\n\nconst Navigation: FC<{ slices: SliceType[] }> = ({ slices }) => {\n const navTitles = useMemo(() => slices.map((slice) => slice.primary?.nav_title).filter((e) => e), [slices])\n\n return (\n \n )\n}\n\nexport const Intro: FC = ({ title, body }) => (\n
\n {hasTextPresent(title) &&

{title[0].text}

}\n {hasTextPresent(body) &&

{body[0].text}

}\n
\n)\n\nconst SliceContent: FC = (slice) => {\n switch (slice.slice_type) {\n case 'accordion':\n return \n case 'blog_highlights':\n return \n case 'cards':\n return \n case 'landing_cards':\n return \n case 'customer_logos':\n return \n case 'flipping_cards':\n return \n case 'formatted_text':\n return \n case 'photo_card':\n return \n case 'scrolling_cards':\n return \n default:\n return null\n }\n}\n\nconst Slice: FC = (props) => {\n const { className, ...slice } = props\n const title = slice.primary?.title?.[0]?.text\n const body = slice.primary?.description?.[0]?.text\n\n if (\n ['image_quotes', 'list_card', 'quotes_card', 'custom_embed', 'team', 'open_roles', 'backers', 'press'].includes(\n slice.slice_type || ''\n )\n ) {\n return (\n <>\n {slice.primary?.nav_title && (\n
\n
\n
{'→'}
\n
{slice.primary?.nav_title}
\n
\n
\n )}\n {slice.slice_type === 'image_quotes' ? (\n \n ) : slice.slice_type === 'list_card' ? (\n \n ) : slice.slice_type === 'quotes_card' ? (\n \n ) : slice.slice_type == 'custom_embed' ? (\n
\n \n
\n ) : slice.slice_type === 'team' ? (\n \n ) : slice.slice_type === 'open_roles' ? (\n \n ) : slice.slice_type === 'backers' ? (\n \n ) : slice.slice_type === 'press' ? (\n \n ) : null}\n \n )\n }\n\n return (\n <>\n {slice.primary?.nav_title && (\n
\n
\n
{'→'}
\n
{slice.primary?.nav_title}
\n
\n
\n )}\n \n {title != null && (\n \n {title}\n \n )}\n {body != null &&

{body}

}\n \n {slice.primary?.cta_title && (\n \n {slice.primary?.cta_title}\n \n )}\n \n \n )\n}\n\nconst CmsPage: FC<{ data: CmsPageData; pageName: string }> = ({\n data: {\n body,\n get_started,\n hero,\n intro,\n nav_how_it_works,\n nav_why_realm,\n nav_resources,\n nav_about,\n nav_sign_in,\n nav_get_started,\n autocomplete_redirect_target,\n page_id_for_tracking,\n },\n pageName,\n}) => {\n const headerRef = useRef(null)\n const [heroInputVisible, setHeroInputVisible] = useState(false)\n const [campaignId, setCampaignId] = useState()\n useEffect(() => {\n trackPage(pageName || page_id_for_tracking)\n }, [pageName, page_id_for_tracking])\n\n // Ideally, the marketing campaign Id also comes from prismic.\n // Since we only have one campaign right now, we'll fake it here.\n useEffect(() => {\n // Set the campaignId only after the client loads, so we can detect what\n // page we're on and if we should do it. This whole useEffect block\n // won't be necessary if/when we push the campaignId from prismic\n if (window.location.pathname == '/l/giveaway') {\n const url = new (URL || window.URL)(window.location.href)\n if (!url.searchParams.has('mc')) {\n const campaignId = encodeURIComponent(btoa('giveaway-2021-10-18'))\n url.searchParams.append('mc', campaignId)\n window.history.replaceState(null, '', url.toString())\n setCampaignId(campaignId)\n } else {\n setCampaignId(url.searchParams.get('mc') as string)\n }\n }\n }, [])\n\n const handleRequestHeaderHeight = useCallback(() => {\n if (headerRef.current) return headerRef.current.offsetHeight\n }, [])\n\n return (\n
\n \n {heroInputVisible ? (\n
\n ) : (\n \n )}\n \n {hero?.[0] != null && (\n \n )}\n
\n
\n {intro?.[0] != null && }\n \n
\n {body.map((slice, index) => (\n \n ))}\n
\n \n
\n
\n )\n}\n\nexport default CmsPage\n","import { RichTextBlock, Link as PrismicLinkData } from 'prismic-reactjs'\n\nexport type BrandColor =\n | 'white'\n | 'transparent'\n | 'moss-fine'\n | 'moss-light'\n | 'moss-regular'\n | 'moss-bright'\n | 'sonne-fine'\n | 'sonne-light'\n | 'sonne-regular'\n | 'sonne-bright'\n | 'lapis-fine'\n | 'lapis-light'\n | 'lapis-regular'\n | 'lapis-bright'\n | 'tangerine-fine'\n | 'tangerine-light'\n | 'tangerine-regular'\n | 'tangerine-bright'\n\nexport interface HeroData {\n title: RichTextBlock[]\n subtitle: RichTextBlock[]\n description: RichTextBlock[]\n include_cta: boolean\n media: PrismicLinkData\n is_media_infographic: boolean\n address_autocomplete_visible: boolean\n show_autocomplete_button: boolean\n override_button_label_long: string\n override_button_label_short: string\n type: 'default' | 'bullets' | 'homepage'\n address_label?: string\n\n show_cta?: boolean\n cta_text?: string\n cta_url?: PrismicLinkData\n cta_relative_url?: string\n}\n\nexport interface GetStartedData {\n show_get_started?: boolean\n pre_title: RichTextBlock[]\n title: RichTextBlock[]\n description: RichTextBlock[]\n address_label: string\n\n address_autocomplete_visible?: boolean\n show_cta?: boolean\n cta_text?: string\n cta_url?: PrismicLinkData\n cta_relative_url?: string\n}\n\nexport interface IntroData {\n title: RichTextBlock[]\n body: RichTextBlock[]\n}\n\ninterface SharedSlicePrimary {\n background_color?: BrandColor\n description?: RichTextBlock[]\n title?: RichTextBlock[]\n cta_title?: string\n cta_url?: string\n nav_title?: string\n}\n\nexport interface SliceAccordion {\n id?: string\n slice_type?: 'accordion'\n primary?: {\n subtitle: RichTextBlock[]\n preopen: boolean\n } & SharedSlicePrimary\n items: {\n body1: RichTextBlock[]\n cta_title?: string\n cta_url?: string\n header: RichTextBlock[]\n title: RichTextBlock[]\n image?: RichTextBlock\n }[]\n}\n\nexport interface SliceCards {\n slice_type: 'cards'\n primary?: SharedSlicePrimary\n items: {\n body1: RichTextBlock[]\n image: RichTextBlock\n title: RichTextBlock[]\n }[]\n}\n\nexport interface SliceScrollingCards {\n slice_type: 'scrolling_cards'\n primary?: {\n card_color?: BrandColor\n } & SharedSlicePrimary\n items: {\n body1: RichTextBlock[]\n footer: RichTextBlock[]\n title: RichTextBlock[]\n }[]\n}\n\nexport interface SliceFlippingCards {\n slice_type: 'flipping_cards'\n primary?: {\n card_color?: BrandColor\n } & SharedSlicePrimary\n items: {\n body1: RichTextBlock[]\n footer: RichTextBlock[]\n image: RichTextBlock\n title: RichTextBlock[]\n }[]\n}\n\nexport interface SliceFormattedText {\n slice_type: 'formatted_text'\n primary: {\n text?: RichTextBlock[]\n } & SharedSlicePrimary\n}\n\nexport interface SliceLandingCards {\n slice_type: 'landing_cards'\n primary?: SharedSlicePrimary\n items: {\n body1: RichTextBlock[]\n image: RichTextBlock\n title: RichTextBlock[]\n }[]\n}\n\nexport interface SliceCustomEmbed {\n slice_type: 'custom_embed'\n primary: {\n html_code: RichTextBlock[]\n } & SharedSlicePrimary\n}\n\nexport interface SliceCustomerLogos {\n slice_type: 'customer_logos'\n primary: {\n media: PrismicLinkData\n } & SharedSlicePrimary\n items: {\n logo: RichTextBlock\n link: PrismicLinkData\n }[]\n}\n\nexport interface SliceListCard {\n slice_type: 'list_card'\n primary: {\n title1: RichTextBlock[] // XXX: this has title1, SharedSlicePrimary has title\n image: RichTextBlock\n subheader: RichTextBlock[]\n bullets: RichTextBlock[]\n bullets_style: 'unstyled' | 'bullets' | 'checkmarks' | 'numbers'\n closing_text: RichTextBlock[]\n cta_text: string // XXX: this has cta_text, SharedSlicePrimary has cta_title\n cta_url: PrismicLinkData // XXX: this is PrismicLinkData, SharedSlicePrimary is string\n } & SharedSlicePrimary\n}\n\nexport interface SlicePhotoCard {\n slice_type: 'photo_card'\n primary?: SharedSlicePrimary\n items: {\n image: RichTextBlock\n title: RichTextBlock[]\n description: RichTextBlock[]\n }[]\n}\n\nexport interface SliceQuotesCard {\n slice_type: 'quotes_card'\n primary?: SharedSlicePrimary\n items: {\n body1: RichTextBlock[]\n footer: RichTextBlock[]\n title: RichTextBlock[]\n }[]\n}\n\nexport interface SliceImageQuotes {\n slice_type: 'image_quotes'\n primary?: {\n title1: RichTextBlock[] // XXX: this has title1, SharedSlicePrimary has title\n } & SharedSlicePrimary\n items: {\n image: RichTextBlock\n name: string\n location: string\n quote: RichTextBlock[]\n link: PrismicLinkData\n }[]\n}\n\nexport interface SliceBlogHighlights {\n slice_type: 'blog_highlights'\n primary?: SharedSlicePrimary\n items: {\n blog_post_image: RichTextBlock\n author_picture: RichTextBlock\n author_name: string\n author_role: string\n blog_post_title: RichTextBlock[]\n blog_post_snippet: RichTextBlock[]\n blog_post_url: PrismicLinkData\n }[]\n}\n\nexport interface SliceTeam {\n slice_type: 'team'\n primary: {\n title1: RichTextBlock[] // XXX: this has title1, SharedSlicePrimary has title\n cta_url?: PrismicLinkData // XXX: this is PrismicLinkData, SharedSlicePrimary is string\n } & SharedSlicePrimary\n items: {\n picture: RichTextBlock\n name: string\n role: string\n }[]\n}\n\nexport interface SliceOpenRoles {\n slice_type: 'open_roles'\n primary: {\n title1: RichTextBlock[] // XXX: this has title1, SharedSlicePrimary has title\n cta_url?: PrismicLinkData // XXX: this is PrismicLinkData, SharedSlicePrimary is string\n } & SharedSlicePrimary\n items: {\n role_name: string\n role_url: PrismicLinkData\n }[]\n}\n\nexport interface SliceBackers {\n slice_type: 'backers'\n primary: {\n title1: RichTextBlock[] // XXX: this has title1, SharedSlicePrimary has title\n } & SharedSlicePrimary\n items: {\n logo: RichTextBlock\n link: PrismicLinkData\n }[]\n}\n\nexport interface SlicePress {\n slice_type?: 'press'\n primary?: {\n title1: RichTextBlock[] // XXX: this has title1, SharedSlicePrimary has title\n cta_url?: PrismicLinkData // XXX: this is PrismicLinkData, SharedSlicePrimary is string\n } & SharedSlicePrimary\n items: {\n quote: RichTextBlock[]\n source: string\n link: PrismicLinkData\n }[]\n}\n\nexport type Slice =\n | SliceAccordion\n | SliceBackers\n | SliceBlogHighlights\n | SliceCards\n | SliceCustomerLogos\n | SliceFlippingCards\n | SliceFormattedText\n | SliceImageQuotes\n | SliceLandingCards\n | SliceCustomEmbed\n | SliceListCard\n | SliceOpenRoles\n | SlicePhotoCard\n | SlicePress\n | SliceQuotesCard\n | SliceScrollingCards\n | SliceTeam\n\nexport enum AutocompleteRedirectTargetTypes {\n Default = 'Default',\n ProjectPricing = '/l/project-pricing',\n RenovationPricing = '/l/renovation-pricing',\n HomeReport = '/l/home-report',\n}\n\nexport interface CmsPageDataBase {\n intro: IntroData[]\n get_started: GetStartedData[]\n hero: HeroData[]\n nav_how_it_works: boolean\n nav_why_realm: boolean\n nav_resources: boolean\n nav_about: boolean\n nav_sign_in: boolean\n nav_get_started: boolean\n autocomplete_redirect_target: AutocompleteRedirectTargetTypes\n page_id_for_tracking: string\n\n version?: 'v1' | 'v2'\n}\n\nexport interface CmsPageData extends CmsPageDataBase {\n body: Slice[]\n}\n","import { AutocompleteRedirectTargetTypes } from 'pages/_serverRendered/CmsPage/types'\n\nexport const thumbnailUrl = (url: string, maxHeight = 640): string => {\n return `${url}&fit=clip&h=${maxHeight}`\n}\n\nexport function ConvertAutocompleteRedirectTarget(target: AutocompleteRedirectTargetTypes): undefined | string {\n if (target == AutocompleteRedirectTargetTypes.ProjectPricing) return 'renovation-pricing'\n else if (target == AutocompleteRedirectTargetTypes.RenovationPricing) return 'renovation-pricing'\n else if (target == AutocompleteRedirectTargetTypes.HomeReport) return 'home-report'\n\n // Default should be the default, and is specifically left undefined to allow other possible redirect\n // options on the back-end (most will be a version of onboarding)\n return\n}\n","import React, { FC, PropsWithChildren, createContext, useContext, useMemo } from 'react'\nimport { useUtmParams } from 'utils/analytics'\n\ninterface Context {\n slug?: string | null\n}\n\nconst CTAAdjustmentContext = createContext({\n slug: null,\n})\n\nexport function useCTAAdjustment(\n url?: string | null,\n isReferralCtaUrl?: boolean,\n isUtmForwardCtaUrl?: boolean,\n slug?: string | null // Let them override slug.\n): {\n url: string | null | undefined\n referralCtaUrl: string | null | undefined\n utmForwardCtaUrl: string | null | undefined\n} {\n const context = useContext(CTAAdjustmentContext)\n const utmParams = useUtmParams()\n\n const slugToUse = useMemo(() => {\n return slug || context.slug\n }, [context, slug])\n\n const referralCtaUrl = useMemo(() => {\n if (!isReferralCtaUrl) return url\n if (!url) return url\n if (!slugToUse) return url\n\n const newUrl = new URL(url)\n newUrl.searchParams.set('utm_medium', 'partnership')\n newUrl.searchParams.set('utm_source', 'referral')\n // utm_campaign holds a list of data here.\n // key:value|key2:value2|etc.\n newUrl.searchParams.set('utm_campaign', `slug:${slugToUse}`)\n return newUrl.toString()\n }, [isReferralCtaUrl, url, slugToUse])\n\n const utmForwardCtaUrl = useMemo(() => {\n if (!isUtmForwardCtaUrl) return url\n if (!url) return url\n if (!utmParams) return url\n\n const newUrl = new URL(url)\n Object.keys(utmParams).forEach((key) => {\n const value = utmParams[key]\n if (typeof value !== 'undefined' && value != null) {\n newUrl.searchParams.set(key, value)\n }\n })\n\n return newUrl.toString()\n }, [isUtmForwardCtaUrl, url, utmParams])\n\n const newUrl = useMemo(() => {\n return (isReferralCtaUrl && referralCtaUrl) || (isUtmForwardCtaUrl && utmForwardCtaUrl) || url\n }, [isReferralCtaUrl, isUtmForwardCtaUrl, url, referralCtaUrl, utmForwardCtaUrl])\n\n return {\n url: newUrl,\n referralCtaUrl,\n utmForwardCtaUrl,\n }\n}\n\ninterface Props {\n slug?: null | string\n}\n\nconst CTAAdjustment: FC> = ({ slug, children }) => {\n return {children}\n}\n\nexport default CTAAdjustment\n","// extracted by mini-css-extract-plugin\nexport default {\"addressAutoCompleteField\":\"T5EVQzETt5mQXEoPERcD\",\"search\":\"njN7Uv4AkVILQZsPUo0c\",\"icon\":\"yQsUmO0fW3gKqbOUiAcA\",\"predictionStreetAddress\":\"jsj2DUIMXHDyEydqdNk4\",\"predictionCityAddress\":\"FK9sB_PeOgcH9rXw81A1\",\"button\":\"XJRoc_O4e3H0UCDfKOAY\",\"labelLong\":\"cGMktuwO5snlUFK80rBZ\",\"labelShort\":\"S9wufvFvPGPEZB4vqbF5\"};","import React, { FC, useCallback, useEffect, useRef, useState } from 'react'\nimport cx from 'classnames'\n\nimport LocationIcon from 'svgs/location'\n\nimport NikhilButton from 'components/NikhilButton'\nimport AddressAutocomplete, { Prediction } from 'components/MarketingSite/Header/AddressAutocomplete'\n\nimport styles from './styles.module.scss'\n\ninterface AddressAutocompleteFieldProps {\n className?: string\n containerClassName?: string\n onInputVisibleChange?: (boolean) => void\n buttonLabelLong?: string\n buttonLabelShort?: string\n showButton?: boolean\n onPredictionSelected?: (queryParams: Record) => void\n variant?: string\n placeholder?: string\n positionLabel: string\n readOnly?: boolean\n onRequestHeaderHeight?: () => number | undefined\n scrollToFocus?: boolean\n}\n\nexport const AddressAutocompleteField: FC = ({\n className,\n containerClassName,\n onInputVisibleChange,\n buttonLabelLong,\n buttonLabelShort,\n showButton,\n onPredictionSelected,\n readOnly,\n variant,\n placeholder,\n positionLabel,\n onRequestHeaderHeight,\n scrollToFocus,\n}) => {\n const [scrollCheck, setScrollCheck] = useState(null)\n const renderSubmitButton = useCallback(\n (onClick: (e: any) => void, disabled: boolean) => (\n void}>\n {buttonLabelLong ?? 'Get my property analysis'}\n {buttonLabelShort ?? 'Get started'}\n \n ),\n [buttonLabelShort, buttonLabelLong]\n )\n\n const renderPredictionDescription = useCallback(\n (prediction: Prediction) => (\n <>\n
{prediction.mainText}
\n
{prediction.secondaryText}
\n \n ),\n []\n )\n\n const renderIcon = useCallback(() => , [])\n\n const ref = useRef(null)\n\n useEffect(() => {\n if (onInputVisibleChange != null) {\n if ('IntersectionObserver' in window) {\n const observer = new IntersectionObserver((entries) =>\n entries.forEach((entry) => {\n onInputVisibleChange(entry.isIntersecting)\n })\n )\n if (ref.current) observer.observe(ref.current)\n\n return () => observer?.disconnect()\n } else {\n onInputVisibleChange(true)\n }\n }\n }, [onInputVisibleChange])\n\n const handleFocus = useCallback((event: React.FocusEvent, isMobile) => {\n if (!isMobile) return\n setScrollCheck(event.target as HTMLInputElement)\n }, [])\n\n useEffect(() => {\n if (!scrollCheck) return\n let cancel = false\n let lastPosition: number | null = null\n let lastHeight: number | null = null\n let lastCheck = false\n let request\n const scrollCheckFn = () => {\n if (cancel) return\n if (lastPosition != window.pageYOffset || lastHeight != window.innerHeight) {\n lastPosition = window.pageYOffset\n lastHeight = window.innerHeight\n lastCheck = false\n // We're not done scrolling/resizing, so continue checking.\n request = setTimeout(scrollCheckFn, 100)\n } else if (!lastCheck) {\n lastCheck = true\n // We appear to be done, but give one last grace period.\n request = setTimeout(scrollCheckFn, 500)\n } else {\n // We can now scroll the user to where we want them.\n const headerHeight = onRequestHeaderHeight ? onRequestHeaderHeight() || 0 : 0\n const scrollTo = scrollCheck.getBoundingClientRect().top - headerHeight + window.pageYOffset\n window.scrollTo(0, scrollTo)\n setScrollCheck(null)\n }\n }\n request = setTimeout(scrollCheckFn, 100)\n return () => {\n cancel = true\n clearTimeout(request)\n }\n }, [scrollCheck, onRequestHeaderHeight])\n\n return (\n
\n \n
\n )\n}\n\nexport default AddressAutocompleteField\n","// extracted by mini-css-extract-plugin\nexport default {\"hero\":\"T5l7CuFKY2ZCoA2zEKo7\",\"mainHero\":\"GIybXHhXLMQdc7GH1ooL\",\"content\":\"HyyBiXo5kDgiraVVfFLH\",\"titleBox\":\"u5cAMegZqYbELM9oNFGw\",\"title\":\"OONBx4810ULQXbr8DLqX\",\"subtitle\":\"HchJ2vU_KIiG0Oaqbsex\",\"description\":\"PIynFukF0SOlNP3BTL5H\",\"addressField\":\"jYx9QcGbHIvIgtu4ewff\",\"input\":\"FnHI74Nh7ZXdyo7eOlM9\",\"emailInput\":\"HgPssTAO8_aKtKNLlhKn\",\"inputContainer\":\"E8hKpceB96ODdf_pLbjw\",\"icon\":\"Y721pC0IN0S8n9WsjLW9\",\"submit\":\"Y1aeL0U3SvwlvxfqHXi8\",\"spinner\":\"R80uQ12cBejgxtnZ_pPw\",\"cta\":\"_44_FQf0TFqZhF0jcOvvh\",\"mediaContainer\":\"AD9s5_foKYgmDZKuKhE_\",\"videoSubContainer\":\"O824Su2f5Fv8vmlv8n3i\",\"infoGraphic\":\"FKTBx7m9xzab0H22JIAk\",\"image\":\"VauCyZq2hr69yNoqSIDI\"};","import React, { FC, useMemo } from 'react'\nimport { Link as PrismicLinkData } from 'prismic-reactjs'\nimport cx from 'classnames'\n\nimport WistiaVideo from 'components/WistiaVideo'\n\nimport styles from './styles.module.scss'\n\nconst extractWistiaVideoIdFromUrl = (url: string) => {\n const match = url.match(/myrealm.wistia.com\\/medias\\/(.+)/)\n if (match && match.length > 1) {\n return match[1]\n }\n\n return null\n}\n\ninterface Props {\n media: PrismicLinkData\n isInfoGraphic: boolean\n}\nconst Media: FC = ({ media, isInfoGraphic }) => {\n const videoId = useMemo(() => {\n if (media && media.link_type == 'Web') {\n return extractWistiaVideoIdFromUrl(media.url || '')\n }\n }, [media])\n\n return (\n
\n {media && media.link_type === 'Media' && (\n \"\"\n )}\n {media && media.link_type === 'Web' && videoId && (\n
\n \n
\n )}\n
\n )\n}\n\nexport default Media\n","import React, { FC, useCallback, useEffect, useRef } from 'react'\nimport cx from 'classnames'\nimport { Link as PrismicLinkData } from 'prismic-reactjs'\n\nimport { track } from 'utils/analytics'\n\nimport { useCTAAdjustment } from '../CtaAdjustment'\n\nimport Button from 'components/NikhilButton'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n onVisibleChange?: (boolean) => void\n\n show_cta?: boolean\n cta_text?: string\n cta_referral_utm_params?: boolean\n cta_forward_utm_params?: boolean\n cta_url?: PrismicLinkData\n cta_relative_url?: string\n}\n\nconst CtaButton: FC = ({\n className,\n onVisibleChange,\n cta_text,\n cta_referral_utm_params,\n cta_forward_utm_params,\n cta_url,\n cta_relative_url,\n}) => {\n const { url } = useCTAAdjustment(cta_url?.url, cta_referral_utm_params, cta_forward_utm_params)\n const ref = useRef(null)\n const handleCtaClick = useCallback(async () => {\n await track('click cta', { cta: 'landing-page-hero', module: 'hero' })\n\n if (!cta_url && !cta_relative_url) return\n if (!url && !cta_relative_url) return\n\n if (url && cta_url && cta_url.target === '_blank') {\n window.open(url, '_blank')?.focus()\n } else {\n window.location.href = url || cta_relative_url || ''\n }\n }, [cta_url, url, cta_relative_url])\n\n useEffect(() => {\n if (onVisibleChange != null) {\n if ('IntersectionObserver' in window) {\n const observer = new IntersectionObserver((entries) =>\n entries.forEach((entry) => {\n onVisibleChange(entry.isIntersecting)\n })\n )\n if (ref.current) observer.observe(ref.current)\n\n return () => observer?.disconnect()\n } else {\n onVisibleChange(true)\n }\n }\n }, [onVisibleChange])\n\n return (\n \n )\n}\n\nexport default CtaButton\n","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport { HeroData, AutocompleteRedirectTargetTypes } from '../types'\nimport { ConvertAutocompleteRedirectTarget } from 'pages/_serverRendered/CmsPage/utils'\n\nimport PresentRichText from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\nimport Cta from 'components/MarketingAndPropertyPages/Cta'\n\nimport AddressAutocompleteField from '../AddressAutocompleteField'\nimport Media from './Media'\nimport CtaButton from './CtaButton'\n\nimport styles from './styles.module.scss'\n\ninterface Props extends HeroData {\n className?: string\n onAddressInputVisibleChange?: (boolean) => void\n onCtaVisibleChange?: (boolean) => void\n autocompleteRedirectTarget: AutocompleteRedirectTargetTypes\n onRequestHeaderHeight: () => number | undefined\n}\n\n// Hero has 3 different `data.type`: 'bullets', 'homepage', and 'default'\n// Currently, it appears we only use 'default' or we don't have a hero.\n// So for now I'll only implement 'default'\n\nconst Hero: FC = ({\n className,\n onAddressInputVisibleChange,\n onCtaVisibleChange,\n autocompleteRedirectTarget,\n title,\n subtitle,\n description,\n include_cta,\n media,\n is_media_infographic,\n address_autocomplete_visible,\n override_button_label_long,\n override_button_label_short,\n show_autocomplete_button,\n address_label,\n onRequestHeaderHeight,\n\n show_cta,\n cta_text,\n cta_forward_utm_params,\n cta_referral_utm_params,\n cta_url,\n cta_relative_url,\n}) => {\n return (\n
\n
\n
\n
\n \n \n \n
\n {address_autocomplete_visible != false && (\n \n )}\n {/* Different CTA than the one below. */}\n {show_cta && (\n \n )}\n {include_cta && (\n <>\n

{'or'}

\n \n {'Talk to an Advisor'}\n \n \n )}\n
\n \n
\n
\n )\n}\n\nexport default Hero\n","// extracted by mini-css-extract-plugin\nexport default {\"getStarted\":\"eCMgF55lL4etT_lqT8yF\",\"content\":\"gKF92Fk77wJaHZb_p1Kt\",\"background\":\"wUBmP9qJ4XAJgJsSoqGj\",\"bgContainer\":\"cWsNXfmw6om4fIxAkwA0\",\"ball1\":\"TJVhB95oWhH3sl9fHS7T\",\"ball2\":\"Rr13wREadg7ocFX5VQTb\",\"ball3\":\"Cw7DqmcCRS4AyuYgkq2Q\",\"ball4\":\"vZ2TaRAKafGC8X3dwLqh\",\"ball5\":\"bnUTKDg6nF8G0UBaAn9g\",\"ball6\":\"yi9evWMwl_3hXeyIOO3w\",\"ball7\":\"rjbrVyD77l1Dx6Visj54\",\"titleBox\":\"fkhh85RNWZBtyLC6s1ha\",\"addressField\":\"v1ByRyD4ZjyKYe9XG00_\",\"input\":\"seFyDLFit_kEIctzDTH7\",\"cta\":\"hOe5_yhZPO_bV0Pn2eiH\"};","import React, { FC } from 'react'\n\nimport styles from './styles.module.scss'\n\nconst Background: FC = () => (\n
\n
\n \n \n \n \n \n \n \n
\n
\n)\n\nexport default Background\n","// extracted by mini-css-extract-plugin\nexport default {\"titleHeader\":\"TDacPY_xPGkUNrYa6Aqk\",\"preTitle\":\"FcIA7iwY6xbivkLx0yKF\",\"postTitle\":\"sjmEAxDoEfR1HaJzBZKA\",\"title\":\"GdA5I9Ju76FpQMYtxsaq\"};","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport PresentRichText, { hasTextPresent } from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\nimport { RichTextBlock } from 'prismic-reactjs'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n pre_title?: RichTextBlock[]\n title?: RichTextBlock[]\n post_title?: RichTextBlock[]\n reference_id?: string\n}\nconst TitleHeader: FC = ({ className, pre_title, title, post_title, reference_id }) => {\n // no render if no titles.\n if (!hasTextPresent(pre_title) && !hasTextPresent(title) && !hasTextPresent(post_title)) {\n return null\n }\n return (\n
\n \n \n \n
\n )\n}\n\nexport default TitleHeader\n","import React, { FC, useCallback } from 'react'\nimport classnames from 'classnames'\n\nimport { track } from 'utils/analytics'\n\nimport { GetStartedData } from '../types'\nimport { useCTAAdjustment } from '../CtaAdjustment'\n\nimport AddressAutocompleteField from '../AddressAutocompleteField'\n\nimport Background from './Background'\nimport TitleHeader from '../Sections/Components/TitleHeader'\nimport Button from 'components/NikhilButton'\n\nimport styles from './styles.module.scss'\n\ninterface Props extends GetStartedData {\n className?: string\n variant?: string\n onRequestHeaderHeight: () => number | undefined\n}\n\nconst GetStarted: FC = ({\n className,\n pre_title,\n title,\n description,\n address_label,\n variant,\n onRequestHeaderHeight,\n\n address_autocomplete_visible,\n show_cta,\n cta_text,\n cta_referral_utm_params,\n cta_forward_utm_params,\n cta_url,\n cta_relative_url,\n}) => {\n const { url } = useCTAAdjustment(cta_url?.url, cta_referral_utm_params, cta_forward_utm_params)\n const handleCtaClick = useCallback(async () => {\n await track('click cta', { cta: 'landing-page-get-started', module: 'get-started' })\n\n if (!cta_url && !cta_relative_url) return\n if (!url && !cta_relative_url) return\n\n if (url && cta_url && cta_url.target === '_blank') {\n window.open(url, '_blank')?.focus()\n } else {\n window.location.href = url || cta_relative_url || ''\n }\n }, [cta_url, url, cta_relative_url])\n\n return (\n
\n
\n \n \n {address_autocomplete_visible != false && (\n \n )}\n {show_cta && (\n \n )}\n
\n
\n )\n}\n\nexport default GetStarted\n","// extracted by mini-css-extract-plugin\nexport default {\"browseStates\":\"VcZOLZQRipRbxwXocag2\",\"titleBox\":\"xGUQ93v_OSqPDs3KKymD\",\"title\":\"jZZma2f1ffYlPTs7OzbJ\",\"description\":\"ZHYsdQLwaabEDbr7Nrik\",\"linksContainer\":\"dlqYrjXZj4gxppwhOZPJ\",\"boldLink\":\"Gviy9sAGPqVNqDOeoKDA\",\"postTitle\":\"Bbu9eXyb3m_JTgQt4XyA\"};","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport styles from './styles.module.scss'\n\nexport const states = [\n { code: 'CA', name: 'California', priority: true },\n // { code: 'TX', name: 'Texas', priority: true },\n // { code: 'FL', name: 'Florida', priority: true },\n // { code: 'NY', name: 'New York', priority: true },\n // { code: 'AK', name: 'Alaska' },\n // { code: 'AL', name: 'Alabama' },\n // { code: 'AR', name: 'Arkansas' },\n // { code: 'AZ', name: 'Arizona' },\n // { code: 'CO', name: 'Colorado' },\n // { code: 'CT', name: 'Connecticut' },\n // { code: 'DC', name: 'District of Columbia' },\n // { code: 'DE', name: 'Delaware' },\n // { code: 'GA', name: 'Georgia' },\n // { code: 'HI', name: 'Hawaii' },\n // { code: 'IA', name: 'Iowa' },\n // { code: 'ID', name: 'Idaho' },\n // { code: 'IL', name: 'Illinois' },\n // { code: 'IN', name: 'Indiana' },\n // { code: 'KS', name: 'Kansas' },\n // { code: 'KY', name: 'Kentucky' },\n // { code: 'LA', name: 'Louisiana' },\n // { code: 'MA', name: 'Massachusetts' },\n // { code: 'MD', name: 'Maryland' },\n // { code: 'ME', name: 'Maine' },\n // { code: 'MI', name: 'Michigan' },\n // { code: 'MN', name: 'Minnesota' },\n // { code: 'MO', name: 'Missouri' },\n // { code: 'MS', name: 'Mississippi' },\n // { code: 'MT', name: 'Montana' },\n // { code: 'NC', name: 'North Carolina' },\n // { code: 'ND', name: 'North Dakota' },\n // { code: 'NE', name: 'Nebraska' },\n // { code: 'NH', name: 'New Hampshire' },\n // { code: 'NJ', name: 'New Jersey' },\n // { code: 'NM', name: 'New Mexico' },\n // { code: 'NV', name: 'Nevada' },\n // { code: 'OH', name: 'Ohio' },\n // { code: 'OK', name: 'Oklahoma' },\n // { code: 'OR', name: 'Oregon' },\n // { code: 'PA', name: 'Pennsylvania' },\n // { code: 'RI', name: 'Rhode Island' },\n // { code: 'SC', name: 'South Carolina' },\n // { code: 'SD', name: 'South Dakota' },\n // { code: 'TN', name: 'Tennessee' },\n // { code: 'UT', name: 'Utah' },\n // { code: 'VA', name: 'Virginia' },\n // { code: 'VT', name: 'Vermont' },\n { code: 'WA', name: 'Washington' },\n // { code: 'WI', name: 'Wisconsin' },\n // { code: 'WV', name: 'West Virginia' },\n // { code: 'WY', name: 'Wyoming' },\n]\n\ninterface Props {\n visible?: boolean\n}\n\nconst BrowseStates: FC = ({ visible }) => {\n if (visible == false) return null\n\n return (\n
\n
\n

{'Browse states'}

\n

{'Find free home value analysis for single-family houses across the US.'}

\n
\n
\n {states.map((state) => (\n \n ))}\n
\n
\n )\n}\n\nexport default BrowseStates\n","// extracted by mini-css-extract-plugin\nexport default {\"footer\":\"ocg7vdgOfrp41f9DMigO\",\"container\":\"l6_DPWRsNKQPo26pvROH\",\"brand\":\"sqBWtmev12vPYE8zsmau\",\"links\":\"dXEDEVuzY5l0QVbT4pkx\",\"linkGroup\":\"HJbn6fsZzBVfpoLaqeOY\",\"desktop\":\"m1cWWcH8RDcqESSMypiv\",\"callToAction\":\"BjoXXt2wp6cXK96Xv7DC\",\"disabled\":\"ddjr5ZCkJWJTuLL_FIll\",\"qrCode\":\"kaNu9Abb7nwkQGbSgrDP\",\"final\":\"YUjRlpnLCAK8yUVX_gcg\",\"social\":\"I6ds_PhEhS9EJQnHZv5g\",\"legal\":\"RSOWyOqjWjbE9VkfdRIw\",\"mobile\":\"intBa_FT497MzwcJUnbA\"};","import React, { FC } from 'react'\nimport QRCode from 'react-qr-code'\n\nimport Instagram from 'svgs/social/instagram'\nimport Twitter from 'svgs/social/twitter'\nimport Facebook from 'svgs/social/facebook'\nimport LinkedIn from 'svgs/social/linkedin'\n\nimport { RealmLogoSmall } from 'components/MarketingSite/Header/RealmLogo'\n\nimport styles from './styles.module.scss'\n\nconst Footer: FC = () => (\n \n)\n\nexport default Footer\n","// extracted by mini-css-extract-plugin\nexport default {\"customEmbed\":\"mP8AStzDukXejnfCqEuR\"};","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport { SliceCustomEmbed } from '../../types'\n\nimport CustomEmbed from 'pages/_serverRendered/Blog/shared/CustomEmbed'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n slice: SliceCustomEmbed\n}\nconst CustomEmbedSlice: FC = ({ className, slice }) => {\n return (\n
\n \n
\n )\n}\n\nexport default CustomEmbedSlice\n","// extracted by mini-css-extract-plugin\nexport default {\"infoPoints\":\"LB8PyoBp0A8QJYLEJoGR\",\"titleBox\":\"dLbH1wAwO9ZStu_4LFuQ\",\"points\":\"SQr8_cqNjskHj3jfIix2\",\"infoPoint\":\"cmJc3y71xwsFyxf96dGC\",\"icon\":\"O__4x2nrd3kbuS8xXFsQ\",\"title\":\"QzLeQgsbfwB8B4mEGziA\",\"description\":\"cErYq5DtgDbOp7pv9Sri\",\"cta\":\"tPvpLnrlUf3IAgDFs1_f\"};","import React, { FC, useMemo } from 'react'\n\nimport { InfoPoint as InfoPointType } from '../../types'\n\nimport { useCTAAdjustment } from '../../CtaAdjustment'\n\nimport ClipboardIcon from 'svgs/clipboard'\nimport ToolsIcon from 'svgs/tools'\nimport ContractorIcon from 'svgs/contractor-2'\nimport PhoneIcon from 'svgs/phone'\nimport DollarSignIcon from 'svgs/dollar-sign'\nimport MoneyIcon from 'svgs/money'\nimport EmailIcon from 'svgs/email'\n\nimport PresentRichText from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n infoPoint: InfoPointType\n style?: React.CSSProperties\n}\n\nconst HeroInfoPoint: FC = ({ infoPoint, style }) => {\n const { url } = useCTAAdjustment(\n infoPoint.cta_url?.url,\n infoPoint.cta_referral_utm_params,\n infoPoint.cta_forward_utm_params\n )\n const icon = useMemo(() => {\n if (infoPoint.icon == 'Clipboard') return \n if (infoPoint.icon == 'Tools') return \n if (infoPoint.icon == 'Contractor') return \n if (infoPoint.icon == 'Phone') return \n if (infoPoint.icon == 'DollarSign') return \n if (infoPoint.icon == 'Money') return \n if (infoPoint.icon == 'Email') return \n\n return \n }, [infoPoint.icon])\n\n return (\n
  • \n {infoPoint.icon != 'NONE' ?
    {icon}
    : null}\n \n \n {infoPoint.cta_url && infoPoint.cta_url.url && (\n \n {infoPoint.cta_text || 'Learn more'}\n \n )}\n
  • \n )\n}\n\nexport default HeroInfoPoint\n","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport { SliceInfoPoints } from '../../types'\n\nimport TitleHeader from '../Components/TitleHeader'\n\nimport InfoPoint from './InfoPoint'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n slice: SliceInfoPoints\n}\nconst InfoPoints: FC = ({ className, slice }) => {\n return (\n
    \n \n
      \n {slice.items.map((point, i) => (\n \n ))}\n
    \n
    \n )\n}\n\nexport default InfoPoints\n","// extracted by mini-css-extract-plugin\nexport default {\"imageQuotes\":\"TswVCk7bXjt7Rj_Y2sWo\",\"titleBox\":\"LtdYfFabtzx6wgnG7U3N\",\"scroll\":\"r9lx7LVmuZsv8Vfm7d1x\",\"quotes\":\"ozI5yaRLEWwDNs7PYgbG\",\"item\":\"HU_Ln7PqYDWCVKfEG0tx\",\"image\":\"TXu0lTP5b8PD8TZwpjwV\",\"name\":\"SaRF5qYDwALWKiXUmjLw\",\"location\":\"ft1m_UzmnqJSkkpmEx7k\",\"quote\":\"SzDt4md3vSwvXYYnFhep\",\"cta\":\"c66E1Hsmp6KAjckPGQH7\"};","import React, { FC } from 'react'\n\nimport { ImageQuote } from '../../types'\nimport { thumbnailUrl } from 'pages/_serverRendered/CmsPage/utils'\n\nimport { useCTAAdjustment } from '../../CtaAdjustment'\n\nimport PresentRichText from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\n\nimport styles from './styles.module.scss'\n\ninterface Props extends ImageQuote {\n className?: string\n}\nconst ImageQuotes: FC = ({\n className,\n image,\n name,\n location,\n quote,\n cta_url,\n cta_forward_utm_params,\n cta_referral_utm_params,\n cta_text,\n}) => {\n const { url } = useCTAAdjustment(cta_url?.url, cta_referral_utm_params, cta_forward_utm_params)\n return (\n
    \n {image.url && {image.alt}\n
    {name}
    \n
    {location}
    \n \n {cta_url && cta_url.url && (\n \n {cta_text}\n \n )}\n
    \n )\n}\n\nexport default ImageQuotes\n","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport { SliceImageQuotes } from '../../types'\n\nimport TitleHeader from '../Components/TitleHeader'\n\nimport ImageQuote from './ImageQuote'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n slice: SliceImageQuotes\n}\nconst ImageQuotes: FC = ({ className, slice }) => {\n return (\n
    \n \n
    \n
    \n {slice.items.map((quote, i) => (\n \n ))}\n
    \n
    \n
    \n )\n}\n\nexport default ImageQuotes\n","// extracted by mini-css-extract-plugin\nexport default {\"photoCards\":\"kNoC3KkPcXR_R7gOX02A\",\"titleBox\":\"jcufq_Y6iUX4M8cTK_qp\",\"cards\":\"f1k4rQCKaVWdntabvNS3\",\"card\":\"DnR7W3PpQLvWiMxNtRL5\",\"image\":\"OObmEvQwa1HUoahQmTln\",\"centered\":\"dRVHXwzzcKdblA2zjVvY\",\"info\":\"jdVJFVHqsR5LPOYKPE2y\",\"icon\":\"q8ssaqfmRG_41FLqNapx\",\"cardTitle\":\"C_meosJJjU1VPWJYoaQ2\",\"description\":\"wDORTlX0JsXdv5nvSqRw\",\"descriptionAlt\":\"QpQKvVFnZIoP2Ufa3nff\"};","import React, { FC, useMemo } from 'react'\nimport cx from 'classnames'\n\nimport { PhotoCard as PhotoCardType } from '../../types'\nimport { thumbnailUrl } from 'pages/_serverRendered/CmsPage/utils'\n\nimport ClipboardIcon from 'svgs/clipboard'\nimport ToolsIcon from 'svgs/tools'\nimport ContractorIcon from 'svgs/contractor-2'\nimport PhoneIcon from 'svgs/phone'\nimport DollarSignIcon from 'svgs/dollar-sign'\nimport MoneyIcon from 'svgs/money'\nimport EmailIcon from 'svgs/email'\n\nimport PresentRichText from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n card: PhotoCardType\n}\nconst Card: FC = ({ card }) => {\n const icon = useMemo(() => {\n if (card.icon == 'Clipboard') return \n if (card.icon == 'Tools') return \n if (card.icon == 'Contractor') return \n if (card.icon == 'Phone') return \n if (card.icon == 'DollarSign') return \n if (card.icon == 'Money') return \n if (card.icon == 'Email') return \n\n return \n }, [card.icon])\n const color = card.image_background_color ? { backgroundColor: card.image_background_color } : {}\n return (\n
    \n {card.image.url ? (\n \n ) : (\n
    \n )}\n
    \n {card.icon != 'NONE' ?
    {icon}
    : null}\n \n \n \n
    \n
    \n )\n}\n\nexport default Card\n","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport { SlicePhotoCards } from '../../types'\n\nimport TitleHeader from '../Components/TitleHeader'\n\nimport Card from './Card'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n slice: SlicePhotoCards\n}\nconst PhotoCards: FC = ({ className, slice }) => {\n return (\n
    \n \n
    \n {slice.items.map((card, i) => (\n \n ))}\n
    \n
    \n )\n}\n\nexport default PhotoCards\n","// extracted by mini-css-extract-plugin\nexport default {\"listCards\":\"yQaFYhZp0r9Bygk5spiw\",\"titleBox\":\"D1rCJ4JjDeF2CyU1rVW8\",\"cards\":\"NrUV4mD2LirhfRagewIa\",\"card\":\"p4fPQ4j3I_6F7n_5YsLo\"};","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport { SliceListCards } from '../../types'\n\nimport PresentRichText from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\nimport TitleHeader from '../Components/TitleHeader'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n slice: SliceListCards\n}\nconst ListCards: FC = ({ className, slice }) => {\n return (\n
    \n \n
      \n {slice.items.map((card, i) => (\n
    • \n \n
    • \n ))}\n
    \n
    \n )\n}\n\nexport default ListCards\n","// extracted by mini-css-extract-plugin\nexport default {\"socialProof\":\"aHiGBnIi7U5pTfGrHjWF\",\"scroll\":\"mt0uIcfg_JmKIrWk4Qe2\",\"quotes\":\"cGG_8mYrfp2El6mUP8iQ\",\"item\":\"ERaJlpi3Iv2t789ZcOLL\",\"image\":\"DXFdJx6q4lEI_aWRrvoo\",\"quote\":\"yO4RIN1tdrHTlTyKSPIq\",\"cta\":\"iNgHoC5rLxaT53xldnsR\"};","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport { SliceSocialProof } from '../../types'\n\nimport PresentRichText from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n slice: SliceSocialProof\n}\nconst SocialProof: FC = ({ className, slice }) => {\n return (\n
    \n
    \n
    \n {slice.items.map((quote, i) => (\n
    \n {quote.logo.url && {quote.logo.alt}\n \n {quote.cta_url && quote.cta_url.url && (\n \n {quote.cta_text}\n \n )}\n
    \n ))}\n
    \n
    \n
    \n )\n}\n\nexport default SocialProof\n","// extracted by mini-css-extract-plugin\nexport default {\"tableOfContents\":\"jA3UK5oLwfdBuullDdEF\",\"titleBox\":\"HcGCKyaZXy4iEEV7O2uS\",\"groups\":\"X3_0qHdNrV6iSDH6AUxD\",\"group\":\"u2rmcqFEi21ZtSvI2NQS\",\"items\":\"tVTWtb1jj6CN53guCw1U\"};","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport { SliceTableOfContents, TableOfContentsItem } from '../../types'\n\nimport TitleHeader from '../Components/TitleHeader'\n\nimport styles from './styles.module.scss'\n\ninterface ToCGroup {\n reference_text?: string\n reference_id?: string\n section_id?: string\n children: Array\n}\n\ninterface Props {\n className?: string\n slice: SliceTableOfContents\n}\nconst TableOfContents: FC = ({ className, slice }) => {\n // First group all the items\n const groups = slice.items.reduce((acc, item) => {\n let group = acc.find((group) => group.section_id == item.section_id)\n if (!group) {\n group = { section_id: item.section_id, children: [] }\n acc.push(group)\n }\n if (!item.is_section_header) group.children.push(item)\n else {\n group.reference_text = item.reference_text\n group.reference_id = item.reference_id\n }\n return acc\n }, [] as Array)\n\n return (\n
    \n \n \n
    \n )\n}\n\nexport default TableOfContents\n","// extracted by mini-css-extract-plugin\nexport default {\"foldingItems\":\"oYu17rKp22IN9oaADDyQ\",\"titleBox\":\"FyLy7B1oc8Q00Zz0c3kG\",\"items\":\"pW78s2cTqM8YSspTQ7Lx\",\"title\":\"EKRL9Ja18E9JTY7uKy7s\",\"expandButton\":\"tS2raee7qbDoQE_wEGwd\",\"expanded\":\"vEV1fD0JBzmCGJ7ao8Jq\"};","import React, { FC, useState, useCallback } from 'react'\nimport { RichTextBlock } from 'prismic-reactjs'\nimport cx from 'classnames'\n\nimport { SliceFoldingItems } from '../../types'\n\nimport PresentRichText from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\nimport TitleHeader from '../Components/TitleHeader'\n\nimport styles from './styles.module.scss'\n\ninterface ItemProps {\n title: RichTextBlock[]\n info: RichTextBlock[]\n referenceId?: string\n startExpanded: boolean\n}\nconst FoldingItem: FC = ({ title, info, referenceId, startExpanded }) => {\n const [expanded, setExpanded] = useState(startExpanded)\n const toggle = useCallback(() => {\n setExpanded((prev) => !prev)\n }, [])\n\n return (\n <>\n \n \n \n )\n}\n\ninterface Props {\n className?: string\n slice: SliceFoldingItems\n}\nconst FoldingItems: FC = ({ className, slice }) => {\n return (\n
    \n \n
      \n {slice.items.map((item, i) => (\n
    • \n {slice.primary?.allow_collapsing ? (\n \n ) : (\n <>\n \n \n \n )}\n
    • \n ))}\n
    \n
    \n )\n}\n\nexport default FoldingItems\n","// extracted by mini-css-extract-plugin\nexport default {\"infoTable\":\"siqmo9489s7m5Ga4lGRq\",\"title\":\"iG2ahIZFeefvMflE8vXI\",\"content\":\"ZbvMU6dwW9J4leJ06mU2\",\"titleBox\":\"zXUAky82zwmYK_sPDvnE\",\"table\":\"ehAGvltKCRDHRqW7FsHw\",\"row\":\"lpOG7WRacP5fKn_d4BYU\",\"cell\":\"Lqyhje62CRQ_FmaL9v8H\",\"manyColumns\":\"pX0pPivnMankJHu2Zyhw\",\"notes\":\"YyYPlUyzpU7QbQc6tlF2\"};","import React, { FC, useMemo } from 'react'\nimport cx from 'classnames'\n\nimport { SliceInfoTable, InfoTableItem } from '../../types'\n\nimport PresentRichText from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\nimport TitleHeader from '../Components/TitleHeader'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n slice: SliceInfoTable\n}\nconst InfoTable: FC = ({ className, slice }) => {\n const columns = slice.primary?.columns || 2\n const rows = useMemo(() => {\n let column = 0\n const ret = (slice.items || []).reduce(\n (rows, item) => {\n if (column == 0) {\n rows.push([item])\n } else {\n rows[rows.length - 1].push(item)\n }\n column = Math.min(column + (item.column_span || 1), columns) % columns\n return rows\n },\n [] as Array>\n )\n // If we have column space left at the end, fill it in with null.\n const remainder = columns - ret[ret.length - 1].reduce((sum, item) => sum + (item.column_span || 1), 0)\n if (remainder > 0) {\n ret[ret.length - 1].push({ content: [], column_span: remainder, content_alignment: 'left' })\n }\n\n return ret\n }, [slice.items, columns])\n\n return (\n
    \n \n
    \n = 3 })}\n id={slice.primary?.reference_id}\n style={slice.primary?.border_color ? { borderColor: slice.primary.border_color } : {}}\n >\n
    \n {rows.map((row, ri) => (\n \n {row.map((item, ci) => {\n const style = {}\n if (slice.primary?.cell_color) {\n if (slice.primary?.cell_alt_color && ri % 2 == 1)\n style['background'] = slice.primary?.cell_alt_color\n else style['background'] = slice.primary?.cell_color\n }\n if (slice.primary?.text_color) style['color'] = slice.primary.text_color\n if (slice.primary?.border_color) style['borderColor'] = slice.primary.border_color\n if (item.cell_color) style['background'] = item.cell_color\n if (item.text_color) style['color'] = item.text_color\n\n return (\n \n \n \n )\n })}\n \n ))}\n \n
    \n
    \n \n
    \n \n \n )\n}\n\nexport default InfoTable\n","// extracted by mini-css-extract-plugin\nexport default {\"cmsPage\":\"cYB8LohOyvSsoJS5Cbrz\",\"header\":\"XR3yupND94R6mnIgFfya\",\"headerContainer\":\"LYSTBBZazEEUTyHVSAdu\",\"addressContainer\":\"KILGnCasI3Owabk182we\",\"hero\":\"nNjED2mil5YyL6yen6R9\",\"infoPoints\":\"MZnOQp7sJ22mZnJQxMwR\",\"section\":\"im04QnGOxg24ghsj23dI\",\"search\":\"aWnHFZG2NovUufmnn4XA\",\"cta\":\"ePhG1PgO4lVuNfawydyX\",\"hide\":\"kFmd_N7XmbqFhQjyg1J_\"};","import React, { FC, useEffect, useState, useRef, useCallback } from 'react'\nimport cx from 'classnames'\n\nimport { track, trackPage } from 'utils/analytics'\n\nimport { CmsPageData, Slice as SliceType } from './types'\nimport { ConvertAutocompleteRedirectTarget } from 'pages/_serverRendered/CmsPage/utils'\n\nimport ShowOrHideAdjustBanner from 'non-rendering/ShowOrHideAdjustBanner'\nimport CTAAdjustment, { useCTAAdjustment } from 'pages/_serverRendered/CmsPageV2/CtaAdjustment'\nimport { PlaceholderReplacements } from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText/processPlaceholders'\n\nimport AddressAutocompleteField from './AddressAutocompleteField'\nimport Header from 'components/MarketingSite/Header'\nimport Button from 'components/NikhilButton'\n\nimport Hero from './Hero'\nimport GetStarted from './GetStarted'\nimport BrowseStates from './BrowseStates'\nimport Footer from './Footer'\n\nimport CustomEmbed from './Sections/CustomEmbed'\nimport InfoPoints from './Sections/InfoPoints'\nimport ImageQuotes from './Sections/ImageQuotes'\nimport PhotoCards from './Sections/PhotoCards'\nimport ListCards from './Sections/ListCards'\nimport SocialProof from './Sections/SocialProof'\nimport TableOfContents from './Sections/TableOfContents'\nimport FoldingItems from './Sections/FoldingItems'\nimport InfoTable from './Sections/InfoTable'\n\nimport styles from './styles.module.scss'\n\nconst Slice: FC = (props) => {\n const { ...slice } = props\n\n if (\n [\n 'custom_embed',\n 'info_points_v2',\n 'image_quotes_v2',\n 'photo_cards_v2',\n 'list_cards_v2',\n 'social_proof_v2',\n 'table_of_contents_v2',\n 'folding_items_v2',\n 'info_table_v2',\n ].includes(slice.slice_type || '')\n ) {\n return (\n <>\n {slice.slice_type == 'custom_embed' ? (\n \n ) : slice.slice_type === 'info_points_v2' ? (\n \n ) : slice.slice_type === 'image_quotes_v2' ? (\n \n ) : slice.slice_type === 'photo_cards_v2' ? (\n \n ) : slice.slice_type === 'list_cards_v2' ? (\n \n ) : slice.slice_type === 'social_proof_v2' ? (\n \n ) : slice.slice_type === 'table_of_contents_v2' ? (\n \n ) : slice.slice_type === 'folding_items_v2' ? (\n \n ) : slice.slice_type === 'info_table_v2' ? (\n \n ) : null}\n \n )\n }\n return null\n}\n\nconst CmsPage: FC<{\n data: CmsPageData\n pageName: string\n webview: boolean\n slug?: string\n placeholder_replacements?: Record\n}> = ({\n data: {\n body,\n hero,\n get_started,\n browse_states,\n nav_how_it_works,\n nav_why_realm,\n nav_resources,\n nav_about,\n nav_sign_in,\n nav_get_started,\n autocomplete_redirect_target,\n page_id_for_tracking,\n address_autocomplete_visible,\n address_label,\n show_cta,\n cta_forward_utm_params,\n cta_referral_utm_params,\n cta_text,\n cta_url,\n cta_relative_url,\n },\n pageName,\n webview,\n slug,\n placeholder_replacements,\n}) => {\n const headerRef = useRef(null)\n const [heroAddressInputVisible, setHeroAddressInputVisible] = useState(\n hero?.[0] != null && hero[0].address_autocomplete_visible\n )\n const [heroCtaVisible, setHeroCtaVisible] = useState(hero?.[0] != null && hero[0].show_cta)\n const [campaignId, setCampaignId] = useState()\n const { url } = useCTAAdjustment(cta_url?.url, cta_referral_utm_params, cta_forward_utm_params, slug)\n\n useEffect(() => {\n trackPage(pageName || page_id_for_tracking)\n }, [pageName, page_id_for_tracking])\n\n // Ideally, the marketing campaign Id also comes from prismic.\n // Since we only have one campaign right now, we'll fake it here.\n useEffect(() => {\n // Set the campaignId only after the client loads, so we can detect what\n // page we're on and if we should do it. This whole useEffect block\n // won't be necessary if/when we push the campaignId from prismic\n if (window.location.pathname == '/l/giveaway') {\n const url = new (URL || window.URL)(window.location.href)\n if (!url.searchParams.has('mc')) {\n const campaignId = encodeURIComponent(btoa('giveaway-2021-10-18'))\n url.searchParams.append('mc', campaignId)\n window.history.replaceState(null, '', url.toString())\n setCampaignId(campaignId)\n } else {\n setCampaignId(url.searchParams.get('mc') as string)\n }\n }\n }, [])\n\n const handleRequestHeaderHeight = useCallback(() => {\n if (headerRef.current) return headerRef.current.offsetHeight\n }, [])\n\n const handleCtaClick = useCallback(async () => {\n await track('click cta', { cta: 'landing-page-header', module: 'header' })\n\n if (!cta_url && !cta_relative_url) return\n if (!url && !cta_relative_url) return\n\n if (url && cta_url && cta_url.target === '_blank') {\n window.open(url, '_blank')?.focus()\n } else {\n window.location.href = url || cta_relative_url || ''\n }\n }, [cta_url, url, cta_relative_url])\n\n return (\n \n \n
    \n {!webview && (\n \n {address_autocomplete_visible != false ? (\n
    \n \n
    \n ) : show_cta ? (\n
    \n \n {cta_text || 'Get Started'}\n \n
    \n ) : (\n
    \n )}\n \n )}\n {hero?.[0] != null && (\n \n )}\n {body.map((slice, index) => (\n \n ))}\n {!webview && (\n <>\n {get_started?.[0]?.show_get_started != false && (\n \n )}\n \n
    \n \n \n )}\n
    \n \n \n )\n}\n\nexport default CmsPage\n","import React, { FC } from 'react'\nimport cx from 'classnames'\nimport Info from '@mui/icons-material/Info'\n\ninterface AlertProps {\n alert: { type: 'error' | 'success'; message: string } | null\n}\n\nconst Alert: FC = ({ alert }) => {\n if (!alert) return null\n\n return (\n \n \n
    {alert.message}
    \n
    \n )\n}\n\nexport default Alert\n","import React, {\n FC,\n PropsWithChildren,\n FormEvent,\n useState,\n useCallback,\n useEffect,\n ReactNode,\n SetStateAction,\n useMemo,\n} from 'react'\nimport Check from '@mui/icons-material/Check'\nimport Close from '@mui/icons-material/Close'\nimport { SignUpResponse, UserStub } from 'recoil/user'\nimport { identify, track } from 'utils/analytics'\nimport { patchFormData, postFormData } from 'utils/fetch'\nimport { searchGooglePlaces } from 'apis/googlePlaces'\nimport Alert from 'pages/_serverRendered/EventSignup/Alert'\nimport CoreButton from 'components/Core/CoreButton'\nimport CoreInput from 'components/Core/CoreInput'\nimport TermsConsentMessage from 'components/TermsConsentMessage'\nimport Spinner from 'components/Spinner'\n\nexport interface SignupFormUserStub {\n id?: number\n full_name: string\n phone_number: string\n email: string\n}\nclass SignupError extends Error {\n errors: { [key: string]: string }\n\n constructor(errors: { [key: string]: string }) {\n super('Signup error')\n this.name = this.constructor.name\n this.errors = errors\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor)\n } else {\n this.stack = new Error('Signup error').stack\n }\n }\n}\n\ninterface SignupFormProps extends PropsWithChildren {\n className?: string\n header?: ReactNode\n onSuccess?: (user: SignupFormUserStub, creatingPropertyToken?: string) => void\n emailOptional?: boolean\n addressOptional?: boolean\n alert: { type: 'error' | 'success'; message: string } | null\n setAlert: React.Dispatch>\n hideNotes?: boolean\n testMarketplace?: boolean\n sandbox?: boolean\n successMessage?: string\n}\n\nconst SignupForm: FC = ({\n className,\n header,\n onSuccess,\n children,\n emailOptional,\n addressOptional,\n alert,\n setAlert,\n hideNotes,\n testMarketplace,\n sandbox,\n successMessage,\n}) => {\n const [formData, setFormData] = useState(null)\n const [errors, setErrors] = useState<{ [key: string]: string }>({})\n const [fetching, setFetching] = useState(false)\n const [formKey, setFormKey] = useState(Date.now())\n const [placeId, setPlaceId] = useState()\n const [loadingPlace, setLoadingPlace] = useState(false)\n const [marketplace, setMarketplace] = useState(null)\n\n const handleSubmit = useCallback((e: FormEvent) => {\n e.preventDefault()\n\n setFormData(new FormData(e.target as HTMLFormElement))\n }, [])\n\n const handleAddressChange = useCallback((prediction: { address: string; place_id: string }) => {\n setPlaceId(prediction?.place_id)\n }, [])\n\n useEffect(() => {\n if (!placeId) return\n\n const _ = async () => {\n setLoadingPlace(true)\n const place = await searchGooglePlaces({ placeId })\n setMarketplace(place.marketplace)\n setLoadingPlace(false)\n }\n _()\n }, [placeId])\n\n const trackNewUser = useCallback(\n async (user: UserStub) => {\n // call identify before tracking the signup event so that we have Realm's User Id already in place.\n await identify(user)\n\n await track(\n 'signup',\n {\n $email: user.email,\n $name: user.full_name,\n address: user.entered_address,\n via: 'form',\n signupDate: user.created_at,\n is_marketplace: marketplace,\n },\n {\n id: 24230,\n args: {\n orderId: `signup-${user.id}`,\n customerId: user.id,\n customerEmail: user.sha1_email,\n },\n }\n )\n },\n [marketplace]\n )\n\n const simulateNewUser = useCallback(\n (formData: FormData) => {\n if (!onSuccess) return\n\n const email = formData.get('user[email]')?.toString()\n const full_name = formData.get('user[full_name]')?.toString()\n const phone_number = formData.get('user[phone_number]')?.toString()\n\n if (!email || !full_name || !phone_number) {\n if (!email) setErrors({ email: 'missing' })\n if (!full_name) setErrors({ full_name: 'missing' })\n if (!phone_number) setErrors({ phone_number: 'missing' })\n return\n }\n\n const user = { email, full_name, phone_number }\n onSuccess(user)\n },\n\n [onSuccess]\n )\n\n const registerNewLead = useCallback(\n async (formData: FormData) => {\n const response = await postFormData('/users/leads', formData)\n if (response.isError) {\n const rawErrors = response.jsonBody as { [key: string]: string[] }\n const newErrors = Object.keys(rawErrors).reduce(\n (memo, key) => {\n memo[key] = rawErrors[key].join(', ')\n return memo\n },\n {} as { [key: string]: string }\n )\n throw new SignupError(newErrors)\n }\n\n const user = response.jsonBody.user as SignupFormUserStub\n track('event-lead', { $email: user.email, $name: user.full_name })\n if (onSuccess) onSuccess(user, response.jsonBody.pollable_job_token)\n },\n [onSuccess]\n )\n\n const registerNewUser = useCallback(\n async (formData) => {\n const response = await postFormData('/users', formData)\n if (response.isError) {\n const rawErrors = response.jsonBody as { [key: string]: string[] }\n const newErrors = Object.keys(rawErrors).reduce(\n (memo, key) => {\n memo[key] = rawErrors[key].join(', ')\n return memo\n },\n {} as { [key: string]: string }\n )\n throw new SignupError(newErrors)\n }\n\n const user = (response.jsonBody as SignUpResponse).user\n trackNewUser(user)\n if (onSuccess) onSuccess(user, response.jsonBody.pollable_job_token)\n },\n [trackNewUser, onSuccess]\n )\n\n const updateUser = useCallback(\n async (formData) => {\n const response = await patchFormData('/api/v1/users/signup_details/', formData)\n if (response.isError) {\n const rawErrors = response.jsonBody as { [key: string]: string[] }\n const newErrors = Object.keys(rawErrors).reduce(\n (memo, key) => {\n memo[key] = rawErrors[key].join(', ')\n return memo\n },\n {} as { [key: string]: string }\n )\n throw new SignupError(newErrors)\n }\n\n const user = {\n email: formData.get('user[email]'),\n full_name: formData.get('user[full_name]'),\n phone_number: formData.get('user[phone_number]'),\n }\n if (onSuccess) onSuccess(user)\n },\n [onSuccess]\n )\n\n useEffect(() => {\n const _ = async () => {\n if (!formData) return\n if (fetching) return\n\n const email = formData.get('user[email]')?.toString()\n const mode = !email?.length && emailOptional ? 'lead' : 'user'\n\n try {\n setErrors({})\n setFetching(true)\n\n await (sandbox\n ? simulateNewUser(formData)\n : mode == 'lead'\n ? registerNewLead(formData)\n : registerNewUser(formData))\n\n setFormData(null)\n setFetching(false)\n setAlert({ type: 'success', message: successMessage || 'User added!' })\n setFormKey(Date.now())\n } catch (e) {\n if (e instanceof SignupError) {\n if (e.errors.email == 'has already been taken') {\n sandbox ? simulateNewUser(formData) : updateUser(formData)\n } else {\n setErrors(e.errors)\n }\n } else {\n console.error(e)\n setAlert({ type: 'error', message: 'An error occurred' })\n }\n setFormData(null)\n setFetching(false)\n }\n }\n _()\n }, [\n emailOptional,\n fetching,\n formData,\n registerNewLead,\n registerNewUser,\n setAlert,\n updateUser,\n simulateNewUser,\n sandbox,\n successMessage,\n ])\n\n useEffect(() => {\n let timeout\n if (alert) timeout = setTimeout(() => setAlert(null), 5000)\n\n return () => clearTimeout(timeout)\n }, [alert, setAlert])\n\n const formatEnteredAddress = useCallback((value: string) => `place_id:${value}`, [])\n\n const addressIcon = useMemo(() => {\n if (!testMarketplace) return\n\n return loadingPlace ? (\n \n ) : marketplace ? (\n \n ) : marketplace == false ? (\n \n ) : undefined\n }, [testMarketplace, loadingPlace, marketplace])\n\n return (\n
    \n {header}\n \n \n \n \n \n {!hideNotes && }\n \n {children}\n \n \n \n )\n}\n\nexport default SignupForm\n","import React, { FC, FormEvent, useCallback, useEffect, useState, ChangeEvent } from 'react'\nimport SignupForm, { SignupFormUserStub } from 'pages/_serverRendered/EventSignup/SignupForm'\nimport RealmLogo from 'components/MarketingSite/Header/RealmLogo'\nimport CoreInput from 'components/Core/CoreInput'\nimport CoreText from 'components/Core/CoreText'\nimport { InlineWidget, useCalendlyEventListener } from 'react-calendly'\nimport CoreButton from 'components/Core/CoreButton'\nimport { useAdjustBanner } from 'non-rendering/ShowOrHideAdjustBanner'\nimport {\n eventAdditionalNotesState,\n eventsAddedUserState,\n eventSelectedTeamMemberState,\n EventSignupMode,\n eventsSelectedMarketState,\n eventsSelectedModeState,\n} from 'recoil/events'\nimport { RecoilRoot, useRecoilState } from 'recoil'\nimport QRCode from 'react-qr-code'\nimport { patchFormData } from 'utils/fetch'\nimport cx from 'classnames'\n\ninterface Props {\n events_team_members: string[] | null\n sales_events: { name: string; event_type: string | null; event_category: string | null }[] | null\n webview: boolean\n calendly_url: string | null\n calendly_url_for_rebuilds: string | null\n project_types: string[] | null\n sandbox?: boolean\n non_app_signup_type: string\n skip_meeting_prompt?: boolean\n allow_start_over?: boolean\n title?: string\n}\n\nconst Inner: FC = ({\n events_team_members,\n calendly_url,\n calendly_url_for_rebuilds,\n sales_events,\n project_types,\n sandbox,\n non_app_signup_type,\n title,\n skip_meeting_prompt,\n allow_start_over = true,\n}) => {\n const [mode, setMode] = useRecoilState(eventsSelectedModeState)\n const [alert, setAlert] = useState<{ type: 'error' | 'success'; message: string } | null>(null)\n const [user, setUser] = useRecoilState(eventsAddedUserState)\n const [eventScheduled, setEventScheduled] = useState(false)\n const [calendarType, setCalendarType] = useState<'normal' | 'rebuild'>('normal')\n const [notes, setNotes] = useRecoilState(eventAdditionalNotesState)\n\n const [eventName, setEventName] = useRecoilState(eventsSelectedMarketState)\n const [referrer, setReferrer] = useRecoilState(eventSelectedTeamMemberState)\n\n const { hideAdjustBanner } = useAdjustBanner()\n useEffect(() => hideAdjustBanner(), [hideAdjustBanner])\n\n useEffect(() => setNotes(''), [setNotes])\n\n const handleReset = useCallback(() => {\n setUser(null)\n setNotes('')\n setMode('user-info')\n }, [setUser, setMode, setNotes])\n\n useEffect(() => {\n const params = new URLSearchParams(window.location.search)\n if (params.has('n')) {\n handleReset()\n }\n }, [handleReset])\n\n const handleClickRenovation = useCallback(() => {\n setCalendarType('normal')\n setMode('schedule-meeting')\n }, [setMode])\n\n const handleClickRebuild = useCallback(() => {\n setCalendarType('rebuild')\n setMode('schedule-meeting')\n }, [setMode])\n\n const handleSwitchMode = useCallback(\n (value: EventSignupMode) => {\n return () => setMode(value)\n },\n [setMode]\n )\n\n const handleChangeNotes = useCallback(\n (e: ChangeEvent) => {\n setNotes(e.target.value)\n },\n [setNotes]\n )\n\n const handleSuccess = useCallback(\n (user: SignupFormUserStub) => {\n if (!user.email?.length) handleReset()\n else {\n setUser(user)\n if (!calendly_url) handleReset()\n else setMode(skip_meeting_prompt ? 'schedule-meeting' : 'prompt-meeting')\n }\n },\n [calendly_url, handleReset, setUser, setMode, skip_meeting_prompt]\n )\n\n const handleSubmitNotes = useCallback(\n async (event: FormEvent) => {\n event.preventDefault()\n if (!user) return\n\n try {\n if (!sandbox) {\n await patchFormData(`/api/v1/users/signup_details`, new FormData(event.target as HTMLFormElement))\n }\n setAlert({ type: 'success', message: 'User notes saved!' })\n } catch (e) {\n console.error(e)\n setAlert({ type: 'error', message: 'Error saving user notes' })\n }\n\n allow_start_over ? handleReset() : setMode('thanks')\n },\n [user, handleReset, sandbox, allow_start_over, setMode]\n )\n\n const handleGoBackHome = useCallback(() => {\n handleReset()\n window.location.replace('/')\n }, [handleReset])\n\n useEffect(() => {\n if (window) window.scrollTo(0, 0)\n }, [user, mode])\n\n useEffect(() => {\n if (!user && mode != 'user-info') setMode('user-info')\n if (!!user && mode == 'user-info') setMode('prompt-meeting')\n }, [user, mode, setMode])\n\n useEffect(() => {\n if (!sales_events || sales_events.some((x) => x && x.name == eventName) == false) setEventName('')\n if (events_team_members?.includes(referrer) == false) setReferrer('')\n }, [setEventName, sales_events, eventName, events_team_members, referrer, setReferrer])\n\n const handleEventScheduled = useCallback(() => {\n setEventScheduled(true)\n }, [])\n\n useEffect(() => {\n setEventScheduled(false)\n }, [user])\n\n useCalendlyEventListener({\n onEventScheduled: () => handleEventScheduled(),\n })\n\n return (\n \n {sandbox && (\n
    \n {'You are in sandbox mode. Users will not be created.'}\n
    \n )}\n {user && calendly_url && mode == 'schedule-meeting' ? (\n
    \n \n
    \n {allow_start_over && (\n \n )}\n {eventScheduled && (\n \n )}\n
    \n
    \n ) : (\n <>\n
    \n \n
    \n
    \n {!user ? (\n \n \n {title || 'Event Signup'}\n \n {!!sales_events && (\n \n {sales_events.map((event) => (\n \n ))}\n \n )}\n {!!events_team_members && (\n \n {events_team_members.map((teamMember) => (\n \n ))}\n \n )}\n
    \n }\n className=\"tw:space-y-4\"\n addressOptional\n emailOptional\n >\n \n \n \n \n ) : mode == 'prompt-download' ? (\n
    \n \n {'Download our award-winning app to save time and money on your renovations!'}\n \n \n {allow_start_over && (\n \n )}\n
    \n ) : mode == 'prompt-meeting' ? (\n
    \n \n {'Do you want to schedule a meeting?'}\n \n \n {!!calendly_url_for_rebuilds && (\n \n )}\n \n
    \n ) : mode == 'thanks' ? (\n
    \n {'Thank you'}\n \n {'Thank you for choosing Realm, our team will be in touch to get started.'}\n \n \n
    \n ) : mode == 'prompt-notes' ? (\n
    \n \n {'Do you want to leave additional notes or set the project type?'}\n \n \n \n
    \n ) : mode == 'user-notes' && !!user ? (\n
    \n \n \n {`Notes for ${user.full_name}`}\n \n {!!project_types && (\n \n {project_types.map((projectType) => (\n \n ))}\n \n )}\n \n \n \n ) : null}\n \n
    \n \n )}\n
    \n )\n}\n\nconst EventSignup: FC = (props) => {\n return (\n \n \n \n )\n}\n\nexport default EventSignup\n","import React from 'react'\n\nimport Bath from 'svgs/bath'\nimport Bed from 'svgs/bed'\nimport cx from 'classnames'\n\nimport styles from './styles.module.scss'\nimport ImageWithBackup from 'components/ImageWithBackup'\nimport DefaultAvatar from 'components/DefaultAvatar'\n\nexport interface HomeSearchResultItem {\n id: string\n url: string\n image_url: string\n backup_image_url: string\n display_address: string\n bedroomscount: number\n bathcount: number\n arealotsf: number\n value: number\n}\n\ninterface Props {\n results: HomeSearchResultItem[]\n loading: boolean\n columns?: number\n}\n\nconst HomeSearchListings: React.FC = ({ results, loading, columns }) => {\n if (!results || !results.length) return null\n\n return (\n
    \n {results.map((result, i) => {\n if (!result) {\n return
    \n }\n return (\n \n \n }\n />\n ) : (\n \n )\n }\n />\n
    \n {result.display_address}\n
    \n
    \n
    {result.value}
    \n
    \n
    \n
    {result.bedroomscount}
    \n \n
    \n
    \n
    {result.bathcount}
    \n \n
    \n
    {`${result.arealotsf} sqft`}
    \n
    \n
    \n )\n })}\n
    \n )\n}\n\nexport default HomeSearchListings\n","import { Calendar } from './types'\nimport { atom } from 'recoil'\n\nexport const homeownerSiteVisitCalendarState = atom({\n key: 'homeownerSiteVisitCalendarState',\n default: null,\n})\n","import React, { FC } from 'react'\nimport SearchOff from '@mui/icons-material/SearchOff'\nimport { Calendar } from './types'\n\ninterface NotFoundProps {\n calendar: Calendar\n}\n\nconst NotFound: FC = ({ calendar }) => {\n return (\n
    \n
    \n \n
    \n

    {'Site visit not found'}

    \n

    \n {'If you believe there is an error, please reach out to '}\n \n {calendar.advisor.email}\n \n

    \n
    \n )\n}\n\nexport default NotFound\n","import React, { FC } from 'react'\nimport Person from '@mui/icons-material/Person'\nimport { Event } from '../types'\n\ntype VendorDetailsProps = {\n event: Event\n}\n\nconst VendorDetails: FC = ({ event }) => {\n if (!event.contact) return null\n\n return (\n
    \n
    {'Vendor details'}
    \n
    \n
    \n
    \n \n
    \n
    {event.contact.company_name}
    \n
    \n
    \n
    \n )\n}\n\nexport default VendorDetails\n","import React, { FC } from 'react'\nimport ChevronRight from '@mui/icons-material/ChevronRight'\nimport Email from '@mui/icons-material/Email'\nimport Phone from '@mui/icons-material/Phone'\nimport AvatarOrInitials from 'components/AvatarOrInitials'\nimport { Calendar } from '../types'\n\ntype PointOfContactLinesProps = {\n calendar: Calendar\n}\n\nconst PointOfContactLines: FC = ({ calendar }) => {\n return (\n <>\n
    \n \n
    \n
    {calendar.advisor.name}
    \n
    {'Project Operations Manager'}
    \n
    \n
    \n {calendar.advisor.email && (\n \n
    \n \n
    \n
    {calendar.advisor.email}
    \n \n \n )}\n {calendar.advisor.phone_number && (\n \n
    \n \n
    \n
    {calendar.advisor.display_phone_number || calendar.advisor.phone_number}
    \n \n \n )}\n \n )\n}\n\nexport default PointOfContactLines\n","import React, { FC } from 'react'\nimport { Calendar } from '../types'\nimport PointOfContactLines from 'pages/_serverRendered/HomeownerSiteVisit/components/PointOfContactLines'\n\ntype PointOfContactProps = {\n calendar: Calendar\n}\n\nconst PointOfContact: FC = ({ calendar }) => {\n return (\n
    \n
    {'Realm Point of Contact'}
    \n
    \n \n
    \n
    \n )\n}\n\nexport default PointOfContact\n","import React, { FC } from 'react'\nimport EventBusy from '@mui/icons-material/EventBusy'\nimport { Calendar, Event } from './types'\nimport VendorDetails from './components/VendorDetails'\nimport PointOfContact from './components/PointOfContact'\n\ninterface CanceledProps {\n calendar: Calendar\n event: Event\n}\n\nconst Canceled: FC = ({ calendar, event }) => {\n return (\n
    \n
    \n
    \n \n
    \n

    {'Site visit canceled'}

    \n

    \n {'This site visit was canceled. If you believe this is an error, reach out to '}\n \n {calendar.advisor.email}\n \n

    \n
    \n \n \n
    \n )\n}\n\nexport default Canceled\n","import React, { FC, useCallback } from 'react'\nimport Error from '@mui/icons-material/Error'\nimport BaseModal from 'components/BaseModal'\nimport { Calendar } from './types'\nimport PointOfContactLines from './components/PointOfContactLines'\n\ninterface AlreadyRescheduledModalProps {\n calendar: Calendar\n open: boolean\n setOpen: (open: boolean) => void\n}\n\nconst AlreadyRescheduledModal: FC = ({ calendar, open, setOpen }) => {\n const handleClose = useCallback(() => {\n setOpen(false)\n }, [setOpen])\n\n return (\n \n
    \n \n
    \n
    \n

    {'Please contact your advisor'}

    \n

    \n {\n 'This meeting has already been rescheduled once. You must contact your advisors if you want to reschedule again.'\n }\n

    \n
    \n \n
    \n \n {'Close'}\n \n
    \n
    \n )\n}\n\nexport default AlreadyRescheduledModal\n","import React, { FC, useCallback } from 'react'\nimport ChatBubble from '@mui/icons-material/ChatBubble'\nimport BaseModal from 'components/BaseModal'\nimport { Calendar } from './types'\nimport PointOfContactLines from './components/PointOfContactLines'\n\ninterface TooCloseToEventTimeModalProps {\n calendar: Calendar\n open: boolean\n setOpen: (open: boolean) => void\n}\n\nconst TooCloseToEventTimeModal: FC = ({ calendar, open, setOpen }) => {\n const handleClose = useCallback(() => {\n setOpen(false)\n }, [setOpen])\n\n return (\n \n
    \n \n
    \n
    \n

    {'Please contact your advisor'}

    \n

    \n {\n \"For changes less than 24 hours before the site visit, please contact your advisor. Our vendors' time is valuable and we want to respect it as much as possible.\"\n }\n

    \n
    \n \n
    \n \n {'Close'}\n \n
    \n
    \n )\n}\n\nexport default TooCloseToEventTimeModal\n","import React, { FC, useCallback } from 'react'\nimport dayjs from 'dayjs'\nimport utc from 'dayjs/plugin/utc'\nimport timezone from 'dayjs/plugin/timezone'\nimport Person from '@mui/icons-material/Person'\nimport Error from '@mui/icons-material/Error'\nimport CalendarToday from '@mui/icons-material/CalendarToday'\nimport WatchLater from '@mui/icons-material/WatchLater'\nimport BaseModal from 'components/BaseModal'\nimport CoreButton from 'components/Core/CoreButton'\nimport { Calendar, Event } from './types'\n\ndayjs.extend(utc)\ndayjs.extend(timezone)\n\ninterface RescheduleWarningModalProps {\n open: boolean\n setOpen: (open: boolean) => void\n calendar: Calendar\n event: Event\n onConfirm: () => void\n}\n\nconst RescheduleWarningModal: FC = ({ open, setOpen, calendar, event, onConfirm }) => {\n const handleClose = useCallback(() => {\n setOpen(false)\n }, [setOpen])\n\n return (\n \n
    \n \n
    \n
    \n

    {'Are you sure you want to reschedule?'}

    \n

    \n {'Rescheduling may delay your project and disrupt vendor availability'}\n

    \n
    \n
    \n \n
    \n
    {event.contact?.company_name}
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {dayjs(event.start_time).tz(calendar.property.time_zone).format('ddd, D MMM')}\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {dayjs(event.start_time).tz(calendar.property.time_zone).format('h:mm')}\n {' - '}\n {dayjs(event.end_time).tz(calendar.property.time_zone).format('h:mm A')}\n
    \n
    {'Pacific Time'}
    \n
    \n
    \n
    \n \n \n
    \n
    \n )\n}\n\nexport default RescheduleWarningModal\n","import React, { FC, useCallback, useEffect, useMemo, useState } from 'react'\nimport dayjs from 'dayjs'\nimport timezone from 'dayjs/plugin/timezone'\nimport EventAvailable from '@mui/icons-material/EventAvailable'\nimport CalendarToday from '@mui/icons-material/CalendarToday'\nimport EventRepeat from '@mui/icons-material/EventRepeat'\nimport LocationOn from '@mui/icons-material/LocationOn'\nimport WatchLater from '@mui/icons-material/WatchLater'\nimport { Calendar, Event } from './types'\nimport AlreadyRescheduledModal from './AlreadyResceduledModal'\nimport TooCloseToEventTimeModal from './TooCloseToEventTimeModal'\nimport RescheduleWarningModal from './RescheduleWarningModal'\nimport VendorDetails from './components/VendorDetails'\nimport PointOfContact from './components/PointOfContact'\n\ndayjs.extend(timezone)\n\nconst TOO_CLOSE_TIME = 24 * 60 * 60 * 1000\n\ninterface ScheduledProps {\n calendar: Calendar\n event: Event\n setRescheduling: (rescheduling: boolean) => void\n reschedulingRequestSent: boolean\n}\n\nconst Scheduled: FC = ({ calendar, event, setRescheduling, reschedulingRequestSent }) => {\n const [scheduleRequestCount, setScheduleRequestCount] = useState(0)\n const [alreadyRescheduledModalOpen, setAlreadyRescheduledModalOpen] = useState(false)\n const [tooCloseToEventModal, setTooCloseToEventModal] = useState(false)\n const [rescheduleWarningModalOpen, setRescheduleWarningModalOpen] = useState(false)\n const [rescheduleWarningConfirmed, setRescheduleWarningConfirmed] = useState(false)\n\n const tooCloseToEvent = useMemo(() => {\n if (!event) return false\n return dayjs(event.start_time).tz(calendar.property.time_zone).diff() <= TOO_CLOSE_TIME\n }, [event, calendar])\n\n useEffect(() => {\n if (event?.status == 'rescheduled') {\n setAlreadyRescheduledModalOpen(true)\n } else if (tooCloseToEvent) {\n setTooCloseToEventModal(true)\n } else if (!rescheduleWarningConfirmed && event?.status != 'unscheduled') {\n setRescheduleWarningModalOpen(true)\n }\n }, [scheduleRequestCount, event, tooCloseToEvent, rescheduleWarningConfirmed])\n\n const handleRescheduleClick = useCallback(() => {\n setScheduleRequestCount((oldScheduleRequestCount) => oldScheduleRequestCount + 1)\n }, [])\n\n const handleRescheduleWarningConfirmed = useCallback(() => {\n setRescheduleWarningModalOpen(false)\n setRescheduleWarningConfirmed(true)\n setRescheduling(true)\n }, [setRescheduling])\n\n if (!event.contact) return null\n\n return (\n
    \n {reschedulingRequestSent || event.status == 'unscheduled' ? (\n
    \n
    \n \n
    \n

    \n {`Your availability was updated & request was sent to ${event.contact.company_name} to reschedule`}\n

    \n

    \n {\"They will now choose their preferred times, and we'll confirm your site visit soon.\"}\n

    \n
    \n ) : (\n
    \n
    \n \n
    \n

    {'Site visit scheduled'}

    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {dayjs(event.start_time).tz(calendar.property.time_zone).format('ddd, D MMM')}\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {dayjs(event.start_time).tz(calendar.property.time_zone).format('h:mm')}\n {' - '}\n {dayjs(event.end_time).tz(calendar.property.time_zone).format('h:mm A')}\n
    \n
    {'Pacific Time'}
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    {calendar.property.delivery_line_1}
    \n
    \n {[calendar.property.city, calendar.property.state, calendar.property.zip5].filter(Boolean).join(', ')}\n
    \n
    \n
    \n
    \n \n {'Reschedule'}\n \n
    \n )}\n \n \n \n \n \n
    \n )\n}\n\nexport default Scheduled\n","import { postJSON } from 'utils/fetch'\n\nexport const postHomeownerRescheduleRequest = async (\n calendarId: string,\n eventId: string,\n body: Record\n) => {\n return await postJSON(`/homeowner_site_visits/${calendarId}/events/${eventId}`, body)\n}\n","import dayjs, { Dayjs } from 'dayjs'\nimport timezone from 'dayjs/plugin/timezone'\nimport utc from 'dayjs/plugin/utc'\n\ndayjs.extend(utc)\ndayjs.extend(timezone)\n\nexport type MarkTypes = 'default' | 'dark'\n\nexport interface CalendarMarks {\n [date: number]: MarkTypes\n}\n\nexport const setMark = function (marks: CalendarMarks, date: Dayjs, mark: MarkTypes): CalendarMarks {\n return { ...marks, [date.startOf('day').toDate().getTime()]: mark }\n}\nexport const getMark = function (marks: CalendarMarks, date: Dayjs): undefined | MarkTypes {\n return marks[date.startOf('day').toDate().getTime()]\n}\nexport const clearMark = function (marks: CalendarMarks, date: Dayjs): CalendarMarks {\n const remKey = date.startOf('day').toDate().getTime()\n const newMarks = { ...marks }\n delete newMarks[remKey]\n return newMarks\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"calendar\":\"lWbXbv440hnXhVXCT8uW\",\"title\":\"puuxs2fODBk7IxmclIQc\",\"controls\":\"h5c_qlP4sOgDdIscwYak\",\"prev\":\"F3ZyEOyzuDmSzWCZLk0P\",\"next\":\"jMxzK_IZPGJzzgF9tvYz\",\"week\":\"RWt0FpQ9ceKWy1nzXlpl\",\"month\":\"JFSUsGncAYHfaoYj1WIj\",\"day\":\"NHx4gsq_k5FufMrhFf7p\",\"dayOfWeek\":\"l45iR1MmKIELEuAER69U\",\"date\":\"XAItvCrWwBM_0hEOnD99\",\"valid\":\"hIpkzaxgJlKPeYVEsXJ4\",\"default\":\"R1OPHA1N0i0N65byKncr\",\"dark\":\"Uq9PaKgpY0lQD9pKaP1r\",\"selected\":\"u1Y_ZlkjoHe1ztONHOr7\",\"expandMore\":\"vjruSZn0i7NNGLK9ziVD\"};","import React, { FC, useMemo, useCallback, MouseEvent } from 'react'\nimport cx from 'classnames'\nimport dayjs, { Dayjs } from 'dayjs'\nimport timezone from 'dayjs/plugin/timezone'\nimport utc from 'dayjs/plugin/utc'\n\nimport { CalendarMarks, getMark } from './types'\n\nimport CoreText from 'components/Core/CoreText'\n\nimport styles from './styles.module.scss'\n\ndayjs.extend(utc)\ndayjs.extend(timezone)\n\ninterface DayProps {\n date: Dayjs\n selected: boolean\n marked?: string\n onSelected: (day: Dayjs) => void\n onCalculateValidDate?: (day: Dayjs) => boolean\n}\n\nconst Day: FC = ({ date, selected, marked, onSelected, onCalculateValidDate }) => {\n const handleClick = useCallback(\n (e: MouseEvent) => {\n e.preventDefault()\n onSelected(date)\n },\n [onSelected, date]\n )\n\n const isValid = useMemo(() => {\n return onCalculateValidDate ? onCalculateValidDate(date) : false\n }, [onCalculateValidDate, date])\n\n return (\n
  • \n \n
  • \n )\n}\n\ninterface MonthProps {\n selected: Dayjs\n marks: CalendarMarks\n visibleWeeks: number\n onSelected: (date: Dayjs) => void\n onCalculateValidDate?: (day: Dayjs) => boolean\n}\n\nconst Month: FC = ({ selected, marks, visibleWeeks, onSelected, onCalculateValidDate }) => {\n const days = useMemo(() => {\n const totalDays = visibleWeeks * 7\n const firstOfMonth = selected.startOf('M')\n const adjustFrom = visibleWeeks >= 5 ? firstOfMonth : selected\n const start = adjustFrom.startOf('w')\n\n const theMonth: Dayjs[] = []\n for (let x = 0; x < totalDays; x++) {\n theMonth.push(start.add(x, 'd'))\n }\n return theMonth\n }, [selected, visibleWeeks])\n return (\n
      \n {days.slice(0, 7).map((day) => (\n
    1. \n \n {day.format('ddd')}\n \n
    2. \n ))}\n {days.map((day) => (\n \n ))}\n
    \n )\n}\n\nexport default Month\n","import React, { FC, useMemo, useCallback, MouseEvent } from 'react'\nimport cx from 'classnames'\nimport dayjs, { Dayjs } from 'dayjs'\nimport timezone from 'dayjs/plugin/timezone'\nimport utc from 'dayjs/plugin/utc'\n\nimport { CalendarMarks, getMark } from './types'\n\nimport CoreText from 'components/Core/CoreText'\n\nimport styles from './styles.module.scss'\n\ndayjs.extend(utc)\ndayjs.extend(timezone)\n\ninterface DayProps {\n date: Dayjs\n selected: boolean\n marked?: string\n onSelected: (day: Dayjs) => void\n onCalculateValidDate?: (day: Dayjs) => boolean\n}\n\nconst Day: FC = ({ date, selected, marked, onSelected, onCalculateValidDate }) => {\n const handleClick = useCallback(\n (e: MouseEvent) => {\n e.preventDefault()\n onSelected(date)\n },\n [onSelected, date]\n )\n\n const isValid = useMemo(() => {\n return onCalculateValidDate ? onCalculateValidDate(date) : false\n }, [onCalculateValidDate, date])\n\n return (\n
  • \n \n
  • \n )\n}\n\ninterface WeekProps {\n selected: Dayjs\n marks: CalendarMarks\n onSelected: (date: Dayjs) => void\n onCalculateValidDate?: (day: Dayjs) => boolean\n}\n\nconst Week: FC = ({ selected, marks, onSelected, onCalculateValidDate }) => {\n const days = useMemo(() => {\n const theWeek: Dayjs[] = []\n const start = selected.startOf('w')\n for (let x = 0; x < 7; x++) {\n theWeek.push(start.add(x, 'd'))\n }\n return theWeek\n }, [selected])\n return (\n
      \n {days.map((day) => (\n \n ))}\n
    \n )\n}\n\nexport default Week\n","import React, { FC, useState, useCallback, useMemo, useEffect } from 'react'\nimport cx from 'classnames'\nimport dayjs, { Dayjs } from 'dayjs'\nimport timezone from 'dayjs/plugin/timezone'\nimport utc from 'dayjs/plugin/utc'\nimport advanced from 'dayjs/plugin/advancedFormat'\n\nimport { CalendarMarks } from './types'\n\nimport ArrowIcon from 'svgs/arrow-forward-ios'\nimport ExpandIcon from 'svgs/expand-more'\n\nimport CoreButton from 'components/Core/CoreButton'\nimport CoreText from 'components/Core/CoreText'\n\nimport Month from './Month'\nimport Week from './Week'\n\nimport styles from './styles.module.scss'\n\nexport type { CalendarMarks, MarkTypes } from './types'\nexport { setMark } from './types'\n\ndayjs.extend(timezone)\ndayjs.extend(utc)\ndayjs.extend(advanced)\n\ntype View = 'week' | 'twoWeek' | 'month'\n\ninterface CalendarProps {\n className?: string\n selected?: Date\n marks: CalendarMarks\n initialView?: View\n allowViewChange?: boolean\n timezone?: string\n\n onSelectionChange: React.Dispatch>\n onTrackAttempt?: (code: string, flexfield_1?: any) => void\n onCalculateValidDate?: (day: Dayjs) => boolean\n}\n\nconst Calendar: FC = ({\n className,\n selected,\n marks,\n initialView = 'week',\n allowViewChange = true,\n timezone,\n onSelectionChange,\n onTrackAttempt,\n onCalculateValidDate,\n}) => {\n const [view, setView] = useState(initialView)\n\n const track = useCallback(\n (code: string, flexfield_1?: any) => {\n if (!onTrackAttempt) return\n onTrackAttempt(code, flexfield_1)\n },\n [onTrackAttempt]\n )\n\n const handlePrevClicked = useCallback(() => {\n track('previous', { view: view })\n if (view == 'month') {\n onSelectionChange((prev) => {\n let date = dayjs(prev)\n if (timezone) date = date.tz(timezone)\n return date.add(-1, 'month').toDate()\n })\n } else {\n onSelectionChange((prev) => {\n let date = dayjs(prev)\n if (timezone) date = date.tz(timezone)\n return date.add(-1, 'week').toDate()\n })\n }\n }, [view, onSelectionChange, track, timezone])\n const handleNextClicked = useCallback(() => {\n track('next', { view: view })\n if (view == 'month') {\n onSelectionChange((prev) => {\n let date = dayjs(prev)\n if (timezone) date = date.tz(timezone)\n return date.add(1, 'month').toDate()\n })\n } else {\n onSelectionChange((prev) => {\n let date = dayjs(prev)\n if (timezone) date = date.tz(timezone)\n return date.add(1, 'week').toDate()\n })\n }\n }, [view, onSelectionChange, track, timezone])\n\n const handleTodayClicked = useCallback(() => {\n const date = new Date()\n track('select-date', { date: date, option: 'today' })\n onSelectionChange(new Date())\n }, [onSelectionChange, track])\n\n const handleDateSelected = useCallback(\n (date: Dayjs) => {\n track('select-date', { date: date.toDate() })\n onSelectionChange(date.toDate())\n },\n [onSelectionChange, track]\n )\n\n const handleShowMoreClicked = useCallback(() => {\n track('show-more')\n setView('twoWeek')\n }, [track])\n const handleShowMonthClicked = useCallback(() => {\n track('show-month')\n setView('month')\n }, [track])\n\n useEffect(() => {\n if (!selected) onSelectionChange(new Date())\n }, [selected, onSelectionChange])\n\n const defaultHandleCalculateValidDate = useCallback(\n (date: Dayjs) => {\n let now = dayjs(new Date())\n if (timezone) now = now.tz(timezone)\n now = now.startOf('day')\n return date.startOf('day').isAfter(now)\n },\n [timezone]\n )\n\n const djsSelected = useMemo(() => {\n let date = dayjs(selected)\n if (timezone) date = date.tz(timezone)\n\n return date\n }, [selected, timezone])\n\n return (\n
    \n
    \n \n {djsSelected.format('MMMM, YYYY')}\n \n
    \n }\n size=\"s\"\n kind=\"secondary\"\n type=\"button\"\n onClick={handlePrevClicked}\n />\n \n }\n size=\"s\"\n kind=\"secondary\"\n type=\"button\"\n onClick={handleNextClicked}\n />\n
    \n
    \n {view == 'week' ? (\n \n ) : (\n \n )}\n {allowViewChange && view != 'month' && (\n
    \n {view == 'twoWeek' ? (\n }\n onClick={handleShowMonthClicked}\n />\n ) : (\n }\n onClick={handleShowMoreClicked}\n />\n )}\n
    \n )}\n
    \n )\n}\n\nexport default Calendar\n","import React, { FC, PropsWithChildren } from 'react'\nimport CheckCircle from '@mui/icons-material/CheckCircle'\nimport Circle from '@mui/icons-material/Circle'\n\ninterface ValidationCheckProps {\n valid: boolean\n}\n\nconst ValidationCheck: FC> = ({ children, valid }) => {\n return (\n
    \n {valid ? (\n \n ) : (\n \n )}\n
    {children}
    \n
    \n )\n}\n\nexport default ValidationCheck\n","// extracted by mini-css-extract-plugin\nexport default {\"slots\":\"hg4n_UpaL9xwXFnqejiU\",\"timeSlots\":\"WsE496CfcchOIuOE12Cs\"};","import React, { FC, PropsWithChildren, useMemo, useCallback } from 'react'\nimport cx from 'classnames'\nimport dayjs from 'dayjs'\nimport utc from 'dayjs/plugin/utc'\nimport timezone from 'dayjs/plugin/timezone'\nimport { Block } from '../../../Availabilities/Time'\nimport CoreButton from 'components/Core/CoreButton'\nimport { Event } from '../../../types'\nimport styles from './styles.module.scss'\n\ndayjs.extend(utc)\ndayjs.extend(timezone)\n\nexport interface SlotBlock extends Block {\n selected: boolean\n event: Event | null\n}\n\ninterface SlotProps {\n event: Event\n className?: string\n block: SlotBlock\n timezone: string\n adjustedNow: Date\n onClick: (block: SlotBlock) => void\n}\n\nconst Slot: FC> = ({ event, className, block, timezone, adjustedNow, onClick }) => {\n const djsStartDate = useMemo(() => {\n return dayjs(block.start).tz(timezone)\n }, [block.start, timezone])\n\n const djsEndDate = useMemo(() => {\n return dayjs(block.end).tz(timezone)\n }, [block.end, timezone])\n\n const handleClick = useCallback(() => {\n onClick(block)\n }, [block, onClick])\n\n const disabled = useMemo(() => {\n if (block.event) return false\n\n return block.start.getTime() < adjustedNow.getTime()\n }, [adjustedNow, block])\n\n const text = [\n block.event && event.id != block.event.id ? 'Site visit scheduled' : null,\n block.event && event.id == block.event.id ? 'Rescheduled site visit' : null,\n [djsStartDate, djsEndDate].map((e) => e.format('h:mm A')).join(' - '),\n ]\n .filter(Boolean)\n .join(' • ')\n\n return (\n
  • \n \n
  • \n )\n}\n\nexport default Slot\n","import React, { FC, PropsWithChildren, useMemo, useCallback } from 'react'\nimport cx from 'classnames'\nimport dayjs from 'dayjs'\nimport utc from 'dayjs/plugin/utc'\nimport timezone from 'dayjs/plugin/timezone'\nimport { Block } from '../../../Availabilities/Time'\nimport CoreText from 'components/Core/CoreText'\nimport { Event } from '../../../types'\nimport Slot, { SlotBlock } from './Slot'\nimport styles from './styles.module.scss'\n\ndayjs.extend(utc)\ndayjs.extend(timezone)\n\nconst START_TIME = 7\nconst END_TIME = 18\n\ninterface SlotsProps {\n event: Event\n className?: string\n selectedDate: Date\n timezone: string\n adjustedNow: Date\n availabilities: Block[]\n events: Event[]\n onChange: (start: Date, end: Date, selected: boolean) => void\n}\n\nconst Slots: FC> = ({\n event,\n className,\n selectedDate,\n timezone,\n adjustedNow,\n availabilities,\n events,\n onChange,\n}) => {\n const djsSelectedDate = useMemo(() => {\n return dayjs(selectedDate).tz(timezone)\n }, [selectedDate, timezone])\n\n const startOfDay = useMemo(() => {\n return djsSelectedDate.startOf('day').add(START_TIME, 'hours')\n }, [djsSelectedDate])\n\n const endOfDay = useMemo(() => {\n return djsSelectedDate.startOf('day').add(END_TIME, 'hours')\n }, [djsSelectedDate])\n\n const todaysAvailabilities = useMemo(() => {\n const iStartOfDay = startOfDay.toDate().getTime()\n const iEndOfDay = endOfDay.toDate().getTime()\n // Truncate all availability blocks to our start and end of day.\n return availabilities.reduce((all, block) => {\n let start = block.start.getTime()\n let end = block.end.getTime()\n\n if (iEndOfDay <= start) return all\n if (iStartOfDay >= end) return all\n\n start = Math.max(iStartOfDay, start)\n end = Math.min(iEndOfDay, end)\n\n if (start >= end) return all\n return [...all, { start: new Date(start), end: new Date(end) }]\n }, [] as Block[])\n }, [startOfDay, endOfDay, availabilities])\n\n const allAvailabilities = useMemo(() => {\n // Create an availability for each hour of the day.\n // Mark them as selected if they are entirely covered by\n // Today's availability.\n // If partially covered, split it up\n const raw = new Array(END_TIME - START_TIME).fill(null).reduce((all, _, i) => {\n const start = startOfDay.add(i, 'hours').toDate().getTime()\n const end = startOfDay\n .add(i + 1, 'hours')\n .toDate()\n .getTime()\n\n let newBlocks: SlotBlock[] = []\n\n const taken = events\n .filter((event) => {\n const eStart = new Date(event.start_time as string)\n const eEnd = new Date(event.end_time as string)\n return eEnd.getTime() > start && eStart.getTime() < end\n })\n .map((event) => ({\n event: event,\n start: new Date(event.start_time as string),\n end: new Date(event.end_time as string),\n }))\n\n if (taken.length > 0) {\n if (start < taken[0].start.getTime()) {\n newBlocks.push({ start: new Date(start), end: taken[0].start, selected: false, event: null })\n }\n newBlocks = [\n ...newBlocks,\n ...taken.map((event) => ({\n start: new Date(Math.max(event.start.getTime(), start)),\n end: new Date(Math.min(event.end.getTime(), end)),\n selected: false,\n event: event.event,\n })),\n ]\n if (end > taken[0].end.getTime()) {\n newBlocks.push({ start: taken[0].end, end: new Date(end), selected: false, event: null })\n }\n } else {\n newBlocks.push({ start: new Date(start), end: new Date(end), selected: false, event: null })\n }\n\n const selected = todaysAvailabilities.filter((block) => {\n return block.end.getTime() > start && block.start.getTime() < end\n })\n\n if (selected.length > 0) {\n newBlocks = newBlocks.reduce((nbAll, newBlock) => {\n // Any new block that has an event, doesn't need to be selected.\n if (newBlock.event) return [...nbAll, newBlock]\n // Any new block that is out of bounds from our select can be ignored\n if (\n newBlock.end.getTime() <= selected[0].start.getTime() ||\n newBlock.start.getTime() >= selected.slice(-1)[0].end.getTime()\n ) {\n return [...nbAll, newBlock]\n }\n\n if (newBlock.start.getTime() < selected[0].start.getTime()) {\n nbAll = [...nbAll, { start: newBlock.start, end: selected[0].start, selected: false, event: null }]\n }\n nbAll = [\n ...nbAll,\n ...selected.reduce((fromMatched, match) => {\n const start = Math.max(match.start.getTime(), newBlock.start.getTime())\n const end = Math.min(match.end.getTime(), newBlock.end.getTime())\n // Don't include it if it is empty.\n if (start == end) return fromMatched\n return [\n ...fromMatched,\n {\n start: new Date(start),\n end: new Date(end),\n selected: true,\n event: null,\n },\n ]\n }, [] as SlotBlock[]),\n ]\n if (newBlock.end.getTime() > selected.slice(-1)[0].end.getTime()) {\n nbAll = [...nbAll, { start: selected.slice(-1)[0].end, end: newBlock.end, selected: false, event: null }]\n }\n return nbAll\n }, [] as SlotBlock[])\n }\n\n return [...all, ...newBlocks]\n }, [] as SlotBlock[])\n\n // Any events that are split up, but next to each other can be combined.\n return raw.reduce((all, block) => {\n if (!all.length) return [block]\n\n const last = all.slice(-1)[0]\n const rest = all.slice(0, -1)\n if (block.event && block.event?.id == last.event?.id) {\n return [...rest, { ...last, end: block.end }]\n }\n return [...all, block]\n }, [] as SlotBlock[])\n }, [todaysAvailabilities, startOfDay, events])\n\n const handleSlotClick = useCallback(\n (block: SlotBlock) => {\n if (block.event) return\n onChange(block.start, block.end, !block.selected)\n },\n [onChange]\n )\n\n return (\n
    \n
    \n \n {`${djsSelectedDate.format('ddd').toUpperCase()}, ${djsSelectedDate.format('D MMM')}`}\n \n \n {djsSelectedDate.format('zzz')}\n \n
    \n
      \n {allAvailabilities.map((block) => (\n \n ))}\n
    \n
    \n )\n}\n\nexport default Slots\n","import React, { FC, useCallback, useState, useMemo, Dispatch, SetStateAction } from 'react'\nimport dayjs, { Dayjs } from 'dayjs'\nimport utc from 'dayjs/plugin/utc'\nimport timezone from 'dayjs/plugin/timezone'\nimport { track } from 'utils/analytics'\nimport { Calendar, Event } from '../../types'\nimport CoreText from 'components/Core/CoreText'\nimport CoreButton from 'components/Core/CoreButton'\nimport CoreDivider from 'components/Core/CoreDivider'\nimport CalendarComponent, { CalendarMarks, setMark } from '../../Availabilities/Calendar'\nimport { Block } from '../../Availabilities/Time'\nimport ValidationCheck from './ValidationCheck'\nimport Slots from './Slots'\n\ndayjs.extend(utc)\ndayjs.extend(timezone)\n\ninterface UpdateAvailabilityProps {\n calendar: Calendar\n event: Event\n availabilities: Block[]\n setAvailabilities: Dispatch>\n adjustedNow: Date\n sendingRescheduleRequest: boolean\n setSendingRescheduleRequest: (sendingRescheduleRerquest: boolean) => void\n}\n\nconst UpdateAvailability: FC = ({\n calendar,\n event,\n availabilities,\n setAvailabilities,\n adjustedNow,\n sendingRescheduleRequest,\n setSendingRescheduleRequest,\n}) => {\n const [selectedDate, setSelectedDate] = useState(() => {\n if (availabilities.length > 0) {\n return availabilities[0].start\n }\n return new Date()\n })\n\n const daysWithAvailability = useMemo(() => {\n return availabilities.reduce((days, block) => {\n // A block could span more than 1 day.\n const start = dayjs(block.start).tz(calendar.property.time_zone).startOf('day')\n const end = dayjs(block.end).tz(calendar.property.time_zone).add(1, 'day').startOf('day')\n const numDays = end.diff(start, 'days')\n for (let d = 0; d < numDays; d++) {\n const day = start.add(d, 'days')\n const iDay = day.toDate().getTime()\n if (!days.some((existingDay) => existingDay.toDate().getTime() == iDay)) {\n days = [...days, day]\n }\n }\n return days\n }, [] as Dayjs[])\n }, [availabilities, calendar.property.time_zone])\n\n const marks = useMemo(() => {\n return daysWithAvailability.reduce((marks, day) => {\n return setMark(marks, day, 'default')\n }, {} as CalendarMarks)\n }, [daysWithAvailability])\n\n const handleConfirm = useCallback(() => {\n setSendingRescheduleRequest(true)\n }, [setSendingRescheduleRequest])\n\n const handleTrackAttempted = useCallback((code: string, flexfield_1: any) => {\n track('click', { family: 'homeowner-site-visit', screen: 'reschedule', section: 'availability', code, flexfield_1 })\n }, [])\n\n const handleCalculateValidDate = useCallback(\n (date: Dayjs) => {\n const daydate = date.startOf('day')\n // Show nothing before now\n const sodNow = dayjs(adjustedNow).tz(calendar.property.time_zone).startOf('day')\n return daydate.isAfter(sodNow)\n },\n [calendar.property.time_zone, adjustedNow]\n )\n\n const handleSlotsChanged = useCallback(\n (start: Date, end: Date, selected: boolean) => {\n setAvailabilities((prev) => {\n let newBlock: Block | null = { start, end }\n\n if (selected) {\n // Add a new block in at the correct spot (ordered by start)\n prev = prev.reduce((all, block) => {\n if (newBlock && block.start.getTime() > newBlock.start.getTime()) {\n all = [...all, newBlock]\n newBlock = null\n }\n return [...all, block]\n }, [] as Block[])\n // If it wasn't inserted yet, add it to the end.\n if (newBlock) prev.push(newBlock)\n\n // Now make sure we don't have any overlap.\n prev = prev.reduce((all, block) => {\n const last: null | Block = all.slice(-1)[0] || null\n const rest = all.slice(0, -1)\n if (!last) return [block]\n\n // If our block starts before the last block ends,\n // they must be merged\n if (last.end.getTime() >= block.start.getTime()) {\n return [\n ...rest,\n {\n // Because we're ordered, we never will have the current block's\n // start time less than the last block's start time.\n start: last.start,\n end: new Date(Math.max(last.end.getTime(), block.end.getTime())),\n },\n ]\n }\n return [...all, block]\n }, [] as Block[])\n } else {\n // Subtract our new block from every existing block.\n prev = prev.reduce((all, block) => {\n if (!newBlock) return [...all, block]\n\n if (newBlock.start.getTime() <= block.start.getTime() && newBlock.end.getTime() >= block.end.getTime()) {\n // If newBlock covers the entirety of block, then block can be\n // dropped\n return all\n } else if (\n newBlock.start.getTime() > block.start.getTime() &&\n newBlock.end.getTime() < block.end.getTime()\n ) {\n // If newBlock is 'inside' block, then split block in two.\n return [\n ...all,\n {\n start: block.start,\n end: newBlock.start,\n },\n {\n start: newBlock.end,\n end: block.end,\n },\n ]\n } else if (newBlock.start.getTime() <= block.start.getTime()) {\n // Truncate start of current block\n return [\n ...all,\n {\n start: new Date(Math.max(newBlock.end.getTime(), block.start.getTime())),\n end: block.end,\n },\n ]\n } else if (newBlock.end.getTime() >= block.end.getTime()) {\n // Truncate end of current block\n return [\n ...all,\n {\n start: block.start,\n end: new Date(Math.min(newBlock.start.getTime(), block.end.getTime())),\n },\n ]\n }\n\n return [...all, block]\n }, [] as Block[])\n }\n\n return prev\n })\n },\n [setAvailabilities]\n )\n\n const validThreeDays = useMemo(() => daysWithAvailability.length >= 3, [daysWithAvailability])\n\n const validOneWeekday = useMemo(() => {\n return daysWithAvailability.some((day) => [1, 2, 3, 4, 5].includes(day.day()))\n }, [daysWithAvailability])\n\n const validMinHours = useMemo(() => {\n const availableHours = availabilities.reduce((a, e) => {\n const hoursWithinBlock = dayjs(e.end).diff(dayjs(e.start), 'hours')\n return a + hoursWithinBlock\n }, 0)\n return availableHours >= calendar.number_of_vendors_to_schedule * 3\n }, [availabilities, calendar.number_of_vendors_to_schedule])\n\n const valid = useMemo(() => {\n return validThreeDays && validOneWeekday && validMinHours\n }, [validThreeDays, validOneWeekday, validMinHours])\n\n return (\n
    \n
    \n \n {'Confirm or update your availability for vendors to reschedule the site visit'}\n \n \n {'Please confirm or update your availability so vendors can reliably schedule site visits.'}\n \n
    \n
    \n \n \n ['scheduled', 'occuring'].includes(e.status))}\n onChange={handleSlotsChanged}\n />\n\n
    \n \n \n {'Available across at least 3 days'}\n \n \n \n \n {'Availability must include at least one weekday'}\n \n \n {calendar.number_of_vendors_to_schedule > 0 && (\n \n \n {`At least ${calendar.number_of_vendors_to_schedule * 3}hrs of availability required`}\n \n \n )}\n
    \n
    \n \n
    \n
    \n
    \n )\n}\n\nexport default UpdateAvailability\n","import React, { FC, useCallback } from 'react'\nimport CoreInput from 'components/Core/CoreInput'\nimport CoreButton from 'components/Core/CoreButton'\n\ninterface RescheduleReasonProps {\n reason: string\n setReason: (reason: string) => void\n setGotReason: (gotReason: boolean) => void\n}\n\nconst RescheduleReason: FC = ({ reason, setReason, setGotReason }) => {\n const handleContinueClick = useCallback(() => {\n if (reason) setGotReason(true)\n }, [reason, setGotReason])\n\n return (\n
    \n
    \n

    \n {'Why do you need to reschedule?'}\n

    \n \n
    \n
    \n \n
    \n
    \n )\n}\n\nexport default RescheduleReason\n","import React, { FC, useEffect, useMemo, useState } from 'react'\nimport dayjs from 'dayjs'\nimport utc from 'dayjs/plugin/utc'\nimport timezone from 'dayjs/plugin/timezone'\nimport { useSetRecoilState } from 'recoil'\nimport { Calendar, Event } from '../types'\nimport { postHomeownerRescheduleRequest } from '../api'\nimport UpdateAvailability from './UpdateAvailability'\nimport RescheduleReason from './RescheduleReason'\nimport { homeownerSiteVisitCalendarState } from '../state'\nimport { Block } from '../Availabilities/Time'\n\ndayjs.extend(utc)\ndayjs.extend(timezone)\n\ntype RescheduleProps = {\n calendar: Calendar\n event: Event\n setRescheduling: (rescheduling: boolean) => void\n setReschedulingRequestSent: (reschedulingRequestSent: boolean) => void\n}\n\nconst Reschedule: FC = ({ calendar, event, setRescheduling, setReschedulingRequestSent }) => {\n const setCalendar = useSetRecoilState(homeownerSiteVisitCalendarState)\n const [gotReason, setGotReason] = useState(false)\n const [reason, setReason] = useState('')\n const [sendingRescheduleRequest, setSendingRescheduleRequest] = useState(false)\n\n // Increment size will be 30m, or if our event duration is smaller, that.\n const incrementSize = useMemo(() => Math.min(30, calendar.event_duration) * 60 * 1000, [calendar])\n\n const adjustedNow = useMemo(() => {\n return new Date(\n Math.ceil(\n dayjs()\n .tz(calendar.property.time_zone)\n .add(calendar.booking_lead_time || 0, 'minutes')\n .toDate()\n .getTime() / incrementSize\n ) * incrementSize\n )\n }, [calendar, incrementSize])\n\n const [availabilities, setAvailabilities] = useState(() => {\n // Normalize the start and end times.\n const blocks = calendar.availabilities.reduce((newAvail, block) => {\n const origStart = dayjs(block.time.start).tz(calendar.property.time_zone).toDate()\n const origEnd = dayjs(block.time.end).tz(calendar.property.time_zone).toDate()\n\n // Show nothing before 'now' (plus lead time)\n const start = Math.max(adjustedNow.getTime(), Math.floor(origStart.getTime() / incrementSize) * incrementSize)\n const end = Math.ceil(origEnd.getTime() / incrementSize) * incrementSize\n\n // Only need to add if the timespan is > 0\n if (start < end) {\n newAvail.push({\n start: dayjs(start).tz(calendar.property.time_zone).toDate(),\n end: dayjs(end).tz(calendar.property.time_zone).toDate(),\n })\n }\n return newAvail\n }, [] as Block[])\n\n return blocks\n })\n\n useEffect(() => {\n if (!sendingRescheduleRequest) return\n\n const controller = new AbortController()\n const _ = async () => {\n try {\n const body = { homeowner_site_visit: { reason, availabilities } }\n const response = await postHomeownerRescheduleRequest(calendar.id, event.id, body)\n if (!response.isError) {\n setCalendar(response.jsonBody.calendar)\n setReschedulingRequestSent(true)\n setRescheduling(false)\n } else {\n console.error(response.jsonBody)\n alert('An unexpected error has occurred, please reload the page')\n }\n } catch (e) {\n if (!controller.signal.aborted) {\n console.error(e)\n }\n } finally {\n setSendingRescheduleRequest(false)\n }\n }\n _()\n\n return () => {\n controller.abort()\n }\n }, [\n availabilities,\n calendar.id,\n event.id,\n reason,\n sendingRescheduleRequest,\n setCalendar,\n setRescheduling,\n setReschedulingRequestSent,\n ])\n\n if (!gotReason) {\n return \n }\n\n return (\n \n )\n}\n\nexport default Reschedule\n","import React, { FC, useMemo, useEffect, useState } from 'react'\nimport dayjs from 'dayjs'\nimport utc from 'dayjs/plugin/utc'\nimport { RecoilRoot, useRecoilState } from 'recoil'\nimport timezone from 'dayjs/plugin/timezone'\nimport { addStickyProps } from 'utils/analytics'\nimport { Calendar } from './types'\nimport OverlayMount from 'layouts/components/OverlayMount'\nimport PageLoad from 'non-rendering/PageLoad'\nimport PageTitle from 'components/PageTitle'\nimport { homeownerSiteVisitCalendarState } from './state'\nimport NotFound from './NotFound'\nimport Canceled from './Canceled'\nimport Scheduled from './Scheduled'\nimport Reschedule from './Reschedule'\nimport Logo from 'svgs/logo'\n\ndayjs.extend(utc)\ndayjs.extend(timezone)\n\ninterface HomeownerSiteVisitProps {\n calendar: Calendar\n}\n\nconst HomeownerSiteVisit: FC = ({ calendar }) => {\n const [rescheduling, setRescheduling] = useState(false)\n const [reschedulingRequestSent, setReschedulingRequestSent] = useState(false)\n\n useEffect(() => {\n if (!calendar.impersonated) return\n\n addStickyProps({ impersonated: calendar.impersonated }, true)\n }, [calendar.impersonated])\n\n const event = useMemo(() => {\n return calendar.events.find((event) => calendar.target_event_id == event.id)\n }, [calendar])\n\n const status: 'unscheduled' | 'scheduled' | 'canceled' | 'declined' = useMemo(() => {\n if (event) {\n if (event.status == 'canceled') return 'canceled'\n if (event.status == 'declined') return 'declined'\n\n if (['scheduled', 'occurring', 'completed'].includes(event.status)) return 'scheduled'\n }\n\n return 'unscheduled' // Our default.\n }, [event])\n\n // Scroll to the top of the page any time our status changes.\n useEffect(() => {\n try {\n window.scrollTo({ top: 0, left: 0, behavior: 'instant' } as any)\n } catch {\n // Fallback in case the above isn't supported.\n window.scrollTo(0, 0)\n }\n }, [status])\n\n // Any time our calendar changes, update CSRF\n useEffect(() => {\n if (!window) return\n document.querySelector('meta[name=csrf-param]')?.setAttribute('content', calendar.csrf_param)\n document.querySelector('meta[name=csrf-token]')?.setAttribute('content', calendar.csrf_token)\n }, [calendar])\n\n return (\n \n \n \n
    \n {calendar.impersonated && (\n
    \n {'You are now impersonating '}\n {{calendar.property.email}}\n
    \n )}\n
    \n
    \n \n {!event || !event.contact || ['occurring', 'completed'].includes(event.status) ? (\n \n ) : ['canceled', 'declined'].includes(event.status) ? (\n \n ) : rescheduling ? (\n \n ) : !rescheduling ? (\n \n ) : null}\n
    \n
    \n
    \n
    \n )\n}\n\nconst WrappedHomeownerSiteVisit: FC = (props) => {\n const [calendar, setCalendar] = useRecoilState(homeownerSiteVisitCalendarState)\n\n useEffect(() => {\n setCalendar(props.calendar)\n }, [props.calendar, setCalendar])\n\n if (calendar == null) return null\n\n return \n}\n\nconst Wrapped2HomeownerSiteVisit: FC = (props) => {\n return (\n \n \n \n )\n}\n\nexport default Wrapped2HomeownerSiteVisit\n","// extracted by mini-css-extract-plugin\nexport default {\"hero\":\"dl3_DTWWkDAwfCnxqp5G\",\"heroContainer\":\"eWv76KxQSx9Q8JGVzgXP\",\"disclaimer\":\"kCHOlxJq7Tws4zrnCkOi\",\"content\":\"IOIOfksOr_pN3Deg5Xps\",\"mediaContainer\":\"Nob4DkRstIA9LfbrnER7\",\"videoSubContainer\":\"nroseZS4ZQdMJWZAogV7\",\"image\":\"GNDdpdwVXxG8lZE21emg\",\"searchContainer\":\"sYDKHdKLC2NhDJDlmvkh\",\"button\":\"goN3tDzkfUeTyAKx0mp7\",\"labelLong\":\"iGXIguQWbfxcLxQvSJKO\",\"labelShort\":\"pZq5W0UDJM7XT4OvwryV\",\"search\":\"iHVZ_kbCzP2ntZZKOHgK\"};","import React, { FC, PropsWithChildren, useMemo } from 'react'\nimport cx from 'classnames'\nimport { Link as PrismicLinkData } from 'prismic-reactjs'\nimport WistiaVideo from 'components/WistiaVideo'\n\nimport styles from './styles.module.scss'\n\nconst extractWistiaVideoIdFromUrl = (url: string) => {\n const match = url.match(/myrealm.wistia.com\\/medias\\/(.+)/)\n if (match && match.length > 1) {\n return match[1]\n }\n\n return null\n}\n\ninterface Props {\n className?: string\n disclaimer?: string\n media?: PrismicLinkData\n}\n\nconst Hero: FC> = ({ children, className, disclaimer, media }) => {\n const videoId = useMemo(() => {\n if (media && media.link_type == 'Web') {\n return extractWistiaVideoIdFromUrl(media.url || '')\n }\n }, [media])\n\n return (\n
    \n
    \n
    {children}
    \n
    \n {media && media.link_type === 'Media' && \"\"}\n {media && media.link_type === 'Web' && videoId && (\n
    \n \n
    \n )}\n
    \n
    \n {disclaimer &&

    {disclaimer}

    }\n
    \n )\n}\n\nexport default Hero\n","import React, { FC } from 'react'\n\nimport CmsPage from 'pages/_serverRendered/CmsPage'\nimport { CmsPageData } from 'pages/_serverRendered/CmsPage/types'\n\nconst Homepage: FC<{ data: CmsPageData }> = ({ data }) => {\n return \n}\n\nexport default Homepage\n","// extracted by mini-css-extract-plugin\nexport default {\"background\":\"P0LnBz2qAWtEP8h6Izta\",\"floatUp\":\"UWoYta9q5BlCEdPmvurz\",\"image\":\"raNmDXeiyQl8Hl0QtfMo\",\"landscape\":\"h0pEIDntC6we7TaIpuof\",\"portrait\":\"_udm_rkX_6tAdmzczSSs\",\"large\":\"OWljp_XEYsvYzPyquoRP\",\"medium\":\"uys2_5xwEbYYMFo8qbCE\"};","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport { HeroImage } from '../../types'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n image: HeroImage\n orientation: 'square' | 'landscape' | 'portrait'\n}\n\nconst Image: FC = ({ className, image, orientation }) => {\n const isLandscape = orientation == 'landscape'\n const isPortrait = orientation == 'portrait'\n const srcset = [\n { img: isLandscape ? image.landscape : isPortrait ? image.portrait : image, size: '1x' },\n { img: isLandscape ? image.landscape_2x : isPortrait ? image.portrait_2x : image.square_2x, size: '2x' },\n ]\n .filter((img) => !!img.img)\n .map((img) => `${img.img?.url} ${img.size}`)\n .join(',')\n\n return (\n \n )\n}\n\nexport default Image\n","import React, { FC, useMemo } from 'react'\nimport cx from 'classnames'\n\nimport { HeroImageItem } from '../../types'\n\nimport Image from './Image'\n\nimport styles from './styles.module.scss'\n\ninterface RenderImage {\n original: HeroImageItem\n depth: number\n x: number\n y: number\n}\n\nconst RNG_SEED = 1527\n\n// This is a very light seeded RNG (mulberry32) that will give us just\n// enough consistant randomness for initialization\nfunction seeded_random(a) {\n return function () {\n let t = (a += 0x6d2b79f5)\n t = Math.imul(t ^ (t >>> 15), t | 1)\n t ^= t + Math.imul(t ^ (t >>> 7), t | 61)\n return ((t ^ (t >>> 14)) >>> 0) / 4294967296\n }\n}\n\nfunction int(value: string | undefined | null, def: number): number {\n if (typeof value === 'undefined' || value == null) return def\n const ret = parseInt(value)\n if (Number.isNaN(ret)) return def\n return ret\n}\n\nconst MAX_ANIMATION_TIME = 120000\n\ninterface Props {\n className?: string\n images: Array\n minSpeed?: number\n drag?: number\n minWidth?: number\n minHeight?: number\n}\n\nconst Background: FC = ({ className, images, minSpeed }) => {\n const imgs: Array = useMemo(() => {\n const rand = seeded_random(RNG_SEED)\n\n const unitSize = 100 / images.length\n\n // We want to make a relatively even distribution, and avoid clumps (initially)\n // in our x, y and z.\n // x is taken care of because we start out putting one per unit (with some\n // minor dirt)\n const startYs = images\n .map((_, i) => ({ value: unitSize * i, sort: rand() }))\n .sort((a, b) => a.sort - b.sort)\n .map((item) => item.value)\n const startZ = images\n .map((_, i) => ({ value: unitSize * i, sort: rand() }))\n .sort((a, b) => a.sort - b.sort)\n .map((item) => item.value)\n\n return images.map((image, i) => ({\n original: image,\n depth: int(image.depth, startZ[i]),\n x: unitSize * i + int(image.distance, (rand() - 0.5) * unitSize),\n y: (int(image.angle, startYs[i] * 3.6) / 360) * -1,\n }))\n }, [images])\n\n const animationTime = !minSpeed ? MAX_ANIMATION_TIME : MAX_ANIMATION_TIME / minSpeed\n const animationPlayState = minSpeed == 0 ? 'paused' : 'running'\n\n return (\n
    \n
      \n {imgs.map((image, i) => {\n const className = cx({\n [styles.landscape]: image.original.orientation == 'landscape',\n [styles.portrait]: image.original.orientation == 'portrait',\n [styles.large]: image.original.size == 'large',\n [styles.medium]: image.original.size == 'medium',\n })\n return (\n \n \n \n )\n })}\n
    \n
    \n )\n}\n\nexport default Background\n","// extracted by mini-css-extract-plugin\nexport default {\"title\":\"egiLMcQGxEbR6xH9aJTe\",\"rightJustify\":\"SofmVRYw2oNgegqgdg_F\",\"leftJustify\":\"kk0K25a7wRitFfv0r0XA\"};","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport PresentRichText, { hasTextPresent } from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\nimport { RichTextBlock } from 'prismic-reactjs'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n title?: RichTextBlock[]\n}\nconst SectionTitle: FC = ({ className, title }) => {\n // no render if no titles.\n if (!hasTextPresent(title)) {\n return null\n }\n return (\n
    \n {title?.map((part, i) => {\n let cl = ''\n if (part.text && ['<', '>'].includes(part.text[0])) {\n cl = part.text[0] == '<' ? styles.leftJustify : styles.rightJustify\n part = {\n ...part,\n text: part.text.substring(1),\n spans: part.spans?.map((span) => ({\n start: span.start - 1,\n end: span.end - 1,\n type: span.type,\n })),\n }\n }\n return \n })}\n
    \n )\n}\n\nexport default SectionTitle\n","// extracted by mini-css-extract-plugin\nexport default {\"rotator\":\"g3HKT9U2qlbh8AokYusV\",\"options\":\"t7IJYuwq8GjuwSKdcL0w\",\"spin\":\"p0937AurTfeNnlfa4T44\",\"rotate-up\":\"SU3jBwdsTRG4jwGRUiVw\"};","import React, { FC, useState, useEffect, useMemo } from 'react'\nimport cx from 'classnames'\n\nimport styles from './styles.module.scss'\n\n// Circular increment\nfunction inc(value, max) {\n return (value + 1) % max\n}\n\ninterface Props {\n className?: string\n options: Array\n interval: number\n}\nconst Rotator: FC = ({ className, options, interval }) => {\n const [lastOption, setLastOption] = useState(0)\n const [curOption, setCurOption] = useState(0)\n\n // Begin rotation every interval\n useEffect(() => {\n // Don't bother if we only have one option.\n if (options.length <= 1) return\n\n const intId = setInterval(() => {\n setCurOption((prev) => inc(prev, options.length))\n }, interval)\n\n return () => {\n clearInterval(intId)\n }\n }, [interval, options])\n\n // Since we're always spinning 'up', we only need the current\n // and the next option showing.\n const renderOptions = useMemo(() => {\n const opts = [{ key: lastOption, value: options[lastOption] }]\n if (lastOption != curOption) opts.push({ key: curOption, value: options[curOption] })\n return opts\n }, [curOption, lastOption, options])\n\n // Each time our current option changes, start the rotation\n useEffect(() => {\n // Make them match.\n const tmId = setTimeout(() => setLastOption(curOption), 1000)\n return () => clearTimeout(tmId)\n }, [curOption])\n\n return (\n
    \n
      \n {renderOptions.map((option) => (\n
    • \n {option.value}\n
    • \n ))}\n
    \n
    \n )\n}\n\nexport default Rotator\n","// extracted by mini-css-extract-plugin\nexport default {\"headline\":\"Bn_MI6hMp4eeVzGiZbQV\",\"title\":\"WaUzIhLiFum824_2DfQl\"};","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport SectionTitle from '../../Components/SectionTitle'\nimport Rotator from './Rotator'\n\nimport { RichTextBlock } from 'prismic-reactjs'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n headline: Array\n headlineRotationOptions: Array\n headlineRotationSpeed?: number\n}\nconst Headline: FC = ({ className, headline, headlineRotationOptions, headlineRotationSpeed }) => {\n return (\n
    \n \n {headlineRotationOptions.length > 0 ? (\n \n ) : null}\n
    \n )\n}\n\nexport default Headline\n","// extracted by mini-css-extract-plugin\nexport default {\"subHeadline\":\"bwllvBdXnonUsup6S47y\"};","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport PresentRichText, { hasTextPresent } from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\nimport { RichTextBlock } from 'prismic-reactjs'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n subHeadline: Array\n}\nconst SubHeadline: FC = ({ className, subHeadline }) => {\n // no render if no subHeadline.\n if (!hasTextPresent(subHeadline)) {\n return null\n }\n\n return \n}\n\nexport default SubHeadline\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst Svg: FC = ({ className }) => (\n \n \n \n)\n\nexport default Svg\n","// extracted by mini-css-extract-plugin\nexport default {\"navLink\":\"t3gjAk5lPOTqsCCfwRXC\",\"link\":\"yoEu56LnHkpI1kyPucbG\",\"text\":\"TpQeTB8dHSxCqyQSbBWT\",\"arrow\":\"WjSuT6bRpvItoiSny8xg\",\"ctaButton\":\"VeTSB1kehiNFG8mhQf_1\"};","import React, { FC, useCallback, useMemo } from 'react'\nimport cx from 'classnames'\n\nimport { Link as PrismicLink } from 'prismic-reactjs'\n\nimport { useTrackClick } from '../../index'\n\nimport Arrow from 'svgs/arrow'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n text?: string\n targetUrl?: PrismicLink\n targetRelativeUrl?: string\n targetId?: string\n trackingCode?: string\n trackingSection?: string\n trackingFeature?: string\n trackingFamily?: string\n}\nconst NavLink: FC = ({\n className,\n text,\n targetUrl,\n targetRelativeUrl,\n targetId,\n trackingCode,\n trackingSection,\n trackingFeature,\n trackingFamily,\n}) => {\n const href = useMemo(\n () => (targetUrl?.url ? targetUrl.url : targetRelativeUrl ? targetRelativeUrl : targetId ? `#${targetId}` : ''),\n [targetUrl, targetRelativeUrl, targetId]\n )\n const target = useMemo(() => (targetUrl?.url ? targetUrl.target : ''), [targetUrl])\n\n const trackClick = useTrackClick()\n const handleClick = useCallback(() => {\n // NavLink is always an internal-page fragment link, so we don't need\n // to wait for the tracking to finish, and can let the anchor function\n // normally.\n if (!trackingCode) return\n trackClick({\n code: trackingCode,\n section: trackingSection,\n feature: trackingFeature,\n family: trackingFamily,\n })\n }, [trackClick, trackingCode, trackingSection, trackingFeature, trackingFamily])\n\n // no render if no href.\n if (!href) {\n return null\n }\n\n return (\n \n )\n}\n\nexport default NavLink\n","// extracted by mini-css-extract-plugin\nexport default {\"hero\":\"aqf0Y_wuYvAw6tUSqjDs\",\"background\":\"DHropJ7ApO4k5IH2cgNW\",\"content\":\"uzWXFLJqvHegddq2g0jT\"};","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport { Hero as HeroType } from '../types'\n\nimport Background from './Background'\nimport Headline from './Headline'\nimport SubHeadline from './SubHeadline'\nimport NavLink from './NavLink'\n\nimport styles from './styles.module.scss'\n\n// Parse int that returns undefined if we get NaN\nfunction pInt(val?: string | null): number | undefined {\n const ret = parseInt(val as string)\n if (Number.isNaN(ret)) return undefined\n return ret\n}\n\ninterface Props extends HeroType {\n className?: string\n}\nconst Hero: FC = ({\n className,\n headline,\n headline_rotation,\n headline_rotation_speed,\n sub_headline,\n nav_link_text,\n nav_link_url,\n nav_link_relative_url,\n nav_link_section_id,\n nav_link_tracking_code,\n nav_link_tracking_section,\n nav_link_tracking_feature,\n nav_link_tracking_family,\n background_images,\n background_images_rotation_velocity,\n background_images_rotation_drag,\n}) => {\n return (\n
    \n \n
    \n item.text)}\n headlineRotationSpeed={pInt(headline_rotation_speed)}\n />\n \n \n
    \n
    \n )\n}\n\nexport default Hero\n","// extracted by mini-css-extract-plugin\nexport default {\"header\":\"qmgSy8Xo20scAEU00hAX\",\"logo\":\"Hsn0KrvhXwOwIt_E4JDU\",\"logoMobile\":\"RPH01bIpiUa9ri1LEes3\",\"desktopNav\":\"rtVs3pUcYXesoBOnC7cs\",\"mobileNav\":\"QdEA6cZj1mXURzP6Gpo3\"};","import React, { FC } from 'react'\n\nimport RealmLogo, {\n RealmLogoSmall,\n RealmLogoPride,\n RealmLogoSmallPride,\n} from 'components/MarketingSite/Header/RealmLogo'\n\nimport styles from './styles.module.scss'\n\nconst Logo: FC = () => {\n if (process.env.PRIDE_MODE == 'true') {\n return (\n <>\n \n \n \n )\n }\n return (\n <>\n \n \n \n )\n}\n\nexport default Logo\n","// extracted by mini-css-extract-plugin\nexport default {\"navigation\":\"q_LMc_ByrIs8gkvwL3n2\",\"navButton\":\"ewKw6dxwZk6xBfd9_2JF\",\"subNavigation\":\"Px0O9XdM5aGs8w8NRear\",\"primary\":\"nOAfRozgdgps3UAUS6Jx\",\"significant\":\"ehc51ZC1AP1YzeKnc7ST\",\"secondary\":\"qlR4zvvkhZKvSOJSR4BN\",\"disabled\":\"Om6rFm7xZBhN2PzZ0tlq\",\"ghost\":\"aCnrLarHEuPh33VzanLL\",\"negative\":\"KB2z05xCyQfpq64mH_ja\",\"inverted\":\"J5tOMvI4G9cjnzZVjYQA\",\"tertiary\":\"cdz9YknK2b0opfxOZvUw\",\"downloadOption\":\"DcXJ9McGRWY7zi7XcVq_\",\"qrCode\":\"cqennUzfrVUKtKTyI3Qr\"};","import React, { FC } from 'react'\n\nimport { DesktopImage } from '../../types'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n image?: DesktopImage\n}\n\nconst QRCode: FC = ({ image }) => {\n const srcset = [\n { img: image, size: '1x' },\n { img: image?.desktop_2x, size: '2x' },\n ]\n .filter((img) => !!img.img)\n .map((img) => `${img.img?.url} ${img.size}`)\n .join(',')\n\n return (\n
    \n {image?.alt\n
    \n )\n}\n\nexport default QRCode\n","import React, { FC, useMemo, useCallback, MouseEvent, CSSProperties } from 'react'\n\nimport { Link as PrismicLink } from 'prismic-reactjs'\n\nimport { useTrackClick } from '../../'\n\nimport styles from './styles.module.scss'\nimport cx from 'classnames'\n\ninterface Props {\n className?: string\n style?: CSSProperties\n button_style?: 'primary' | 'significant' | 'secondary' | 'tertiary' | 'disabled' | 'ghost' | 'negative' | 'inverted'\n link_text?: string\n link_url?: PrismicLink\n link_relative_url?: string\n\n link_tracking_code?: string\n link_tracking_section?: string\n link_tracking_feature?: string\n link_tracking_family?: string\n}\n\nconst Link: FC = ({\n link_text: text,\n link_url: url,\n link_relative_url: url_relative,\n link_tracking_code: trackingCode,\n link_tracking_section: trackingSection,\n link_tracking_feature: trackingFeature,\n link_tracking_family: trackingFamily,\n button_style: buttonStyle = 'primary',\n className,\n style,\n}) => {\n const trackClick = useTrackClick()\n const href = useMemo(() => (url?.url ? url.url : url_relative || ''), [url, url_relative])\n const target = useMemo(() => (url?.url ? url.target : ''), [url])\n\n const handleClick = useCallback(\n async (e: MouseEvent) => {\n if (!trackingCode) return\n e.preventDefault()\n\n await trackClick({\n code: trackingCode,\n section: trackingSection,\n feature: trackingFeature,\n family: trackingFamily,\n })\n\n if (target == '_blank') {\n window.open(href, '_blank')?.focus()\n } else {\n window.location.href = href\n }\n },\n [trackClick, trackingCode, trackingSection, trackingFeature, trackingFamily, href, target]\n )\n\n return (\n
  • \n \n {text}\n \n
  • \n )\n}\n\nexport default Link\n","import React, { CSSProperties, FC } from 'react'\nimport cx from 'classnames'\n\nimport { Header as HeaderType } from '../../types'\n\nimport QRCode from './QRCode'\nimport Link from './Link'\n\nimport styles from './styles.module.scss'\n\ninterface Props extends HeaderType {\n className?: string\n}\nconst DesktopNavigation: FC = ({\n className,\n\n header_body,\n}) => {\n return (\n
      \n {header_body.map((slice, i) =>\n slice.slice_type === 'link' ? (\n \n ) : slice.slice_type === 'link_category' ? (\n
    • \n \n
        \n {slice.items.map((item, l) => (\n \n ))}\n
      \n
    • \n ) : slice.slice_type === 'download_link' ? (\n
    • \n {slice.primary.header}\n \n
    • \n ) : null\n )}\n
    \n )\n}\n\nexport default DesktopNavigation\n","import React, { FC } from 'react'\n\ninterface HamburgerIconProps {\n className?: string\n}\n\nconst HamburgerIcon: FC = ({ className }) => (\n \n \n \n)\n\nexport default HamburgerIcon\n","// extracted by mini-css-extract-plugin\nexport default {\"navigation\":\"cl43ik0g0KDuq2Icfujw\",\"navButton\":\"b41mufTC9zZMgkrDlAVi\",\"primary\":\"lE4A9tVKqjPxDGpCZBTY\",\"significant\":\"q09KMVfVh5vIoJixH7Oq\",\"secondary\":\"E76nGnbx_oWzaMyjJyzq\",\"disabled\":\"yIOG7vfdBGTfplQg5oYu\",\"ghost\":\"P3P2RZNv6Y737DPTUKDT\",\"negative\":\"oIINYauQOBRpetR9GqUv\",\"inverted\":\"BSzAJHsoICOnfnL_sAB8\",\"tertiary\":\"lAkIuo563yOvZJse5OA6\",\"hamburger\":\"Z3jlxzMArznemsXcVcpj\",\"openNavigation\":\"B48jthA_sWnjMlJvnfru\",\"close\":\"F_z1AW2ClvOYA7LFHAWv\",\"mobileNavigation\":\"tH5_zdVJF8PB0WA4T5bw\",\"subNavigation\":\"KI0rBkEVMvHdZPNxdIrX\",\"open\":\"bghYeSwqBmvvdPO5M2QQ\",\"slide-open\":\"iylWcfICVRYyPqueqFhY\",\"add-close\":\"SxRDXSpJrkdGQCzFbnqQ\",\"slide-down\":\"FBF1j5Zwvx5plbFkMh4G\",\"closing\":\"DDdLjATntLeMfxAugQlc\",\"slide-close\":\"SSs0a9ZTKmXOjZOmzPrJ\",\"remove-close\":\"EPXSF0ryExz94UjVAofB\",\"fade-away\":\"OUQE1kXTq6opAklIblAw\"};","import React, { FC, useState, useCallback, PropsWithChildren } from 'react'\nimport cx from 'classnames'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n text: string\n}\nconst SubNavigation: FC> = ({ text, children }) => {\n const [open, setOpen] = useState(false)\n\n const handleToggleOpen = useCallback(() => setOpen((prev) => !prev), [])\n\n return (\n <>\n \n
      {children}
    \n \n )\n}\n\nexport default SubNavigation\n","import React, { FC, useMemo, useCallback, MouseEvent } from 'react'\n\nimport { Link as PrismicLink } from 'prismic-reactjs'\n\nimport { useTrackClick } from '../..'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n button_style?: 'primary' | 'significant' | 'secondary' | 'tertiary' | 'disabled' | 'ghost' | 'negative' | 'inverted'\n link_text?: string\n link_url?: PrismicLink\n link_relative_url?: string\n\n link_tracking_code?: string\n link_tracking_section?: string\n link_tracking_feature?: string\n link_tracking_family?: string\n}\n\nconst NavLink: FC = ({\n link_text: text,\n link_url: url,\n link_relative_url: url_relative,\n link_tracking_code: trackingCode,\n link_tracking_section: trackingSection,\n link_tracking_feature: trackingFeature,\n link_tracking_family: trackingFamily,\n button_style: buttonStyle = 'primary',\n}) => {\n const trackClick = useTrackClick()\n const href = useMemo(() => (url?.url ? url.url : url_relative || ''), [url, url_relative])\n const target = useMemo(() => (url?.url ? url.target : ''), [url])\n\n const handleClick = useCallback(\n async (e: MouseEvent) => {\n if (!trackingCode) return\n e.preventDefault()\n\n await trackClick({\n code: trackingCode,\n section: trackingSection,\n feature: trackingFeature,\n family: trackingFamily,\n })\n\n if (target == '_blank') {\n window.open(href, '_blank')?.focus()\n } else {\n window.location.href = href\n }\n },\n [trackClick, trackingCode, trackingSection, trackingFeature, trackingFamily, href, target]\n )\n\n return (\n
  • \n \n {text}\n \n
  • \n )\n}\n\nexport default NavLink\n","import React, { FC, useMemo, useCallback, MouseEvent } from 'react'\n\nimport { Link as PrismicLink } from 'prismic-reactjs'\n\nimport { useTrackClick } from '../..'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n button_style?: 'primary' | 'significant' | 'secondary' | 'tertiary' | 'disabled' | 'ghost' | 'negative' | 'inverted'\n link_text?: string\n link_url?: PrismicLink\n link_relative_url?: string\n\n link_tracking_code?: string\n link_tracking_section?: string\n link_tracking_feature?: string\n link_tracking_family?: string\n\n delay?: number\n}\n\nconst Link: FC = ({\n link_text: text,\n link_url: url,\n link_relative_url: url_relative,\n link_tracking_code: trackingCode,\n link_tracking_section: trackingSection,\n link_tracking_feature: trackingFeature,\n link_tracking_family: trackingFamily,\n button_style: buttonStyle = 'primary',\n delay,\n}) => {\n const trackClick = useTrackClick()\n const href = useMemo(() => (url?.url ? url.url : url_relative || ''), [url, url_relative])\n const target = useMemo(() => (url?.url ? url.target : ''), [url])\n\n const handleClick = useCallback(\n async (e: MouseEvent) => {\n if (!trackingCode) return\n e.preventDefault()\n\n await trackClick({\n code: trackingCode,\n section: trackingSection,\n feature: trackingFeature,\n family: trackingFamily,\n })\n\n if (target == '_blank') {\n window.open(href, '_blank')?.focus()\n } else {\n window.location.href = href\n }\n },\n [trackClick, trackingCode, trackingSection, trackingFeature, trackingFamily, href, target]\n )\n\n return (\n
  • \n \n {text}\n \n
  • \n )\n}\n\nexport default Link\n","import React, { FC, useState, useCallback } from 'react'\nimport cx from 'classnames'\n\nimport { Header as HeaderType } from '../../types'\n\nimport HamburgerIcon from 'svgs/hamburger'\nimport CloseIcon from 'svgs/close'\n\nimport SubNavigation from './SubNavigation'\nimport NavLink from './NavLink'\nimport Link from './Link'\nimport DownloadLink from './Link'\n\nimport styles from './styles.module.scss'\n\ninterface Props extends HeaderType {\n className?: string\n}\nconst MobileNavigation: FC = ({\n className,\n\n header_body,\n}) => {\n const [open, setOpen] = useState(false)\n const [closing, setClosing] = useState(false)\n\n const handleOpen = useCallback(() => {\n setClosing(false)\n setOpen(true)\n }, [])\n const handleClose = useCallback(() => {\n setClosing(true)\n setTimeout(() => setOpen(false), 400) // This must match our animation\n }, [])\n\n const headerItems = header_body.filter((slice) => ['Header', 'Both'].includes(slice.primary.mobile_display_location))\n const hamburgerItems = header_body.filter((slice) =>\n ['Hamburger', 'Both'].includes(slice.primary.mobile_display_location)\n )\n\n return (\n <>\n
      \n {headerItems.map((slice, i) =>\n slice.slice_type === 'link' ? (\n \n ) : slice.slice_type === 'link_category' ? (\n
    • \n \n
        \n {slice.items.map((item, l) => (\n \n ))}\n
      \n
    • \n ) : slice.slice_type === 'download_link' ? (\n \n ) : null\n )}\n {hamburgerItems.length > 0 && (\n
    • \n \n
    • \n )}\n
    \n {open && (\n
    \n \n \n \n
      \n {hamburgerItems.map((slice, i) =>\n slice.slice_type === 'link' ? (\n \n ) : slice.slice_type === 'link_category' ? (\n
    • \n \n {slice.items.map((item, l) => (\n \n ))}\n \n
    • \n ) : slice.slice_type === 'download_link' ? (\n \n ) : null\n )}\n
    \n
    \n )}\n \n )\n}\n\nexport default MobileNavigation\n","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport { Header as HeaderType } from '../types'\n\nimport Logo from './Logo'\nimport DesktopNavigation from './DesktopNavigation'\nimport MobileNavigation from './MobileNavigation'\n\nimport styles from './styles.module.scss'\n\ninterface Props extends HeaderType {\n className?: string\n}\nconst Header: FC = ({ className, ...navOptions }) => {\n return (\n
    \n \n \n \n
    \n )\n}\n\nexport default Header\n","// extracted by mini-css-extract-plugin\nexport default {\"callToAction\":\"nszI6f4RuySRTRLj8Y0T\"};","import React, { FC, useMemo, useCallback, MouseEvent, PropsWithChildren } from 'react'\nimport cx from 'classnames'\n\nimport { Link } from 'prismic-reactjs'\n\nimport { useTrackClick } from '../../'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n url?: Link\n url_relative?: string\n\n trackingCode?: string\n trackingSection?: string\n trackingFeature?: string\n trackingFamily?: string\n}\nconst CallToAction: FC> = ({\n className,\n children,\n url,\n url_relative,\n trackingCode,\n trackingSection,\n trackingFeature,\n trackingFamily,\n}) => {\n const trackClick = useTrackClick()\n\n const href = useMemo(() => (url?.url ? url.url : url_relative || ''), [url, url_relative])\n const target = useMemo(() => (url?.url ? url.target : ''), [url])\n\n const handleClick = useCallback(\n async (e: MouseEvent) => {\n if (!trackingCode) return\n e.preventDefault()\n\n await trackClick({\n code: trackingCode,\n section: trackingSection,\n feature: trackingFeature,\n family: trackingFamily,\n })\n\n if (target == '_blank') {\n window.open(href, '_blank')?.focus()\n } else {\n window.location.href = href\n }\n },\n [trackClick, trackingCode, trackingSection, trackingFeature, trackingFamily, href, target]\n )\n\n return (\n \n {children}\n \n )\n}\n\nexport default CallToAction\n","// extracted by mini-css-extract-plugin\nexport default {\"callToAction\":\"OBPH6pDfCegRxuDMXhAO\",\"background\":\"ImDdAQLYIMYUmv2qrpVr\",\"titleBox\":\"w7ZqnHEcvjuVECSss5W9\",\"subtitleContent\":\"iZW4jJXhmMa0IbeyOstG\",\"subtitleText\":\"zNDteh4FZ553NnA4AA_w\",\"cta\":\"Vf_5ux1ClxJK6QE99Tw_\"};","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport { CallToActionProperties, HeroImageItem } from '../types'\n\nimport PresentRichText, { hasTextPresent } from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\n\nimport SectionTitle from '../Components/SectionTitle'\nimport CallToActionButton from '../Components/CallToAction'\n\nimport Background from '../Hero/Background'\n\nimport styles from './styles.module.scss'\n\n// Parse int that returns undefined if we get NaN\nfunction pInt(val?: string | null): number | undefined {\n const ret = parseInt(val as string)\n if (Number.isNaN(ret)) return undefined\n return ret\n}\n\ninterface Props extends CallToActionProperties {\n className?: string\n background_images: Array\n}\nconst CallToAction: FC = ({\n className,\n nav_id,\n title,\n subtitle,\n cta_text,\n cta_url,\n cta_relative_url,\n\n cta_tracking_code,\n cta_tracking_section,\n cta_tracking_feature,\n cta_tracking_family,\n\n background_images_rotation_velocity,\n background_images_rotation_drag,\n background_images,\n}) => {\n return (\n
    \n \n
    \n \n {(cta_text || hasTextPresent(subtitle)) && (\n
    \n {hasTextPresent(subtitle) && }\n {cta_text && (\n \n {cta_text}\n \n )}\n
    \n )}\n
    \n
    \n )\n}\n\nexport default CallToAction\n","// extracted by mini-css-extract-plugin\nexport default {\"footer\":\"v5j7pfXBykVrsZ8O8_pk\",\"categories\":\"BLpCszC3Aq0JJwevatyw\",\"category\":\"Kyo9DbxaAqGo7ZJuV_kj\",\"header\":\"TFbpsLmPF7q4w5RjNhgp\",\"linkCategory\":\"SJKIDcTNGfUdwJ7fnYQY\",\"links\":\"kGwCcv9PW1YxPTzTe5cS\",\"downloadCategory\":\"D_n94dpYpJkW_C2T5Fc2\",\"description\":\"Z3aHFWZQVxMpiD9Ax4T5\",\"cta\":\"nHIVhjuJIjW4XcuSNfvn\",\"qrCode\":\"ehZFBWJ5EPpOgOd1804b\",\"subfooter\":\"lMOUF8s2eKHNFDXRgoY_\",\"legal\":\"XVGrLx0evWML_5ixqgkp\",\"social\":\"BFLlMBbfVEKiLpQKf4tz\",\"desktop\":\"aDPI8f46dx_JopbpjPuQ\",\"mobile\":\"C4J4SNMB6z6lxpQvkG1m\"};","import React, { FC, useMemo, useCallback, MouseEvent } from 'react'\n\nimport { Link as PrismicLink } from 'prismic-reactjs'\n\nimport { useTrackClick } from '../'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n link_text?: string\n link_url?: PrismicLink\n link_relative_url?: string\n\n link_tracking_code?: string\n link_tracking_section?: string\n link_tracking_feature?: string\n link_tracking_family?: string\n}\n\nconst Link: FC = ({\n link_text: text,\n link_url: url,\n link_relative_url: url_relative,\n link_tracking_code: trackingCode,\n link_tracking_section: trackingSection,\n link_tracking_feature: trackingFeature,\n link_tracking_family: trackingFamily,\n}) => {\n const trackClick = useTrackClick()\n const href = useMemo(() => (url?.url ? url.url : url_relative || ''), [url, url_relative])\n const target = useMemo(() => (url?.url ? url.target : ''), [url])\n\n const handleClick = useCallback(\n async (e: MouseEvent) => {\n if (!trackingCode) return\n e.preventDefault()\n\n await trackClick({\n code: trackingCode,\n section: trackingSection,\n feature: trackingFeature,\n family: trackingFamily,\n })\n\n if (target == '_blank') {\n window.open(href, '_blank')?.focus()\n } else {\n window.location.href = href\n }\n },\n [trackClick, trackingCode, trackingSection, trackingFeature, trackingFamily, href, target]\n )\n\n return (\n
  • \n \n {text}\n \n
  • \n )\n}\n\nexport default Link\n","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport { FooterLinkSlice } from '../types'\n\nimport Link from './Link'\n\nimport styles from './styles.module.scss'\n\ntype Props = FooterLinkSlice\n\nconst LinkCategory: FC = ({ primary: { header }, items }) => {\n return (\n
  • \n
      \n
    • {header}
    • \n {items.map((item, i) => (\n \n ))}\n
    \n
  • \n )\n}\n\nexport default LinkCategory\n","import React, { FC } from 'react'\n\nimport { DesktopImage } from '../types'\n\ninterface Props {\n className?: string\n image?: DesktopImage\n}\n\nconst QRCode: FC = ({ className, image }) => {\n const srcset = [\n { img: image, size: '1x' },\n { img: image?.desktop_2x, size: '2x' },\n ]\n .filter((img) => !!img.img)\n .map((img) => `${img.img?.url} ${img.size}`)\n .join(',')\n\n return (\n
    \n {image?.alt\n
    \n )\n}\n\nexport default QRCode\n","import { useEffect, useState, useMemo } from 'react'\nimport { Link } from 'prismic-reactjs'\n\nimport { UTM_PARAMS_SESSION_KEY } from 'utils/analytics'\n\ninterface UtmParams {\n utm_medium?: string\n utm_source?: string\n utm_campaign?: string\n utm_content?: string\n}\n\nexport default function useAdjustLink(link?: Link): Link | undefined {\n const [utmParams, setUtmParams] = useState(null)\n\n useEffect(() => {\n const sUtmParams = sessionStorage?.getItem(UTM_PARAMS_SESSION_KEY)\n if (sUtmParams) {\n const utmParams = JSON.parse(sUtmParams)\n if (utmParams) {\n setUtmParams(utmParams)\n }\n }\n }, [])\n\n return useMemo(() => {\n if (!link?.url) return link\n\n let redirectUrl = link?.url\n if (utmParams) {\n if (utmParams.utm_source) redirectUrl += `&adgroup=${encodeURIComponent(utmParams.utm_source)}`\n if (utmParams.utm_campaign) redirectUrl += `&campaign=${encodeURIComponent(utmParams.utm_campaign)}`\n if (utmParams.utm_content) redirectUrl += `&creative=${encodeURIComponent(utmParams.utm_content)}`\n }\n\n return {\n ...link,\n url: redirectUrl,\n }\n }, [utmParams, link])\n}\n","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport { FooterDownloadSlice } from '../types'\n\nimport PresentRichText, { hasTextPresent } from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\n\nimport CallToAction from '../Components/CallToAction'\nimport QRCode from '../Components/QRCode'\nimport useAdjustLink from '../Components/useAdjustLink'\n\nimport styles from './styles.module.scss'\n\ntype Props = FooterDownloadSlice\n\nconst DownloadCategory: FC = ({\n primary: {\n header,\n description,\n download_text,\n download_url,\n download_qr_code,\n download_tracking_code,\n download_tracking_section,\n download_tracking_feature,\n download_tracking_family,\n },\n}) => {\n const downloadLink = useAdjustLink(download_url)\n return (\n
  • \n
    {header}
    \n {hasTextPresent(description) && }\n {download_text && (\n \n {download_text}\n \n )}\n {download_qr_code && }\n
  • \n )\n}\n\nexport default DownloadCategory\n","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport { Footer as FooterType } from '../types'\n\nimport LinkCategory from './LinkCategory'\nimport DownloadCategory from './DownloadCategory'\n\nimport Instagram from 'svgs/social/instagram'\nimport Twitter from 'svgs/social/twitter'\nimport Facebook from 'svgs/social/facebook'\nimport LinkedIn from 'svgs/social/linkedin'\n\nimport styles from './styles.module.scss'\n\ninterface Props extends FooterType {\n className?: string\n}\nconst Footer: FC = ({ className, footer_body, footer }) => {\n const { show_instagram, show_twitter, show_facebook, show_linkedin } = footer[0]\n return (\n
    \n
      \n {footer_body.map((slice, i) =>\n slice.slice_type === 'link_category' ? (\n \n ) : slice.slice_type === 'download_category' ? (\n \n ) : null\n )}\n
    \n
    \n
    \n {`© ${new Date().getFullYear()} Realm. All Rights reserved. `}\n {'Privacy Policy'}\n {' | '}\n {'Terms'}\n
    \n
    \n {show_instagram && (\n \n \n \n )}\n {show_twitter && (\n \n \n \n )}\n {show_facebook && (\n \n \n \n )}\n {show_linkedin && (\n \n \n \n )}\n
    \n
    \n
    \n )\n}\n\nexport default Footer\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst Svg: FC = ({ className }) => (\n \n \n \n)\n\nexport default Svg\n","// extracted by mini-css-extract-plugin\nexport default {\"image\":\"w2zVzYf1gYih3Cpagd4v\",\"mobile\":\"M6UO7ISwII0762t35JI2\",\"desktop\":\"pSxNarrVW6oDC8Di6FMe\"};","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport { Image } from '../../types'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n image: Image\n}\n\nconst Image: FC = ({ className, image }) => {\n const srcsetDesktop = [\n { img: image, size: '1x' },\n { img: image?.desktop_2x, size: '2x' },\n ]\n .filter((img) => !!img.img)\n .map((img) => `${img.img?.url} ${img.size}`)\n .join(',')\n const srcsetMobile = [\n { img: image?.mobile_1x, size: '1x' },\n { img: image?.mobile_2x, size: '2x' },\n ]\n .filter((img) => !!img.img)\n .map((img) => `${img.img?.url} ${img.size}`)\n .join(',')\n\n return (\n
    \n {image?.alt\n {image?.alt\n
    \n )\n}\n\nexport default Image\n","// extracted by mini-css-extract-plugin\nexport default {\"testimonials\":\"x31bt_NIXqKCuAcGtLXA\",\"scroll\":\"d1DEZ8kJ7pbL2G8FLl7z\",\"testimonial\":\"r9THf9JztfNdf_c_ZmTK\",\"clickable\":\"feZxy3GZO4k9KCvDucft\",\"image\":\"Fz5Tjol19NZiHt3ODfs5\",\"quoteContainer\":\"AxdMK39IMpFlfhd0hx71\",\"quote\":\"Z7z1lAr4Ze70FmBLPtpb\",\"author\":\"hCR5F8ZS0gEnXYEurDD0\",\"play\":\"c1GcLMAtnN9kVIRf0KzU\",\"scrollLeft\":\"YLc9nOf3lj89xvoQy3yQ\",\"scrollRight\":\"E0s9z2a9UgpAZ2RV6Kjj\",\"desktop\":\"KHYA5hb0FnDuT_4MXbPk\",\"mobile\":\"P7lramBnFnsvulzmKqhG\"};","import React, { FC, useState, useCallback, PropsWithChildren } from 'react'\nimport cx from 'classnames'\n\nimport { useTrackClick } from '../../..'\nimport { CustomerTestimonial } from '../../../types'\n\nimport PlayIcon from 'svgs/play'\n\nimport PresentRichText from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\n\nimport Image from '../../../Components/Image'\nimport CaseStudyViewer from './CaseStudyViewer'\n\nimport styles from './styles.module.scss'\n\nexport interface TestimonialItem extends CustomerTestimonial {\n id: string\n}\n\ninterface ContainerProps {\n onClick?: (e: any) => void\n}\nconst Container: FC> = ({ children, onClick }) => {\n return onClick ? (\n \n ) : (\n
    {children}
    \n )\n}\n\ninterface Props extends TestimonialItem {\n className?: string\n}\nconst Testimonial: FC = ({\n className,\n image,\n quote,\n author,\n click_action,\n case_study_uid,\n click_tracking_code,\n click_tracking_section,\n click_tracking_feature,\n click_tracking_family,\n}) => {\n const trackClick = useTrackClick()\n const [showModal, setShowModal] = useState(false)\n const handleClick = useCallback(\n (e) => {\n trackClick({\n code: click_tracking_code,\n section: click_tracking_section,\n feature: click_tracking_feature,\n family: click_tracking_family,\n })\n\n e.preventDefault()\n e.stopPropagation()\n setShowModal(true)\n },\n [trackClick, click_tracking_code, click_tracking_section, click_tracking_feature, click_tracking_family]\n )\n const handleOnClose = useCallback(() => {\n setShowModal(false)\n }, [])\n\n return (\n
  • \n \n \n
    \n \n {author}\n
    \n {click_action != 'No Action' && }\n
    \n {showModal && case_study_uid && }\n
  • \n )\n}\n\nexport default Testimonial\n","import React, { FC, useCallback, useRef, useState } from 'react'\nimport cx from 'classnames'\n\nimport { useTrackClick } from '../../..'\n\nimport { CustomerTestimonial } from '../../../types'\n\nimport ArrowIcon from 'svgs/arrow'\n\nimport Testimonial from './Testimonial'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n testimonials: Array\n\n trackingCode?: string\n trackingSection?: string\n trackingFamily?: string\n}\nconst Testimonials: FC = ({ className, testimonials, trackingCode, trackingSection, trackingFamily }) => {\n const trackClick = useTrackClick()\n const scrollRef = useRef()\n const [rTestimonials] = useState([...testimonials.map((item, i) => ({ ...item, id: `${i}` }))])\n const scrollLock = useRef(false)\n\n const setScrollRef = useCallback((el: HTMLDivElement) => {\n if (el != scrollRef.current) {\n scrollRef.current = el\n }\n }, [])\n\n const handleScrollLeft = useCallback(() => {\n if (!scrollRef.current || scrollLock.current) return\n\n // We don't have to wait for it.\n trackClick({\n code: trackingCode,\n section: trackingSection,\n feature: 'left',\n family: trackingFamily,\n })\n\n scrollRef.current.scrollTo(scrollRef.current.scrollLeft - 480, 0)\n }, [trackClick, trackingCode, trackingSection, trackingFamily])\n\n const handleScrollRight = useCallback(() => {\n if (!scrollRef.current || scrollLock.current) return\n\n // We don't have to wait for it.\n trackClick({\n code: trackingCode,\n section: trackingSection,\n feature: 'right',\n family: trackingFamily,\n })\n\n scrollRef.current.scrollTo(scrollRef.current.scrollLeft + 480, 0)\n }, [trackClick, trackingCode, trackingSection, trackingFamily])\n\n return (\n
    \n \n
    \n
      \n {rTestimonials.map((testimonial) => (\n \n ))}\n
    \n
    \n \n
    \n )\n}\n\nexport default Testimonials\n","// extracted by mini-css-extract-plugin\nexport default {\"customerSocialProof\":\"C_zmIPE46oI3bfmsAcsK\",\"gray\":\"mIJ0OH58pVDAQgzz58D2\",\"titleBox\":\"Lt_mUz98jXJJwjy9MlMj\",\"subtitleContent\":\"hdWxlszBzKx17vTU4yGN\",\"subtitleText\":\"BjpR9LpGAlPoTpic1a4z\",\"cta\":\"qbAjMhxUL7QBsjOEPiUX\",\"testimonials\":\"VtfFsbqR7G4yKAvnODdC\"};","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport { SliceCustomerSocialProof } from '../../types'\n\nimport PresentRichText, { hasTextPresent } from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\n\nimport SectionTitle from '../../Components/SectionTitle'\nimport CallToAction from '../../Components/CallToAction'\nimport Testimonials from './Testimonials'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n slice: SliceCustomerSocialProof\n}\nconst CustomerSocialProof: FC = ({ className, slice }) => {\n const {\n nav_id,\n background_color,\n title,\n subtitle,\n cta_text,\n cta_relative_url,\n cta_url,\n\n cta_tracking_code,\n cta_tracking_section,\n cta_tracking_feature,\n cta_tracking_family,\n\n scroll_tracking_code,\n scroll_tracking_section,\n scroll_tracking_family,\n } = slice.primary\n return (\n \n
    \n \n {(cta_text || hasTextPresent(subtitle)) && (\n
    \n {hasTextPresent(subtitle) && }\n {cta_text && (\n \n {cta_text}\n \n )}\n
    \n )}\n
    \n \n \n )\n}\n\nexport default CustomerSocialProof\n","// extracted by mini-css-extract-plugin\nexport default {\"previews\":\"heSK8gKsBTxsQP2mXqzn\",\"preview\":\"gczS1QQkTtONQxwtnffe\",\"imgHolder\":\"r92OYsm7jncksGE39zYZ\",\"image\":\"NEokzvuCvo2vpSagu8gq\",\"dockTop\":\"EsWRiRWL_cCTZcpQ2z3Y\",\"information\":\"r75xgd1t8embATsr1hNp\",\"description\":\"VGNuPsPAEpcPrtKDuPCw\",\"cta\":\"DczUPCVOjGjp_z79_bXG\",\"rightToLeft\":\"fF8foevXP1JYx0D6NdGA\"};","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport { PreviewItem } from '../../../types'\n\nimport PresentRichText from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\n\nimport Image from '../../../Components/Image'\nimport CallToAction from '../../../Components/CallToAction'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n items: Array\n}\nconst Previews: FC = ({ className, items }) => {\n return (\n
      \n {items.map((item, i) => {\n const rightToLeft = item.image_placement.indexOf('Right') != -1\n const imgTop = item.image_placement.indexOf('Top') != -1\n\n return (\n
    • \n
      \n \n
      \n
      \n \n \n {item.cta_text}\n \n
      \n
    • \n )\n })}\n
    \n )\n}\n\nexport default Previews\n","// extracted by mini-css-extract-plugin\nexport default {\"appPreview\":\"FC8yqKh7VI2UiW7dRpy_\",\"gray\":\"qov8vUdQKrD899i3MWjx\",\"titleBox\":\"E7zmuLiWjnYkREistVXm\",\"subtitleContent\":\"acri_1FmeavO_9rNdKor\",\"subtitleText\":\"NQLcfuQicAkhyrUdjmO9\",\"cta\":\"jjyp6RNPtHiQ3cb17w7t\",\"qrCode\":\"czl0dOHbjFN2AsPZG1zy\",\"bigPhone\":\"H8PEVQGXqF5SIGItvYbg\",\"previews\":\"mDpGw9HF3UhYmXIRq9pP\",\"desktop\":\"t9AsivVrBEqskDXuMoYc\",\"mobile\":\"ZmY9Rfz3G6Cuzytlu282\"};","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport { SliceAppPreview } from '../../types'\n\nimport PresentRichText, { hasTextPresent } from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\n\nimport CallToAction from '../../Components/CallToAction'\nimport SectionTitle from '../../Components/SectionTitle'\nimport Image from '../../Components/Image'\nimport useAdjustLink from '../../Components/useAdjustLink'\n\nimport QRCode from '../../Components/QRCode'\nimport Previews from './Previews'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n slice: SliceAppPreview\n}\nconst AppPreview: FC = ({ className, slice }) => {\n const {\n nav_id,\n title,\n subtitle_desktop,\n subtitle_mobile,\n qr_code,\n download_text,\n download_url,\n download_tracking_code,\n download_tracking_section,\n download_tracking_feature,\n download_tracking_family,\n\n big_phone,\n } = slice.primary\n const downloadLink = useAdjustLink(download_url)\n return (\n \n
    \n \n {(download_text || qr_code || hasTextPresent(subtitle_desktop) || hasTextPresent(subtitle_mobile)) && (\n
    \n {hasTextPresent(subtitle_desktop) && (\n \n )}\n {hasTextPresent(subtitle_mobile) && (\n \n )}\n {download_text && (\n \n {download_text}\n \n )}\n {qr_code && }\n
    \n )}\n
    \n \n \n \n )\n}\n\nexport default AppPreview\n","// extracted by mini-css-extract-plugin\nexport default {\"mediaSocialProof\":\"jGOyfklc14yVU4L45zRm\",\"gray\":\"JUlPqs2bQvcygFzMmm9P\",\"titleBox\":\"jNugNqL5h8VU9vHpJREr\",\"subtitleContent\":\"twwsfcvkdDdrXIPa2pYZ\",\"subtitleText\":\"ojVqN1yGaPSq_4cC1KWN\",\"cta\":\"vhgH1dp1Fl2Y7BibiFjy\",\"testimonials\":\"lQyHxdSEnOyMcYJxUPgh\",\"group\":\"ZWqfk5c5hVqo9m2iZns6\",\"testimonial\":\"lr8ukGW3cWKERdJaJAQ0\",\"image\":\"x7K6Gt5MxzbcergMnQjY\",\"quote\":\"KZQ7WzIKVTTirxGc5H3O\"};","import React, { FC } from 'react'\nimport cx from 'classnames'\nimport { RichTextBlock } from 'prismic-reactjs'\n\nimport { Image } from '../../types'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n image: RichTextBlock & { desktop_2x: RichTextBlock }\n}\n\nconst Image: FC = ({ className, image }) => {\n const srcset = [\n { img: image, size: '1x' },\n { img: image?.desktop_2x, size: '2x' },\n ]\n .filter((img) => !!img.img)\n .map((img) => `${img.img?.url} ${img.size}`)\n .join(',')\n\n return (\n
    \n {image?.alt\n
    \n )\n}\n\nexport default Image\n","import React, { FC, useMemo } from 'react'\n\nimport { MediaTestimonial } from '../../types'\n\nimport PresentRichText from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\n\nimport Image from './Image'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n testimonials: Array\n}\nconst Testimonials: FC = ({ testimonials }) => {\n // Split testimonials in two groups (columns)\n const groups = useMemo(() => {\n return testimonials.reduce(\n (acc, item, i) => {\n acc[Math.floor(i / Math.ceil(testimonials.length / 2))].push(item)\n return acc\n },\n [[], []] as [Array, Array]\n )\n }, [testimonials])\n return (\n
      \n {groups.map((group, i) => (\n
    • \n
        \n {group.map((testimonial, i) => (\n
      • \n \n \n
      • \n ))}\n
      \n
    • \n ))}\n
    \n )\n}\n\nexport default Testimonials\n","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport { SliceMediaSocialProof } from '../../types'\n\nimport PresentRichText, { hasTextPresent } from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\n\nimport SectionTitle from '../../Components/SectionTitle'\nimport CallToAction from '../../Components/CallToAction'\nimport Testimonials from './Testimonials'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n slice: SliceMediaSocialProof\n}\nconst MediaSocialProof: FC = ({ className, slice }) => {\n const {\n nav_id,\n background_color,\n title,\n subtitle,\n cta_text,\n cta_relative_url,\n cta_url,\n cta_tracking_code,\n cta_tracking_section,\n cta_tracking_feature,\n cta_tracking_family,\n } = slice.primary\n return (\n \n
    \n \n {(cta_text || hasTextPresent(subtitle)) && (\n
    \n {hasTextPresent(subtitle) && }\n {cta_text && (\n \n {cta_text}\n \n )}\n
    \n )}\n
    \n \n \n )\n}\n\nexport default MediaSocialProof\n","// extracted by mini-css-extract-plugin\nexport default {\"imageQuotes\":\"BY9j_IJImHv1nlzSlOyw\",\"titleBox\":\"t0M5XexNPG0_8Xq1CFEr\",\"container\":\"y8YAB9mk7sk3HSR1zBTo\",\"item\":\"PckP87NvLmqTt_colF1j\",\"description\":\"Xl6a3_UyeeGqDhFMXN_J\",\"name\":\"wPUY3xvbw3P6ZXGXRCSZ\",\"location\":\"Uxs5zMn2jlPEyM3NmAMX\"};","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport { SliceImageQuotes } from '../../types'\n\nimport PresentRichText, { hasTextPresent } from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\nimport { thumbnailUrl } from 'pages/_serverRendered/CmsPage/utils'\nimport SectionTitle from '../../Components/SectionTitle'\n\nimport styles from './styles.module.scss'\n\ninterface ImageQuotesProps {\n className?: string\n slice: SliceImageQuotes\n}\n\nconst ImageQuotes: FC = ({ className, slice }) => {\n return (\n
    \n {hasTextPresent(slice.primary?.title) && (\n
    \n \n
    \n )}\n
    \n {slice.items.map((item, i) =>\n item.link?.url ? (\n \n {item.image.url && {item.image.alt}\n
    \n
    \n {item.name}\n {` - ${item.location}`}\n
    \n \n
    \n
    \n ) : (\n
    \n {item.image.url && {item.image.alt}\n
    \n
    \n {item.name}\n {` - ${item.location}`}\n
    \n \n
    \n
    \n )\n )}\n
    \n
    \n )\n}\n\nexport default ImageQuotes\n","// extracted by mini-css-extract-plugin\nexport default {\"listCard\":\"K7KHTxC1iSfZYoz6Sj2x\",\"h2\":\"NRx75P4qyfe3BZrp5Xz2\",\"h3\":\"THNebSWDyDJSxuDXGe5G\",\"description\":\"jxSSQ5kVzsLZhd1JVe4i\",\"bulletsContainer\":\"FsWArVjmhGELYZgFPB6P\",\"bulletDescription\":\"t5JrCzNdc26vVDV4InzT\",\"accordion\":\"zBLBd9WfS4Is5VZzX0wA\",\"open\":\"xyqUJvhpjXoTm7FIoHs1\",\"bullets\":\"FLK12SIVptSTVwROy4tP\",\"checkmarks\":\"hmNAljYOsHF3fvC8q0eE\",\"numbers\":\"VIU0U2voPJv9R84bHeNv\",\"closingText\":\"SDjEhqnclIIDaURJ3AOT\",\"image\":\"LiYZIJjO7HhbIewWDaT4\",\"cta\":\"BOBUtxNDrPKW2EYiwbqx\"};","import React, { FC, useCallback, useMemo, useState } from 'react'\nimport { RichTextBlock } from 'prismic-reactjs'\nimport cx from 'classnames'\n\nimport { track } from 'utils/analytics'\nimport { SliceListCard } from '../../types'\n\nimport Card from 'pages/_serverRendered/CmsPage/Section/Components/Card'\nimport PresentRichText, { hasTextPresent } from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\nimport { thumbnailUrl } from 'pages/_serverRendered/CmsPage/utils'\n\nimport styles from './styles.module.scss'\n\ninterface ListCardItemProps {\n name?: string\n description?: RichTextBlock[]\n}\n\nconst ListCardItem: FC = ({ name, description }) => {\n const [open, setOpen] = useState(false)\n const handleToggleOpen = useCallback(() => {\n setOpen((prev) => !prev)\n }, [])\n\n return (\n
  • \n \n
    \n \n
    \n
  • \n )\n}\n\ninterface ListCardProps {\n className?: string\n slice: SliceListCard\n}\n\nconst ListCard: FC = ({ className, slice }) => {\n const url = useMemo(() => {\n return slice.primary?.cta_url?.url || slice.primary?.cta_relative_url || null\n }, [slice])\n const target = useMemo(() => {\n return slice.primary?.cta_url?.target || null\n }, [slice])\n const handleClick = useCallback(\n async (event: React.MouseEvent) => {\n if (!url) return\n\n event.preventDefault()\n await track('click cta', {\n cta: `list-card${slice.primary.nav_id ? `-${slice.primary.nav_id}` : ''}`,\n module: 'cms-marketing',\n })\n if (target === '_blank') {\n window.open(url, '_blank')?.focus()\n } else {\n window.location.href = url\n }\n },\n [slice, url, target]\n )\n\n return (\n
    \n \n {hasTextPresent(slice.primary.title) && }\n {slice.primary.image.url && (\n \n )}\n {hasTextPresent(slice.primary.subheader) &&

    {slice.primary.subheader[0].text}

    }\n {hasTextPresent(slice.primary.description) && (\n
    \n \n
    \n )}\n {slice.items.length > 0 && (\n
    \n
      \n {slice.items.map((bullet, i) => (\n \n ))}\n
    \n
    \n )}\n {hasTextPresent(slice.primary.closing_text) && (\n
    \n \n
    \n )}\n {url ? (\n \n {slice.primary.cta_text}\n \n ) : null}\n
    \n
    \n )\n}\n\nexport default ListCard\n","// extracted by mini-css-extract-plugin\nexport default {\"titleHeader\":\"aWZDn8A1nrPFu_d0pG4H\",\"preTitle\":\"iAl3MN_2DpA4XzZObdzK\",\"postTitle\":\"yJJfa3jpmuyPRyBMZX8h\",\"title\":\"Z2OKnln3rIdV1aehp_Ls\"};","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport PresentRichText, { hasTextPresent } from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\nimport { RichTextBlock } from 'prismic-reactjs'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n pre_title?: RichTextBlock[]\n title?: RichTextBlock[]\n post_title?: RichTextBlock[]\n reference_id?: string\n}\nconst TitleHeader: FC = ({ className, pre_title, title, post_title, reference_id }) => {\n // no render if no titles.\n if (!hasTextPresent(pre_title) && !hasTextPresent(title) && !hasTextPresent(post_title)) {\n return null\n }\n return (\n
    \n \n \n \n
    \n )\n}\n\nexport default TitleHeader\n","// extracted by mini-css-extract-plugin\nexport default {\"photoCards\":\"_fFR3n9aTFvQqjhmTPL_\",\"titleBox\":\"AWSOlxssJZ_WoV9dh2ew\",\"cards\":\"OcikdxZgIxkBUbEBJK2V\",\"card\":\"d4d4UtJBXwm8wIs56rqU\",\"image\":\"PORr_V14kaPD6nU_bgmw\",\"centered\":\"vOOqbtkb5_5wGcxKQ9PY\",\"info\":\"HtXDE2xvQPrJT99NQAxv\",\"icon\":\"XEgPHvmhUS6ryE5NR5UY\",\"cardTitle\":\"moBkHcLMl0FGYylYm4rr\",\"description\":\"t6hAIGbmZCOwnMntigt0\",\"descriptionAlt\":\"uyJBF5aDuPYRYanBKicy\",\"cta\":\"tXRFiRO43SO7yYlADSni\"};","import React, { FC, useMemo, useCallback } from 'react'\nimport cx from 'classnames'\n\nimport { track } from 'utils/analytics'\n\nimport { PhotoCard as PhotoCardType } from '../../types'\nimport { thumbnailUrl } from 'pages/_serverRendered/CmsPage/utils'\n\nimport ClipboardIcon from 'svgs/clipboard'\nimport ToolsIcon from 'svgs/tools'\nimport ContractorIcon from 'svgs/contractor-2'\nimport PhoneIcon from 'svgs/phone'\nimport DollarSignIcon from 'svgs/dollar-sign'\nimport MoneyIcon from 'svgs/money'\nimport EmailIcon from 'svgs/email'\n\nimport PresentRichText from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n card: PhotoCardType\n}\nconst Card: FC = ({ card }) => {\n const url = useMemo(() => {\n return card.cta_url?.url || card.cta_relative_url || null\n }, [card])\n const target = useMemo(() => {\n return card.cta_url?.target || null\n }, [card])\n const handleClick = useCallback(\n async (event: React.MouseEvent) => {\n if (!url) return\n\n event.preventDefault()\n await track('click cta', {\n code: card.cta_tracking_code,\n section: card.cta_tracking_section,\n feature: card.cta_tracking_feature,\n family: card.cta_tracking_family,\n })\n if (target === '_blank') {\n window.open(url, '_blank')?.focus()\n } else {\n window.location.href = url\n }\n },\n [card, url, target]\n )\n\n const icon = useMemo(() => {\n if (card.icon == 'Clipboard') return \n if (card.icon == 'Tools') return \n if (card.icon == 'Contractor') return \n if (card.icon == 'Phone') return \n if (card.icon == 'DollarSign') return \n if (card.icon == 'Money') return \n if (card.icon == 'Email') return \n\n const number = parseInt(card.icon)\n if (number && !Number.isNaN(number)) {\n return {number}\n }\n\n return \n }, [card.icon])\n const color = card.image_background_color ? { backgroundColor: card.image_background_color } : {}\n return (\n
    \n {card.image.url ? (\n \n ) : (\n
    \n )}\n
    \n {card.icon != 'NONE' ?
    {icon}
    : null}\n \n \n \n {card.cta_text && url ? (\n \n {card.cta_text}\n \n ) : null}\n
    \n
    \n )\n}\n\nexport default Card\n","import React, { FC } from 'react'\nimport cx from 'classnames'\n\nimport { SlicePhotoCards } from '../../types'\n\nimport TitleHeader from './TitleHeader'\n\nimport Card from './Card'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n slice: SlicePhotoCards\n}\nconst PhotoCards: FC = ({ className, slice }) => {\n return (\n
    \n \n
    \n {slice.items.map((card, i) => (\n \n ))}\n
    \n
    \n )\n}\n\nexport default PhotoCards\n","// extracted by mini-css-extract-plugin\nexport default {\"homepage\":\"c7y9L0FyvDbTNIDp8_Vb\",\"section\":\"xyIteFY5GjEEDdiGHEkh\",\"homepage_v2410\":\"PoOB_NSluKDxVDIEyqN3\"};","import React, { FC, useEffect, createContext, useContext, useMemo } from 'react'\nimport cx from 'classnames'\n\nimport { trackPage, prepare, trackClick as baseTrackClick } from 'utils/analyticsV2'\n\nimport { HomepageData, Slice as SliceType } from './types'\n\nimport ShowOrHideAdjustBanner from 'non-rendering/ShowOrHideAdjustBanner'\n\nimport OverlayMount from 'layouts/components/OverlayMount'\n\nimport Hero from './Hero'\nimport Header from './Header'\nimport CallToAction from './CallToAction'\nimport Footer from './Footer'\n\nimport CustomerSocialProof from './Sections/CustomerSocialProof'\nimport AppPreview from './Sections/AppPreview'\nimport MediaSocialProof from './Sections/MediaSocialProof'\nimport ImageQuotes from './Sections/ImageQuotes'\nimport ListCard from './Sections/ListCard'\nimport PhotoCards from './Sections/PhotoCards'\n\nimport styles from './styles.module.scss'\n\ntype TrackClickType = (options?: {\n code?: string\n section?: string\n feature?: string\n family?: string\n}) => Promise\ninterface ITrackContext {\n trackClick: TrackClickType\n}\nconst TrackContext = createContext({\n trackClick: async () => undefined,\n})\n\nexport const useTrackClick = (): TrackClickType => {\n return useContext(TrackContext).trackClick\n}\n\nconst Slice: FC = (props) => {\n const { ...slice } = props\n if (\n ['customersocialproof', 'apppreview', 'mediasocialproof', 'image_quotes', 'list_card', 'photo_cards'].includes(\n slice.slice_type || ''\n )\n ) {\n return (\n <>\n {slice.slice_type === 'customersocialproof' ? (\n \n ) : slice.slice_type === 'apppreview' ? (\n \n ) : slice.slice_type === 'mediasocialproof' ? (\n \n ) : slice.slice_type === 'image_quotes' ? (\n \n ) : slice.slice_type === 'list_card' ? (\n \n ) : slice.slice_type === 'photo_cards' ? (\n \n ) : null}\n \n )\n }\n return null\n}\n\nconst Homepage: FC<{ data: HomepageData; webview: boolean; type: string }> = ({ data, type }) => {\n const { body, tracking_page_id } = data\n\n useEffect(() => {\n trackPage(tracking_page_id || 'homepage')\n }, [tracking_page_id])\n\n const trackClick = useMemo(() => prepare({ screen: tracking_page_id }, baseTrackClick), [tracking_page_id])\n\n return (\n \n \n
    \n
    \n \n {body.map((slice, index) => (\n \n ))}\n \n
    \n \n
    \n
    \n
    \n )\n}\n\nexport default Homepage\n","import { MarketingSitePage } from 'components/MarketingSite/PageContent/types'\n\nexport const projectsItems = [\n {\n title: 'Add more space',\n image: {\n key: 'more-space',\n alt: 'Add more space',\n },\n header: 'Consider a home addition.',\n body: 'Square feet is the number one driver of home value and often the biggest source of potential value. Let us help you find the balance between project cost and estimated value increase.',\n cta: { title: 'Log in to your Project Planner to learn more.', href: '/onboarding' },\n },\n {\n title: 'Convert existing space',\n image: {\n key: 'convert-existing',\n alt: 'Convert existing space',\n },\n header: 'Make room for your in-laws.',\n body: 'Converting a garage or attic into liveable space is a great option for a growing family. Adding 1 bed / 1 bath to your home increases property value by $49,500 on average.',\n cta: { title: 'Log in to your Project Planner to learn more.', href: '/onboarding' },\n },\n {\n title: 'Build a backyard home',\n image: {\n key: 'backyard-home',\n alt: 'Build a backyard home',\n },\n header: 'Use your extra space to generate rental income.',\n body: 'Many cities allow you to build an Accessory Dwelling Unit (ADU) on your property. We can help you sift through your local regulations and calculate expected rental income from a backyard home.',\n cta: { title: 'Log in to your Project Planner to learn more.', href: '/onboarding' },\n },\n {\n title: 'Renovate the kitchen',\n image: {\n key: 'kitchen',\n alt: 'Renovate the kitchen',\n },\n header: 'Paint your cabinets.',\n body: 'Updated kitchens can help you to sell faster, but this can quickly become expensive. You’ll want to detail out a budget, think through where to splurge and where to save, and explore your financing options before getting started.',\n cta: { title: 'Log in to your Project Planner to learn more.', href: '/onboarding' },\n },\n {\n title: 'Renovate the bathroom',\n image: {\n key: 'bathroom',\n alt: 'Renovate the bathroom',\n },\n header: 'Update your countertops.',\n body: 'If you’re considering making some cosmetic changes to your bathroom, it’s often one of the cheaper projects to tackle. Plus, our data shows that making cosmetic updates to your bathroom will recoup 75% of the cost in increased value.',\n cta: { title: 'Log in to your Project Planner to learn more.', href: '/onboarding' },\n },\n {\n title: 'Add a pool',\n image: {\n key: 'pool',\n alt: 'Add a pool',\n },\n header: 'Host your dream backyard parties.',\n body: 'Pools are fun for parties, but not for your bank account. They have lots of hidden expenses such as energy bills, chemical treatments, and additional insurance costs. Think twice before splurging on this upgrade.',\n cta: { title: 'Log in to your Project Planner to learn more.', href: '/onboarding' },\n },\n]\n\nconst learnContent: MarketingSitePage = {\n intro: {\n title: 'What is property potential?',\n body: 'The maximum value your home could be worth.',\n },\n sections: [\n {\n title: 'What is property potential?',\n body: 'The median home has an additional 2,010 buildable square feet and an untapped $175,900 of potential value. You can tap into that value by understanding:',\n navItem: {\n title: 'What is property potential?',\n slug: 'what-is-property-potential',\n },\n cardBackgroundColor: 'tangerine-fine',\n contentType: 'list',\n content: {\n items: [\n 'How many additional square feet are you allowed to add?',\n 'How much could you earn from renting out your extra space?',\n 'How could you optimize your living space?',\n 'How much equity is available for you to access?',\n ],\n footer: {\n title: 'Here’s why it’s a big deal.',\n body: 'Your home is likely your single biggest asset. If you make the right decisions, it can make you happy and make you money. But it all starts with understanding what’s possible.',\n },\n },\n },\n {\n title: 'What impacts potential',\n body: 'When calculating potential, we aggregate publicly available data from past real estate transactions, tax assessments, and building permits. We’ve also researched your local city policies which allows us to map out the specific number of square feet you’re allowed to develop. The data that most impacts potential is:',\n cardBackgroundColor: 'transparent',\n contentType: 'cards',\n content: {\n cards: [\n {\n title: 'Property History',\n body: 'What you paid for the property and things you’ve upgraded since living there.',\n },\n {\n title: 'Neighboring Homes',\n body: 'What your neighbors have done to their properties and how that has impacted their home value.',\n },\n {\n title: 'Possibilities',\n body: 'What projects and improvements you are allowed to do based on your local regulations.',\n },\n ],\n },\n },\n {\n title: 'It’s all designed to help you get more out of your property.',\n navItem: {\n title: 'Strategies',\n slug: 'strategies',\n },\n body: 'But not everyone’s goals are the same. Are you moving soon and want to sell your home for as much as possible? Do you want to make your home more enjoyable? To achieve your goal, you need the right strategy.',\n cta: { title: 'Enter your address to explore these strategies for your property', href: '/onboarding' },\n cardBackgroundColor: 'transparent',\n contentType: 'cards',\n content: {\n cards: [\n {\n title: 'Maximize home value',\n image: {\n key: 'maximize',\n alt: 'Maximize home value',\n },\n },\n {\n title: 'Improve living space',\n image: {\n key: 'living-space',\n alt: 'Improve living space',\n },\n },\n {\n title: 'Earn rental income',\n image: {\n key: 'rental',\n alt: 'Earn rental income',\n },\n },\n {\n title: 'Create the best backyard',\n image: {\n key: 'backyard',\n alt: 'Create the best backyard',\n },\n },\n ],\n },\n },\n {\n title: 'Property potential’s best-kept secret: equity.',\n navItem: {\n title: 'Equity',\n slug: 'equity',\n },\n body: 'For most Americans, home equity makes up over half of their total assets. That’s why using your home equity is usually the most affordable way to access funds for projects. ',\n cardBackgroundColor: 'transparent',\n contentType: 'text',\n content: {\n footer: `But what’s the right amount to access without driving up your interest rate? Figuring this out sounds more difficult than it is, so we’re here to help.`,\n cta: {\n title: 'Check out your Project Planner for personalized insights.',\n href: '/onboarding',\n },\n },\n },\n {\n title: 'Once you’ve chosen a strategy, it’s time to get specific.',\n navItem: {\n title: 'Projects',\n slug: 'projects',\n },\n cardBackgroundColor: 'transparent',\n contentType: 'accordion',\n content: {\n items: projectsItems,\n },\n },\n {\n title: 'FAQ',\n navItem: {\n title: 'FAQ',\n slug: 'faq',\n },\n cardBackgroundColor: 'transparent',\n contentType: 'faq',\n },\n ],\n}\n\nexport default learnContent\n","// extracted by mini-css-extract-plugin\nexport default {\"hero\":\"rQnHFoDaLyiylrHObpfR\",\"chart\":\"DodWJB7aA0SnsLojuGii\",\"potentialValue\":\"zUeWV5LGDoMmiqO6s_5A\",\"label\":\"zkYz22rTlCvFPSqEtQU6\",\"currentValue\":\"NpqyfYgd1p_YujLNe8T6\",\"amount\":\"cLqUlODK9SSauQPKd3aP\",\"delta\":\"IkimZKBAR2A2pDRUhpHA\",\"legend\":\"H47pRO1rltbdEZ3FJjrp\",\"getStarted\":\"PyoImqLCZETZ3fPIzzhB\"};","import React, { FC, useEffect } from 'react'\n\nimport Footer from 'components/MarketingSite/Footer'\nimport Header, { calculateNavItems } from 'components/MarketingSite/Header'\nimport AddressAutocomplete from 'components/MarketingSite/Header/AddressAutocomplete'\nimport GetStarted from 'pages/_serverRendered/Homepage/GetStarted'\nimport PageContent from 'components/MarketingSite/PageContent'\nimport learnContent from 'pages/_serverRendered/Learn/content'\nimport { trackPage } from 'utils/analytics'\n\nimport styles from './styles.module.scss'\n\nconst Hero = () => (\n
    \n
    \n
    \n
    \n
    {'$580,000'}
    \n
    \n
    \n
    \n
    \n
    {'$417,000'}
    \n
    {'+$35,500 since purchase'}
    \n
    \n
    \n
    \n
      \n
    • {'Estimated current value'}
    • \n
    • {'Estimated potential value'}
    • \n
    \n
    \n)\n\nconst Learn: FC = () => {\n useEffect(() => {\n trackPage('Learn')\n }, [])\n\n return (\n
    \n
    \n \n
    \n } />\n \n
    \n
    \n )\n}\n\nexport default Learn\n","import { MarketingSitePage } from 'components/MarketingSite/PageContent/types'\n\nexport const testimonialsItems = [\n {\n title: 'Goal: Evaluate potential homes',\n body: 'When I was buying my house, I had so many questions that I couldn’t get answered. If I had been armed with this info earlier, it would have taken a lot of stress and uncertainty out of the process.',\n footer: 'Aldo, San Francisco',\n },\n {\n title: 'Goal: Add space for grandparents to stay',\n body: 'We love our home and have a laundry list of things we want to do, especially as our kids grow up...The first thing we wanted to do was adding more private space for grandparents and rental income. Realm helped us decide what to do and how much to spend. Next up is building a fence and fixing the funky bathroom—it’s entirely made of mirrors.',\n footer: 'Julie & Rob, Fullerton',\n },\n {\n title: 'Goal: Earn rental income',\n body: 'We knew we wanted an ADU but it was such a daunting task. Without Realm, we would have pushed off the project forever but they made it so easy for us to get started. Realm’s detailed report helped us hone in on exactly what type of ADU we wanted and taught us how we could refinance the ADU into our existing mortgage payment.',\n footer: 'Robyn & Lukas, Los Angeles',\n },\n]\n\nconst meetContent: MarketingSitePage = {\n intro: {\n title: 'Real stories from real homeowners',\n body: 'Read about how Realm is helping property owners tap into property potential',\n },\n sections: [\n {\n navItem: {\n title: 'Case studies',\n slug: 'case-studies',\n },\n cardBackgroundColor: 'moss-fine',\n cta: { title: 'Read more on the blog', href: '/resources/library' },\n contentType: 'text',\n content: {\n image: { key: 'case-study-1', alt: 'Joel & Louise' },\n title: `“Realm did a great job, considering all the facts and weighing them objectively, which led them to propose a plan that's better than anything we could have thought of by ourselves!”`,\n body: `Joel & Louise purchased their home in Paso Robles several years ago as a vacation rental and investment property. During the pandemic, they relocated from their apartment in Los Angeles to take advantage of the beautiful outdoor space, backyard, and pool.\n\nWith a long list of potential projects and no idea where to start, Joel & Louise reached out to Realm for a holistic plan to transform their vacation property into their permanent dream home. Based on Realm’s analysis, they chose to start by renovating their garage and working with a local team to plan a home addition. They plan to continue using Realm as a resource for years to come.`,\n footer: `As Louise says: “We have no shortage of projects and will stick with Realm for most of them. Really, any improvement around the house that goes beyond a plumber, our contact at Realm is likely to hear from us.”`,\n },\n },\n {\n intro: {\n title: 'Hear what real customers are saying about Realm.',\n },\n navItem: {\n title: 'Testimonials',\n slug: 'testimonials',\n },\n cardBackgroundColor: 'transparent',\n contentType: 'scrollingCards',\n content: {\n items: testimonialsItems,\n },\n },\n {\n intro: {\n title: 'Learn More',\n body: 'Visit our blog to stay up to date with the industry, get valuable insights from our experts, and more.',\n cta: {\n title: 'Take me there',\n href: '/resources/library',\n },\n },\n navItem: {\n title: 'Blog',\n slug: 'blog',\n },\n cardBackgroundColor: 'transparent',\n contentType: 'blog',\n content: {\n items: [\n {\n author: {\n key: 'liz',\n name: 'Liz Young',\n title: 'Founder',\n },\n title: 'What is the Realm Score?',\n body: 'The Realm Score helps you understand how much of a property’s potential has been realized. Unlike home value, which can be impacted by a number of factors outside a homeowner’s control such as school districts, lot size, and nearby highways, a Realm Score only takes into account the things that you can change.',\n href: '/resources/library/what-is-the-realm-score/',\n },\n {\n author: {\n key: 'liz',\n name: 'Liz Young',\n title: 'Founder',\n },\n title: 'Why I Founded Realm',\n body: 'I founded Realm because once I started investing in real estate, I thought it was crazy that homeowners didn’t have access to the same information as investors.',\n href: '/resources/library/founder-story/',\n },\n {\n author: {\n key: 'liz',\n name: 'Liz Young',\n title: 'Founder',\n },\n title: 'Vanessa: Garage Conversion to ADU',\n body: 'Meet Vanessa – Medical professional, outdoors enthusiast, proud owner of an English bulldog. Goal: Earn enough rental income to buy a second home.',\n href: '/resources/library/vanessa-garage-conversion-to-adu/',\n },\n ],\n },\n },\n ],\n}\n\nexport default meetContent\n","// extracted by mini-css-extract-plugin\nexport default {\"getStarted\":\"aLddR77ucOFe94fNOPZX\"};","import React, { FC, useEffect } from 'react'\n\nimport AddressAutocomplete from 'components/MarketingSite/Header/AddressAutocomplete'\nimport Footer from 'components/MarketingSite/Footer'\nimport Header, { calculateNavItems } from 'components/MarketingSite/Header'\nimport GetStarted from 'pages/_serverRendered/Homepage/GetStarted'\nimport PageContent from 'components/MarketingSite/PageContent'\nimport meetContent from 'pages/_serverRendered/Meet/content'\nimport { trackPage } from 'utils/analytics'\n\nimport styles from './styles.module.scss'\n\nconst Meet: FC = () => {\n useEffect(() => {\n trackPage('Meet')\n }, [])\n\n return (\n
    \n
    \n \n
    \n \n \n
    \n
    \n )\n}\n\nexport default Meet\n","// The content of this page is copy/pasted - disabling some linter rules to avoid having\n// to hand-edit everything\n/* eslint-disable react/jsx-no-literals, react/jsx-no-bind, jsx-a11y/anchor-is-valid */\nimport React, { FC, useEffect } from 'react'\n\nimport Footer from 'components/MarketingSite/Footer'\nimport Header from 'components/MarketingSite/Header'\nimport { trackPage } from 'utils/analytics'\n\nimport styles from 'components/MarketingSite/shared/legal.module.scss'\n\nconst Content: FC = () => (\n
    \n
    \n

    Privacy Policy

    \n Effective date: May 26th, 2020\n

    \n

    \n \n At Realm, we take your privacy seriously. Please read this Privacy Policy to learn how we treat your personal\n data.\n {' '}\n \n By using or accessing our Services in any manner, you acknowledge that you accept the practices and policies\n outlined below, and you hereby consent that we will collect, use and share your information as described in\n this Privacy Policy.\n \n  \n

    \n

    \n Remember that your\n use of Realm’s Services is at all times subject to our \n Terms of Use\n \n , which incorporates this Privacy Policy. Any terms we use in this Policy without defining them have the\n definitions given to them in the Terms of Use . \n \n

    \n

    \n \n You may print a copy of this Privacy Policy by clicking{' '}\n {\n window.print()\n return false\n }}\n >\n {' '}\n here\n \n \n \n . If you have a disability, you may access this Privacy Policy in an alternative format by contacting\n info@realmhome.com .\n \n

    \n

    Privacy Policy Table of Contents

    \n

    \n What this Privacy Policy Covers\n \n
    \n
    \n Personal Data\n
    \n \n – Categories of Personal Data We Collect\n
    \n
    \n – Categories of Sources of Personal Data\n
    \n – Our Commercial or Business Purposes for Collecting Personal Data\n
    \n How We Share Your Personal Data\n
    \n Tracking Tools, Advertising and Opt-Out\n
    \n Data Security and Retention\n
    \n Personal Data of Children\n
    \n California Resident Rights\n
    \n Other State Law Privacy Rights\n
    \n Changes to this Privacy Policy\n
    \n Contact Information\n

    \n

    \n \n

    \n

    What this Privacy Policy Covers

    \n

    \n \n This Privacy Policy covers how we treat Personal Data that we gather when you access or use our Services.\n “Personal Data” means any information that identifies or relates to a particular individual and also includes\n information referred to as “personally identifiable information” or “personal information” under applicable\n data privacy laws, rules or regulations. This Privacy Policy does not cover the practices of companies we\n don’t own or control or people we don’t manage.\n \n

    \n

    Personal Data

    \n

    \n \n Categories of Personal Data We Collect\n \n

    \n

    \n \n This chart details the categories of Personal Data that we collect and have collected over the past 12 months:\n \n

    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n Category of Personal Data \n \n Examples of Personal Data We Collect\n \n Categories of Third Parties With Whom We Share this Personal Data:\n  \n
    \n Profile or Contact Data\n \n
      \n
    • \n First and last name\n
    • \n
    • \n Email\n
    • \n
    • \n Phone number\n
    • \n
    • \n Address\n
    • \n
    • \n Unique identifiers such as passwords\n
    • \n
    \n
    \n
      \n
    • \n Service Providers\n
    • \n
    • \n Advertising Partners\n
    • \n
    • \n Business Partners\n
    • \n
    • \n Parties You Authorize, Access or Authenticate\n
    • \n
    \n
    \n Payment Data\n \n
      \n
    • \n Payment card type\n
    • \n
    • \n Last 4 digits of payment card\n
    • \n
    • \n Billing address, phone number, and email\n
    • \n
    \n
    \n
      \n
    • \n Service Providers (specifically our payment processing partner, currently \n [\n Stripe, Inc\n ][\n Square, Inc. and Square Capital, LLC\n ][\n Braintree (offered by PayPal, Inc.)\n ]\n )\n
    • \n
    \n
    \n Commercial Data\n \n
      \n
    • \n Purchase history\n
    • \n
    • \n Consumer profiles\n
    • \n
    \n
    \n
      \n
    • \n Service Providers\n
    • \n
    • \n Advertising Partners\n
    • \n
    • \n Business Partners\n
    • \n
    • \n Parties You Authorize, Access or Authenticate\n
    • \n
    \n
    \n Device/IP Data\n \n
      \n
    • \n IP address\n
    • \n
    • \n Device ID\n
    • \n
    • \n Domain server\n
    • \n
    • \n Type of device/operating system/browser used to access the Services\n
    • \n
    \n
    \n
      \n
    • \n Service Providers\n
    • \n
    • \n Advertising Partners\n
    • \n
    • \n Business Partners\n
    • \n
    • \n Parties You Authorize, Access or Authenticate\n
    • \n
    \n
    \n Web Analytics\n \n
      \n
    • \n Web page interactions\n
    • \n
    • \n Referring webpage/source through which you accessed the Services\n
    • \n
    • \n Non-identifiable request IDs\n
    • \n
    • \n Statistics associated with the interaction between device or browser and the Services\n
    • \n
    \n
    \n
      \n
    • \n Service Providers\n
    • \n
    • \n Advertising Partners\n
    • \n
    • \n Business Partners\n
    • \n
    • \n Parties You Authorize, Access or Authenticate\n
    • \n
    \n
    \n Social Network Data\n \n
      \n
    • \n Email\n
    • \n
    • \n Phone number\n
    • \n
    • \n User name\n
    • \n
    • \n IP address\n
    • \n
    • \n Device ID\n
    • \n
    \n
    \n
      \n
    • \n Service Providers\n
    • \n
    • \n Advertising Partners\n
    • \n
    • \n Business Partners\n
    • \n
    • \n Parties You Authorize, Access or Authenticate\n
    • \n
    \n
    \n Consumer Demographic Data\n \n
      \n
    • \n Age / date of birth\n
    • \n
    • \n Zip code\n
    • \n
    • \n Gender\n
    • \n
    • \n Race\n
    • \n
    • \n Ethnicity\n
    • \n
    \n
    \n
      \n
    • \n Service Providers\n
    • \n
    • \n Advertising Partners\n
    • \n
    • \n Business Partners\n
    • \n
    • \n Parties You Authorize, Access or Authenticate\n
    • \n
    \n
    \n Professional or Employment-Related Data\n \n
      \n
    • \n Resume\n
    • \n
    • \n Job title\n
    • \n
    • \n Job history\n
    • \n
    • \n Performance evaluations\n
    • \n
    \n
    \n
      \n
    • \n Service Providers\n
    • \n
    • \n Advertising Partners\n
    • \n
    • \n Business Partners\n
    • \n
    • \n Parties You Authorize, Access or Authenticate\n
    • \n
    \n
    \n Non-Public Education Data\n \n
      \n
    • \n Grades or transcripts\n
    • \n
    • \n Student financial information\n
    • \n
    • \n Student disciplinary records\n
    • \n
    \n
    \n
      \n
    • \n Service Providers\n
    • \n
    • \n Advertising Partners\n
    • \n
    • \n Business Partners\n
    • \n
    • \n Parties You Authorize, Access or Authenticate\n
    • \n
    \n
    \n Geolocation Data\n \n
      \n
    • \n IP-address-based location information\n
    • \n
    • \n GPS data\n
    • \n
    \n
    \n
      \n
    • \n Service Providers\n
    • \n
    • \n Advertising Partners\n
    • \n
    • \n Business Partners\n
    • \n
    • \n Parties You Authorize, Access or Authenticate\n
    • \n
    \n
    \n Biometric Data\n \n
      \n
    • \n Fingerprints\n
    • \n
    • \n Faceprints\n
    • \n
    • \n Iris scans\n
    • \n
    \n
    \n
      \n
    • \n Service Providers\n
    • \n
    • \n Advertising Partners\n
    • \n
    • \n Business Partners\n
    • \n
    • \n Parties You Authorize, Access or Authenticate\n
    • \n
    \n
    \n Sensory Data\n \n
      \n
    • \n Photos, videos or recordings of your environment\n
    • \n
    \n
    \n
      \n
    • \n Service Providers\n
    • \n
    • \n Advertising Partners\n
    • \n
    • \n Business Partners\n
    • \n
    • \n Parties You Authorize, Access or Authenticate\n
    • \n
    \n
    \n Health Data\n \n
      \n
    • \n Medical conditions\n
    • \n
    • \n Weight\n
    • \n
    • \n Health or exercise activity monitoring\n
    • \n
    \n
    \n
      \n
    • \n Service Providers\n
    • \n
    • \n Advertising Partners\n
    • \n
    • \n Business Partners\n
    • \n
    • \n Parties You Authorize, Access or Authenticate\n
    • \n
    \n
    \n Inferences Drawn From Other Personal Data Collected\n \n
      \n
    • \n Profiles reflecting user attributes\n
    • \n
    • \n Profiles reflecting user behavior\n
    • \n
    \n
    \n
      \n
    • \n Service Providers\n
    • \n
    • \n Advertising Partners\n
    • \n
    • \n Business Partners\n
    • \n
    • \n Parties You Authorize, Access or Authenticate\n
    • \n
    \n
    \n Other Identifying Information that You Voluntarily Choose to Provide\n \n
      \n
    • \n Identifying information in emails or letters you send us\n
    • \n
    \n
    \n
      \n
    • \n Service Providers\n
    • \n
    • \n Advertising Partners\n
    • \n
    • \n Business Partners\n
    • \n
    • \n Parties You Authorize, Access or Authenticate\n
    • \n
    \n
    \n Financial Data You Chose to Provide\n \n
      \n
    • \n Credit score\n
    • \n
    • \n Mortgage provider \n
    • \n
    • \n Mortgage interest rate\n
    • \n
    \n
    \n
      \n
    • \n Service Providers\n
    • \n
    • \n Advertising Partners\n
    • \n
    • \n Business Partners\n
    • \n
    • \n Parties You Authorize, Access or Authenticate\n
    • \n
    \n
    \n Home Data You Chose to Provide\n \n
      \n
    • \n Home inspections\n
    • \n
    • \n Interior and exterior home photographs\n
    • \n
    • \n Appliance brand and model numbers\n
    • \n
    \n
    \n
      \n
    • \n Service Providers\n
    • \n
    • \n Advertising Partners\n
    • \n
    • \n Business Partners\n
    • \n
    • \n Parties You Authorize, Access or Authenticate\n
    • \n
    \n
    \n

     

    \n

    \n \n Categories of Sources of Personal Data\n \n

    \n

    \n We collect Personal Data about you from the following categories of sources:\n

    \n
      \n
    • \n You\n
    • \n
    \n
      \n
    • \n
        \n
      • \n
          \n
        • \n \n When you provide such information directly to us\n .\n \n
            \n
          • \n When you create an account or use our interactive tools and Services.\n
          • \n
          • \n \n When you voluntarily provide information in free-form text boxes through the Services or through\n responses to surveys or questionnaires.\n \n
          • \n
          • \n When you send us an email or otherwise contact us.  \n
          • \n
          \n
        • \n
        • \n \n When you use the Services and such information is collected automatically\n .\n \n
            \n
          • \n \n Through Cookies (defined in the “Tracking Tools, Advertising and Opt-Out” section below).\n \n
          • \n
          • \n \n If you use a location-enabled browser, we may receive information about your location.\n \n
          • \n
          • \n \n If you download and install certain applications and software we make available, we may receive\n and collect information transmitted from your computing device for the purpose of providing you\n the relevant Services, such as information regarding when you are logged on and available to\n receive updates or alert notices.\n \n
          • \n
          \n
        • \n
        \n
      • \n
      \n
    • \n
    \n
      \n
    • \n Public Records\n
    • \n
    \n
      \n
    • \n
        \n
      • \n
          \n
        • \n From the government or other sources.\n
        • \n
        \n
      • \n
      \n
    • \n
    \n
      \n
    • \n Third Parties\n
    • \n
    \n
      \n
    • \n
        \n
      • \n \n Vendors\n \n
          \n
        • \n \n We may use analytics providers to analyze how you interact and engage with the Services, or third\n parties may help us provide you with customer support.\n \n
        • \n
        • \n We may use vendors to obtain information to generate leads and create user profiles.\n
        • \n
        \n
      • \n
      • \n \n Advertising Partners\n \n
          \n
        • \n \n We receive information about you from some of our vendors who assist us with marketing or\n promotional services related to how you interact with our websites, applications, products,\n Services, advertisements or communications.\n \n
        • \n
        \n
      • \n
      • \n \n Social Networks \n \n
          \n
        • \n \n If you provide your social network account credentials to us or otherwise sign in to the Services\n through a third-party site or service, some content and/or information in those accounts may be\n transmitted into your account with us.\n \n
        • \n
        \n
      • \n
      \n
    • \n
    \n

    \n  \n

    \n

    \n \n Our Commercial or Business Purposes for Collecting Personal Data\n \n

    \n
      \n
    • \n Providing, Customizing and Improving the Services\n
    • \n
    \n
      \n
    • \n
        \n
      • \n
          \n
        • \n Creating and managing your account or other user profiles.\n
        • \n
        • \n Processing orders or other transactions; billing.\n
        • \n
        • \n Providing you with the products, services or information you request.\n
        • \n
        • \n Meeting or fulfilling the reason you provided the information to us.\n
        • \n
        • \n Providing support and assistance for the Services.\n
        • \n
        • \n \n Improving the Services, including testing, research, internal analytics and product development.\n \n
        • \n
        • \n Personalizing the Services, website content and communications based on your preferences.\n
        • \n
        • \n Doing fraud protection, security and debugging.\n
        • \n
        • \n \n Carrying out other business purposes stated when collecting your Personal Data or as otherwise set\n forth in applicable data privacy laws, such as the California Consumer Privacy Act (the “CCPA”).\n \n
        • \n
        \n
      • \n
      \n
    • \n
    \n
      \n
    • \n Marketing the Services\n
    • \n
    \n
      \n
    • \n
        \n
      • \n
          \n
        • \n Marketing and selling the Services.\n
        • \n
        • \n Showing you advertisements, including interest-based or online behavioral advertising.\n
        • \n
        \n
      • \n
      \n
    • \n
    \n
      \n
    • \n Corresponding with You\n
    • \n
    \n
      \n
    • \n
        \n
      • \n
          \n
        • \n \n Responding to correspondence that we receive from you, contacting you when necessary or requested,\n and sending you information about Realm or the Services.\n \n
        • \n
        • \n \n Sending emails and other communications according to your preferences or that display content that\n we think will interest you.\n \n
        • \n
        \n
      • \n
      \n
    • \n
    \n
      \n
    • \n Meeting Legal Requirements and Enforcing Legal Terms\n
    • \n
    \n
      \n
    • \n
        \n
      • \n \n Fulfilling our legal obligations under applicable law, regulation, court order or other legal process,\n such as preventing, detecting and investigating security incidents and potentially illegal or prohibited\n activities.\n \n
      • \n
      • \n Protecting the rights, property or safety of you, Realm or another party.\n
      • \n
      • \n Enforcing any agreements with you.\n
      • \n
      • \n Responding to claims that any posting or other content violates third-party rights.\n
      • \n
      • \n Resolving disputes.\n
      • \n
      \n
    • \n
    \n

    \n \n We will not collect additional categories of Personal Data or use the Personal Data we collected for\n materially different, unrelated or incompatible purposes without providing you notice.\n \n

    \n

     

    \n

    How We Share Your Personal Data

    \n

    \n \n We disclose your Personal Data to the categories of service providers and other parties listed in this\n section. Depending on state laws that may be applicable to you, some of these disclosures may constitute a\n “sale” of your Personal Data. For more information, please refer to the state-specific sections below.\n \n

    \n

     

    \n
      \n
    • \n \n Service Providers.\n \n These parties help us provide the Services or perform business functions on our behalf. They include:\n \n \n
    • \n
    \n
      \n
    • \n
        \n
      • \n
          \n
        • \n Hosting, technology and communication providers.\n
        • \n
        • \n Security and fraud prevention consultants.\n
        • \n
        • \n Analytics providers. \n
        • \n
        • \n Support and customer service vendors.\n
        • \n
        • \n Product fulfillment and delivery providers.\n
        • \n
        \n
      • \n
      \n
    • \n
    \n
      \n
    • \n \n Business Partners.\n These parties partner with us in offering various services. They include:\n \n
    • \n
    \n
      \n
    • \n
        \n
      • \n
          \n
        • \n Businesses that you have a relationship with.\n
        • \n
        • \n Companies that we partner with to offer joint promotional offers or opportunities.\n
        • \n
        \n
      • \n
      \n
    • \n
    \n
      \n
    • \n Parties You Authorize, Access or Authenticate\n
    • \n
    \n
      \n
    • \n
        \n
      • \n Third parties you access through the services.\n
      • \n
      • \n Social media services.\n
      • \n
      • \n Other users.\n
      • \n
      \n
    • \n
    \n

     

    \n

    \n \n \n Legal Obligations\n \n \n

    \n

    \n \n We may share any Personal Data that we collect with third parties in conjunction with any of the activities\n set forth under “Meeting Legal Requirements and Enforcing Legal Terms” in the “Our Commercial or Business\n Purposes for Collecting Personal Data” section above. \n \n

    \n

     

    \n

    \n \n \n Business Transfers\n \n \n

    \n

    \n \n All of your Personal Data that we collect may be transferred to a third party if we undergo a merger,\n acquisition, bankruptcy or other transaction in which that third party assumes control of our business (in\n whole or in part). Should one of these events occur, we will make reasonable efforts to notify you before your\n information becomes subject to different privacy and security policies and practices.\n \n

    \n

     

    \n

    \n \n \n Data that is Not Personal Data\n \n \n

    \n

    \n \n We may create aggregated, de-identified or anonymized data from the Personal Data we collect, including by\n removing information that makes the data personally identifiable to a particular user. We may use such\n aggregated, de-identified or anonymized data and share it with third parties for our lawful business purposes,\n including to analyze, build and improve the Services and promote our business, provided that we will not share\n such data in a manner that could identify you.  \n \n

    \n

     

    \n

    Tracking Tools, Advertising and Opt-Out

    \n

    \n \n The Services use cookies and similar technologies such as pixel tags, web beacons, clear GIFs and JavaScript\n (collectively, “Cookies”) to enable our servers to recognize your web browser, tell us how and when you visit\n and use our Services, analyze trends, learn about our user base and operate and improve our Services. Cookies\n are small pieces of data– usually text files – placed on your computer, tablet, phone or similar device when\n you use that device to access our Services. We may also supplement the information we collect from you with\n information received from third parties, including third parties that have placed their own Cookies on your\n device(s). Please note that because of our use of Cookies, the Services do not support “Do Not Track” requests\n sent from a browser at this time.\n \n

    \n

    \n We use the following types of Cookies:\n

    \n
      \n
    • \n Essential Cookies\n \n . Essential Cookies are required for providing you with features or services that you have requested. For\n example, certain Cookies enable you to log into secure areas of our Services. Disabling these Cookies may\n make certain features and services unavailable.\n \n
    • \n
    • \n Functional Cookies\n \n . Functional Cookies are used to record your choices and settings regarding our Services, maintain your\n preferences over time and recognize you when you return to our Services. These Cookies help us to\n personalize our content for you, greet you by name and remember your preferences (for example, your choice\n of language or region).\n \n
    • \n
    • \n Performance/Analytical Cookies\n \n . Performance/Analytical Cookies allow us to understand how visitors use our Services. They do this by\n collecting information about the number of visitors to the Services, what pages visitors view on our\n Services and how long visitors are viewing pages on the Services. Performance/Analytical Cookies also help\n us measure the performance of our advertising campaigns in order to help us improve our campaigns and the\n Services’ content for those who engage with our advertising. For example, Google Inc. (“Google”) uses\n cookies in connection with its Google Analytics services. Google’s ability to use and share information\n collected by Google Analytics about your visits to the Services is subject to the Google Analytics Terms of\n Use and the Google Privacy Policy. You have the option to opt-out of Google’s use of Cookies by visiting the\n Google advertising opt-out page at www.google.com/privacy_ads.html or the Google Analytics Opt-out Browser\n Add-on at https://tools.google.com/dlpage/gaoptout/.\n \n
    • \n
    • \n Retargeting/Advertising Cookies\n \n . Retargeting/Advertising Cookies collect data about your online activity and identify your interests so\n that we can provide advertising that we believe is relevant to you. For more information about this, please\n see the section below titled “Information about Interest-Based Advertisements.”\n \n  \n
    • \n
    \n

    \n \n You can decide whether or not to accept Cookies through your internet browser’s settings. Most browsers have\n an option for turning off the Cookie feature, which will prevent your browser from accepting new Cookies, as\n well as (depending on the sophistication of your browser software) allow you to decide on acceptance of each\n new Cookie in a variety of ways. You can also delete all Cookies that are already on your device. If you do\n this, however, you may have to manually adjust some preferences every time you visit our website and some of\n the Services and functionalities may not work. \n \n

    \n

    \n \n To explore what Cookie settings are available to you, look in the “preferences” or “options” section of your\n browser’s menu. To find out more information about Cookies, including information about how to manage and\n delete Cookies, please visit\n \n \n http://www.allaboutcookies.org/\n \n .\n

    \n

     

    \n

    \n Information about Interest-Based Advertisements: \n

    \n

    \n \n We may serve advertisements, and also allow third-party ad networks, including third-party ad servers, ad\n agencies, ad technology vendors and research firms, to serve advertisements through the Services. These\n advertisements may be targeted to users who fit certain general profile categories or display certain\n preferences or behaviors (“Interest-Based Ads”). Information for Interest-Based Ads (including Personal Data)\n may be provided to us by you, or derived from the usage patterns of particular users on the Services and/or\n services of third parties. Such information may be gathered through tracking users’ activities across time and\n unaffiliated properties, including when you leave the Services. To accomplish this, we or our service\n providers may deliver Cookies, including a file (known as a “web beacon”) from an ad network to you through\n the Services. Web beacons allow ad networks to provide anonymized, aggregated auditing, research and reporting\n for us and for advertisers. Web beacons also enable ad networks to serve targeted advertisements to you when\n you visit other websites. Web beacons allow ad networks to view, edit or set their own Cookies on your\n browser, just as if you had requested a web page from their site.\n \n

    \n

     

    \n

    \n \n We comply with the Digital Advertising Alliance (“DAA”) Self-Regulatory Principles for Online Behavioral\n Advertising. Through the DAA and Network Advertising Initiative (“NAI”), several media and marketing\n associations have developed an industry self-regulatory program to give consumers a better understanding of,\n and greater control over, ads that are customized based a consumer’s online behavior across different websites\n and properties. To make choices about Interest-Based Ads from participating third parties, including to\n opt-out of receiving behaviorally targeted advertisements from participating organizations, please visit the\n DAA’s or NAI’s consumer opt-out pages, which are located at\n \n \n http://www.networkadvertising.org/choices/\n \n or \n \n www.aboutads.info/choices\n \n \n

    \n

    \n \n

    \n

    Data Security and Retention

    \n

    \n \n We seek to protect your Personal Data from unauthorized access, use and disclosure using appropriate physical,\n technical, organizational and administrative security measures based on the type of Personal Data and how we\n are processing that data. You should also help protect your data by appropriately selecting and protecting\n your password and/or other sign-on mechanism; limiting access to your computer or device and browser; and\n signing off after you have finished accessing your account. Although we work to protect the security of your\n account and other data that we hold in our records, please be aware that no method of transmitting data over\n the internet or storing data is completely secure.\n \n

    \n

    \n \n We retain Personal Data about you for as long as you have an open account with us or as otherwise necessary to\n provide you with our Services. In some cases we retain Personal Data for longer, if doing so is necessary\n \n \n to comply with our legal obligations, resolve disputes or collect fees owed, or is otherwise permitted or\n required by applicable law, rule or regulation. W\n \n \n e may further retain information in an anonymous or aggregated form where that information would not identify\n you personally.\n \n

    \n

    \n \n

    \n

    Personal Data of Children

    \n

    \n \n As noted in the Terms of Use, we do not knowingly collect or solicit Personal Data about children under\n \n 13 \n  years of age; if you are a child under the age of \n 13\n \n , please do not attempt to register for or otherwise use the Services or send us any Personal Data. If we\n learn we have collected Personal Data from a child under\n \n 13\n \n years of age, we will delete that information as quickly as possible. If you believe that a child under\n \n 13\n years of age may have provided Personal Data to us, please contact us at info@realmhome.com.\n

    \n

    \n \n

    \n

    California Resident Rights

    \n

    \n \n If you are a California resident, you have the rights set forth in this section. Please see the “Exercising\n Your Rights” section below for instructions regarding how to exercise these rights. Please note that we may\n process Personal Data of our customers’ end users or employees in connection with our provision of certain\n services to our customers. If we are processing your Personal Data as a service provider, you should contact\n the entity that collected your Personal Data in the first instance to address your rights with respect to such\n data.\n \n

    \n

    \n \n If there are any conflicts between this section and any other provision of this Privacy Policy and you are a\n California resident, the portion that is more protective of Personal Data shall control to the extent of such\n conflict. If you have any questions about this section or whether any of the following rights apply to you,\n please contact us at info@realmhome.com.\n \n

    \n

    \n \n \n Access\n \n \n

    \n

    \n \n You have the right to request certain information about our collection and use of your Personal Data over the\n past 12 months. In response, we will provide you with the following information:\n \n

    \n
      \n
    • \n The categories of Personal Data that we have collected about you.\n
    • \n
    • \n The categories of sources from which that Personal Data was collected.\n
    • \n
    • \n The business or commercial purpose for collecting or selling your Personal Data.\n
    • \n
    • \n The categories of third parties with whom we have shared your Personal Data.\n
    • \n
    • \n The specific pieces of Personal Data that we have collected about you.\n
    • \n
    \n

     

    \n

    \n \n If we have disclosed your Personal Data to any third parties for a business purpose over the past 12 months,\n we will identify the categories of Personal Data shared with each category of third party recipient. If we\n have sold your Personal Data over the past 12 months, we will identify the categories of Personal Data sold to\n each category of third party recipient.\n \n

    \n

    \n \n \n Deletion\n \n \n

    \n

    \n \n You have the right to request that we delete the Personal Data that we have collected about you. Under the\n CCPA, this right is subject to certain exceptions: for example, we may need to retain your Personal Data to\n provide you with the Services or complete a transaction or other action you have requested. If your deletion\n request is subject to one of these exceptions, we may deny your deletion request. \n \n

    \n

    \n \n \n Exercising Your Rights\n \n \n

    \n

    \n \n To exercise the rights described above, you or your Authorized Agent (defined below) must send us a request\n that (1) provides sufficient information to allow us to verify that you are the person about whom we have\n collected Personal Data, and (2) describes your request in sufficient detail to allow us to understand,\n evaluate and respond to it. Each request that meets both of these criteria will be considered a “Valid\n Request.” We may not respond to requests that do not meet these criteria. We will only use Personal Data\n provided in a Valid Request to verify your identity and complete your request. You do not need an account to\n submit a Valid Request.\n \n

    \n

    \n \n We will work to respond to your Valid Request within 45 days of receipt. We will not charge you a fee for\n making a Valid Request unless your Valid Request(s) is excessive, repetitive or manifestly unfounded. If we\n determine that your Valid Request warrants a fee, we will notify you of the fee and explain that decision\n before completing your request.\n \n

    \n

    \n You may submit a Valid Request using the following methods:\n

    \n
      \n
    • \n Email us at: info@realmhome.com\n
    • \n
    \n

    \n \n You may also authorize an agent (an “Authorized Agent”) to exercise your rights on your behalf. To do this,\n you must provide your Authorized Agent with written permission to exercise your rights on your behalf, and we\n may request a copy of this written permission from your Authorized Agent when they make a request on your\n behalf.\n \n

    \n

    \n \n \n We Will Not Discriminate Against You for Exercising Your Rights Under the CCPA\n \n \n

    \n

    \n \n We will not discriminate against you for exercising your rights under the CCPA. We will not deny you our goods\n or services, charge you different prices or rates, or provide you a lower quality of goods and services if you\n exercise your rights under the CCPA. However, we may offer different tiers of our Services as allowed by\n applicable data privacy laws (including the CCPA) with varying prices, rates or levels of quality of the goods\n or services you receive related to the value of Personal Data that we receive from you.\n \n  \n

    \n

    \n \n

    \n

    Other State Law Privacy Rights

    \n

    \n \n California Resident Rights\n \n

    \n

    \n \n Under California Civil Code Sections 1798.83-1798.84, California residents are entitled to contact us to\n prevent disclosure of Personal Data to third parties for such third parties’ direct marketing purposes; in\n order to submit such a request, please contact us at info@realmhome.com \n \n

    \n

    \n \n \n Nevada Resident Rights\n \n \n

    \n

    \n \n If you are a resident of Nevada, you have the right to opt-out of the sale of certain Personal Data to third\n parties who intend to license or sell that Personal Data. You can exercise this right by contacting us at\n \n \n info@realmhome.com \n \n \n with the subject line “Nevada Do Not Sell Request” and providing us with your name and the email address\n associated with your account. Please note that we do not currently sell your Personal Data as sales are\n defined in Nevada Revised Statutes Chapter 603A. \n \n

    \n

    \n \n

    \n

    Changes to this Privacy Policy

    \n

    \n \n We’re constantly trying to improve our Services, so we may need to change this Privacy Policy from time to\n time, but we will alert you to any such changes by placing a notice on the Realm website, by sending you an\n email and/or by some other means. Please note that if you’ve opted not to receive legal notice emails from us\n (or you haven’t provided us with your email address), those legal notices will still govern your use of the\n Services, and you are still responsible for reading and understanding them. If you use the Services after any\n changes to the Privacy Policy have been posted, that means you agree to all of the changes. Use of information\n we collect is subject to the Privacy Policy in effect at the time such information is collected.\n \n

    \n

    \n \n

    \n

    Contact Information:

    \n

    \n \n If you have any questions or comments about this Privacy Policy, the ways in which we collect and use your\n Personal Data or your choices and rights regarding such collection and use, please do not hesitate to contact\n us at:\n \n

    \n

     

    \n \n
    \n
    \n)\n\ninterface PrivacyProps {\n webview: boolean\n}\n\nconst Privacy: FC = ({ webview }) => {\n useEffect(() => {\n trackPage('Privacy')\n }, [])\n\n return (\n
    \n {!webview &&
    }\n \n {!webview &&
    }\n
    \n )\n}\n\nexport default Privacy\n","// extracted by mini-css-extract-plugin\nexport default {\"input\":\"M6L3WIToMCzmkYPwWIAB\"};","import React, { forwardRef, ForwardRefRenderFunction } from 'react'\nimport cx from 'classnames'\n\nimport OldInput, { InputProps } from 'components/Input'\n\nimport styles from './styles.module.scss'\n\n/* This was the input created for the new CamV2 onboarding flow.\n As anticipated, and since it has now shown up in a separate location\n I'm going to assume this is a slow migration to this as the new design.\n Therefore it has been advanced to '/components', and I'm giving it a\n memorable name, with the idea that eventually it will completely replace\n our current Input.\n*/\nexport type { InputProps }\n\nconst Input: ForwardRefRenderFunction = ({ className, ...props }, ref) => (\n \n)\n\nexport default forwardRef(Input)\n","// extracted by mini-css-extract-plugin\nexport default {\"search\":\"lR3l3o4xfs5sUQa2QB01\",\"input\":\"_GwzK0NJmVyEXUp7ehXk\"};","import React, { FC } from 'react'\n\nimport SearchIcon from 'svgs/search'\n\nimport Input, { InputProps } from 'components/NikhilInput'\n\nimport styles from './styles.module.scss'\n\nconst Search: FC = ({ ...props }) => (\n
    \n \n \n
    \n)\n\nexport default Search\n","// extracted by mini-css-extract-plugin\nexport default {\"projectList\":\"AJ00jf3voeP9JeumSwKB\",\"projects\":\"Of6m5Uus5v0yhAhrx0V7\",\"project\":\"S5ZvlUygkpKc4mQ3wOZe\",\"checkbox\":\"mRrX6wx9rHh_8gaNW1CP\",\"info\":\"W6Wih7_hNNqIB9mANp4M\",\"name\":\"Ynj_pvrwhp0VF93W5jdq\",\"cost\":\"DjE36SkMdtlPU8bWMg4b\",\"icon\":\"GhMRALcFYqXBDJ8ABKfc\",\"img\":\"QczDfm4F1QhZNwJ8caI2\",\"close\":\"VTye7CV5fY3dWQpBlRAs\",\"selected\":\"NSeDxKr65dRJVWPPo7XR\",\"small\":\"KP9YpTyYrMZfH1zy7BgU\"};","import React, { FC, useCallback } from 'react'\nimport cx from 'classnames'\n\nimport { formatCurrency } from 'utils/formatting'\nimport { ProjectTemplate } from 'recoil/projectTemplates'\n\nimport FallbackIcon from 'svgs/property-plan/fallback'\nimport CloseIcon from 'svgs/close'\n\nimport ExternalSvg from 'components/ExternalSvg'\nimport Checkbox from 'components/Checkbox'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n project: ProjectTemplate\n selected?: boolean\n small?: boolean\n\n onChange?: (projectId: number, selected: boolean) => void\n}\n\nconst Project: FC = ({ project, selected, small, onChange }) => {\n const handleChange = useCallback(() => {\n if (onChange) onChange(project.id, !selected)\n }, [project, selected, onChange])\n\n return (\n \n \n
    \n {project.name}\n \n {formatCurrency(project.cost_estimate_low, true)}\n {' - '}\n {formatCurrency(project.cost_estimate_high, true)}\n \n
    \n
    \n \n \n \n \n
    \n \n )\n}\n\nexport default Project\n","import React, { FC, useState, useCallback, useMemo } from 'react'\n\nimport { ProjectTemplate } from 'recoil/projectTemplates'\n\nimport Search from './Search'\n\nimport Project from './Project'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n projects: Array\n selectedProjects: Array\n onChange: (projects: Array) => void\n}\n\nconst ProjectList: FC = ({ projects: allProjects, selectedProjects, onChange }) => {\n const [search, setSearch] = useState('')\n\n const handleChange = useCallback(\n (projectId, selected) => {\n const newProjects = selected\n ? selectedProjects.concat(projectId)\n : selectedProjects.filter((selProjId) => selProjId != projectId)\n onChange(newProjects)\n },\n [selectedProjects, onChange]\n )\n\n const projects = useMemo(() => {\n const matchFn = (project) => project.name.toLowerCase().indexOf(search.toLowerCase()) > -1\n\n return allProjects\n .filter((project) => matchFn(project))\n .sort((a, b) => {\n if (a.position == null) return 1\n if (b.position == null) return -1\n return a.position - b.position\n })\n }, [allProjects, search])\n return (\n
    \n
    \n \n
    \n
      \n {projects.map((project) => {\n const selected = selectedProjects.indexOf(project.id) > -1\n return (\n
    • \n \n
    • \n )\n })}\n
    \n
    \n )\n}\n\nexport default ProjectList\n","import Project from '../ProjectList/Project'\n/* for now, reuse the ProjectList Project */\nexport default Project\n","// extracted by mini-css-extract-plugin\nexport default {\"selectedProjectList\":\"gLLl8OhO6WXpq5M80f7p\",\"empty\":\"xoDF7OZkmQ93aU_xcnwL\",\"projects\":\"KlUC2R7MDTNt9eTuu1kh\"};","import React, { FC } from 'react'\n\nimport { ProjectTemplate } from 'recoil/projectTemplates'\n\nimport Project from './Project'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n selectedProjects: Array\n}\n\nconst SelectedProjectList: FC = ({ selectedProjects }) => (\n
    \n {selectedProjects.length == 0 ? (\n

    {'Add renovations to your plan to see totals'}

    \n ) : (\n
      \n {selectedProjects.map((project) => (\n
    • \n \n
    • \n ))}\n
    \n )}\n
    \n)\n\nexport default SelectedProjectList\n","// extracted by mini-css-extract-plugin\nexport default {\"ctaSection\":\"uNJi_NFEQQutYz51ng_L\",\"container\":\"YhRqjckJp7q7ZJH2qius\",\"content\":\"MUw5fBkbWv0JwGOYQWJG\",\"download\":\"rdSZA3GdexF5cOYo4Kpp\",\"preview\":\"JS85BWAmM8ZC6NccBNZo\",\"qrGroup\":\"iMNgA5N_H7X7d9I4jvbd\"};","import React, { FC, PropsWithChildren, useCallback } from 'react'\nimport cx from 'classnames'\n\nimport { track } from 'utils/analytics'\n\nimport ImgAppPreview from 'images/onboarding/iPhone11pro-projects@1x.png'\n\nimport Button from 'components/NikhilButton'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n redirectUrl: string\n redirectQR: () => React.ReactNode\n}\n\nconst CtaSection: FC> = ({ className, redirectUrl, redirectQR, children }) => {\n const handleDownloadClick = useCallback(async () => {\n // Simply redirect if our variant is 'Download'.\n await track('download app click')\n window.location.href = redirectUrl\n }, [redirectUrl])\n\n return (\n
    \n
    \n
    {children}
    \n
    \n {redirectQR()}\n {'Scan to download'}\n
    \n
    \n \"App\n
    \n \n
    \n
    \n )\n}\n\nexport default CtaSection\n","// extracted by mini-css-extract-plugin\nexport default {\"calculations\":\"f2NGhUFEGAKnkxtEuskq\",\"total\":\"uTePGQ_C1dilGPWe9w6O\",\"values\":\"GQgYtl1Je32bRSLCHqyn\"};","import React, { FC, useMemo } from 'react'\nimport cx from 'classnames'\n\nimport { formatCurrency } from 'utils/formatting'\nimport { ProjectTemplate } from 'recoil/projectTemplates'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n selectedProjects: Array\n}\n\nconst Calculations: FC = ({ className, selectedProjects }) => {\n const totalMin = useMemo(() => selectedProjects.reduce((memo, project) => memo + project.cost_estimate_low, 0), [\n selectedProjects,\n ])\n const totalMax = useMemo(() => selectedProjects.reduce((memo, project) => memo + project.cost_estimate_high, 0), [\n selectedProjects,\n ])\n return (\n
    \n
    \n {'Total'}\n \n {!totalMin && !totalMax ? '$0' : `${formatCurrency(totalMin, true)} - ${formatCurrency(totalMax, true)}`}\n \n
    \n
    \n )\n}\n\nexport default Calculations\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst Svg: FC = ({ className }) => {\n return (\n \n \n \n )\n}\n\nexport default Svg\n","// extracted by mini-css-extract-plugin\nexport default {\"projectPricing\":\"uT52Ac9y6UpNehHCMye0\",\"primary\":\"MdHlacrHW9SSKgyP91dM\",\"logo\":\"UKdTvTMPJPbHL88MSBsw\",\"desktop\":\"dB1IRTC3ffqJSatP7Qz9\",\"content\":\"Y56bM3LuiO_w4h18QFzc\",\"calculations\":\"hZXoDsVVVCmCyscGacNh\",\"selectedPlan\":\"JsSSis71Kg878XsQF5Ee\",\"cta\":\"ZYhopw2DTTIgLjcfZhzN\",\"total\":\"DDXGsfRXOyW8ZQf3dMBS\",\"qrCode\":\"pa7Jx7x7uS1xEhEQlpog\",\"mobile\":\"Vk1mEJedKKsbtccplmks\"};","import React, { FC, useState, useCallback, useEffect } from 'react'\nimport cx from 'classnames'\n\nimport { trackPage, UTM_PARAMS_SESSION_KEY } from 'utils/analytics'\nimport { titleCase } from 'utils/formatting'\nimport { ProjectTemplate } from 'recoil/projectTemplates'\n\nimport RealmLogo, {\n RealmLogoSmall,\n RealmLogoPride,\n RealmLogoSmallPride,\n} from 'components/MarketingSite/Header/RealmLogo'\n\nimport ProjectList from './ProjectList'\nimport SelectedProjectList from './SelectedProjectList'\nimport CtaSection from './CtaSection'\nimport Calculations from './Calculations'\nimport QRCode from './QRCode'\n\nimport styles from './styles.module.scss'\n\ninterface UtmParams {\n utm_medium?: string\n utm_source?: string\n utm_campaign?: string\n utm_content?: string\n}\n\ninterface Props {\n property: { address: string; city: string; state: string; zip: string }\n attom_id: string\n project_templates: Array\n}\n\nconst ProjectPricing: FC = ({ property, project_templates: projectTemplates }) => {\n const [selectedProjects, setSelectedProjects] = useState>([])\n const [utmParams, setUtmParams] = useState(null)\n\n useEffect(() => {\n const sUtmParams = sessionStorage?.getItem(UTM_PARAMS_SESSION_KEY)\n if (sUtmParams) {\n // We only need medium, if it exists.\n const utmParams = JSON.parse(sUtmParams)\n if (utmParams) {\n setUtmParams(utmParams)\n }\n }\n }, [])\n\n // Track the page\n useEffect(() => {\n trackPage('project_pricing')\n }, [])\n\n const handleSelectedProjectsChange = useCallback(\n (selectedIds: Array) => {\n setSelectedProjects(\n selectedIds.reduce((memo, id) => {\n const selProject = projectTemplates.find((project) => project.id == id)\n if (!selProject) return memo\n return memo.concat([selProject])\n }, [] as Array)\n )\n },\n [projectTemplates]\n )\n\n const renderQRCode = useCallback(() => , [])\n let redirectUrl =\n 'https://app.adjust.com/uqpj0b8?redirect_macos=https://apps.apple.com/us/app/realm-home/id1589251076&redirect_windows=https://apps.apple.com/us/app/realm-home/id1589251076'\n if (utmParams) {\n if (utmParams.utm_source) redirectUrl += `&adgroup=${encodeURIComponent(utmParams.utm_source)}`\n if (utmParams.utm_campaign) redirectUrl += `&campaign=${encodeURIComponent(utmParams.utm_campaign)}`\n if (utmParams.utm_content) redirectUrl += `&creative=${encodeURIComponent(utmParams.utm_content)}`\n }\n return (\n
    \n
    \n
    \n {process.env.PRIDE_MODE == 'true' ? (\n <>\n \n \n \n ) : (\n <>\n \n \n \n )}\n
    \n
    \n

    {'What renovations are you interested in?'}

    \n

    {`Personalized pricing estimates for ${titleCase(property.address)}`}

    \n project.id)}\n onChange={handleSelectedProjectsChange}\n />\n
    \n
    \n
    \n
    \n

    {'Your renovation plan'}

    \n \n
    \n \n {'Customize your renovations for more precise pricing with the Realm app.'}\n \n \n
    \n
    \n )\n}\n\nexport default ProjectPricing\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"Xcn5KW3YMVRzCxlQXoEF\",\"container\":\"WJQhWuEWSlPVO1ej0hRB\",\"breadcrumb\":\"PUVsXs310_PNGCR6dZ4U\",\"separator\":\"qNzBrfvaiRJA4fYh7ths\",\"findPropertyCta\":\"FHwFmfimYKHIyx87sHw4\",\"transparent\":\"wxIdbnRz15f7JtbBmVqV\",\"popularProjects\":\"S8TbWH4QLpaAZq_4pyeE\",\"sectionDescription\":\"nUJyFfbQaJtRbSKYHVF2\"};","import StyledRichText from 'components/MarketingAndPropertyPages/StyledRichText'\nimport Footer from 'components/MarketingSite/Footer'\nimport Header from 'components/MarketingSite/Header'\nimport AddressAutocomplete from 'components/MarketingSite/Header/AddressAutocomplete'\nimport { RichTextBlock } from 'prismic-reactjs'\nimport React, { FC } from 'react'\nimport Section from 'pages/_serverRendered/Public/shared/Section'\nimport Statistics from 'pages/_serverRendered/Public/shared/Statistics'\nimport FindPropertyCTA from 'pages/_serverRendered/PublicNeighborhood/FindPropertyCTA'\nimport GetRealmScoreCTA from 'pages/_serverRendered/PublicNeighborhood/GetRealmScoreCTA'\nimport Projects from 'pages/_serverRendered/Public/shared/Projects'\nimport IntroCopy from 'pages/_serverRendered/Public/shared/IntroCopy'\nimport styles from './styles.module.scss'\nimport PopularCities from 'pages/_serverRendered/Public/shared/PopularCities'\nimport { AggregateStats, PopularCity, TopProject } from 'recoil/publicNeighborhood'\nimport HomeSearchListings, { HomeSearchResultItem } from 'pages/_serverRendered/HomeSearch/HomeSearchListings'\nimport InternalLinks, { InternalLink } from 'components/InternalLinks'\nimport PageLoad from 'non-rendering/PageLoad'\n\ninterface PublicStateProps {\n state_code: string\n state_name: string\n top_projects: TopProject[]\n cities: PopularCity[]\n state_description: RichTextBlock[]\n stats: AggregateStats\n listings: HomeSearchResultItem[]\n internal_links?: InternalLink[]\n}\n\nconst State: FC = ({\n state_code,\n state_name,\n stats,\n top_projects,\n state_description,\n cities,\n listings,\n internal_links,\n}) => {\n return (\n
    \n \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n

    \n {state_name}\n {' Real Estate & Home Prices'}\n

    \n \n
    \n
    \n
    \n {'Realm'}\n {'→'}\n {state_name}\n
    \n
    \n
    \n \n
    \n
    \n

    {`Popular Projects in ${state_name}`}

    \n

    \n {\n 'Our pricing estimates use local labor & material costs. With your free Realm account, you can customize pricing based on square footage and quality of materials.'\n }\n

    \n \n
    \n \n {state_description != null && (\n
    \n

    {state_name}

    \n \n
    \n )}\n
    \n \n
    \n {internal_links && internal_links.length > 0 && (\n
    \n

    {'Explore more on Realm'}

    \n \n
    \n )}\n
    \n \n
    \n
    \n
    \n )\n}\n\nexport default State\n","// extracted by mini-css-extract-plugin\nexport default {\"introCopy\":\"b2iJF8CisVA6N9gDfomD\",\"headline\":\"fxn5M2_M5e_UiE_0WAPf\"};","import React, { FC } from 'react'\n\nimport styles from './styles.module.scss'\n\nconst IntroCopy: FC = () => (\n
    \n

    {'Realm makes homeownership easy'}

    \n

    \n {'We get it. Homeownership can be overwhelming, stressful, and confusing. Whether you’re searching for a new home, ' +\n 'staying put, or somewhere in between, Realm is here to help. We use reliable, unbiased data to show you not only' +\n ' what a property is worth today, but what it could be worth in years to come. Our free tools give you accurate ' +\n 'renovation cost estimates and tell you how much value a project will add. Plus, our insights are customized to ' +\n 'each property, so you get trustworthy information you can actually use. Make smart choices for your home with Realm.'}\n

    \n
    \n)\n\nexport default IntroCopy\n","// extracted by mini-css-extract-plugin\nexport default {\"popularCities\":\"xTIyYZL_x8ZiRhNNU2uZ\"};","import React, { FC } from 'react'\nimport { PopularCity } from 'recoil/publicNeighborhood'\n\nimport styles from './styles.module.scss'\n\nconst PopularCities: FC<{ title: string; cities: PopularCity[]; stateCode: string }> = ({\n cities,\n title,\n stateCode,\n}) => (\n <>\n

    {title}

    \n \n \n)\n\nexport default PopularCities\n","// extracted by mini-css-extract-plugin\nexport default {\"projects\":\"brvrIu0S20H8JtVuIcjf\",\"project\":\"dfGODMrVJ6wCne_uRZx4\",\"image\":\"sdRDybC6M8xkCb3DNrcR\",\"details\":\"wwNN4IlAJEOnqBlpVaIT\",\"description\":\"QJMtBHAYIjF_fiqTCUF7\",\"button\":\"PysC2SznwuqY7CIoD0fq\"};","import React, { FC } from 'react'\nimport styles from './styles.module.scss'\nimport ImgPlant from 'images/projectPlan/plant.png'\nimport { TopProject } from 'recoil/publicNeighborhood'\n\ninterface ProjectsProps {\n projects: TopProject[]\n}\n\nconst Projects: FC = ({ projects }) => (\n
    \n {projects.map(({ project_template: { description, kind, name }, icon_url }) => (\n
    \n
    \n {description}\n
    \n
    \n

    {name}

    \n
    \n \n {'Sign Up for cost'}\n \n
    \n ))}\n
    \n)\n\nexport default Projects\n","// extracted by mini-css-extract-plugin\nexport default {\"section\":\"ME8v1UEw1KGrRVaDhAxW\",\"anchor\":\"EnFqwJadzLKg5MEOzCby\"};","import classnames from 'classnames'\nimport React, { FC } from 'react'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n children: React.ReactNode\n anchorId?: string\n className?: string\n}\n\nconst Section: FC = ({ children, anchorId, className }) => (\n
    \n {anchorId ?
    : null}\n {children}\n
    \n)\n\nexport default Section\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"QN8SwZz1YbbPLWFADb8J\",\"title\":\"kWUgnw3386a1TWsw3rCn\",\"centerStatsContainer\":\"cGG9N23EZFUSawITaMDA\",\"centerStats\":\"ZnvRlGyNJDFJrzNAmjBd\",\"footerStats\":\"UQ4lRdKEqBiMLeL4UUro\"};","import * as React from 'react'\n\nimport AverageHomeValue from 'pages/_serverRendered/PublicNeighborhood/Statistics/AverageHomeValue'\nimport AverageHomeValuePotentialIncrease from 'pages/_serverRendered/PublicNeighborhood/Statistics/AverageHomeValuePotentialIncrease'\nimport AverageBuildableSquareFeet from 'pages/_serverRendered/PublicNeighborhood/Statistics/AverageBuildableSquareFeet'\nimport AverageSalePrice from 'pages/_serverRendered/PublicNeighborhood/Statistics/AverageSalePrice'\nimport ChartContainer from 'pages/_serverRendered/PublicNeighborhood/ChartContainer'\n\nimport styles from './styles.module.scss'\nimport { AggregateStats } from 'recoil/publicNeighborhood'\n\ninterface StatisticsProps {\n name: string\n stats: AggregateStats\n}\n\nconst Statistics: React.FC = ({ name, stats }) => {\n return (\n
    \n

    {`${name} Homes By The Numbers`}

    \n \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n )\n}\nexport default Statistics\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"ptKuyNYUyDmgEAJB9wl1\"};","import classNames from 'classnames'\nimport React, { FC, PropsWithChildren } from 'react'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n}\n\nconst ChartContainer: FC> = ({ children, className }) => (\n
    {children}
    \n)\n\nexport default ChartContainer\n","// extracted by mini-css-extract-plugin\nexport default {\"findPropertyCta\":\"Kl0rEHCSgA55rygoQAl3\",\"title\":\"laGMIhmTsftxkNlhZCYb\",\"autocomplete\":\"qik6l9LBQ8q8s_ccRrYU\",\"note\":\"y7uZ5gmDvBy7VybNpE6R\",\"addressSearch\":\"vtjWT6ZR759YzEFlJ9gs\",\"input\":\"OXBM3LqbCX2dgSeeARXU\",\"button\":\"CsHtztkwOBp6FLwRWa80\"};","import cx from 'classnames'\nimport React, { FC, useCallback } from 'react'\n\nimport AddressAutocomplete from 'components/MarketingSite/Header/AddressAutocomplete'\n\nimport Section from '../Section'\n\nimport styles from './styles.module.scss'\n\nconst FindPropertyCTA: FC<{ className?: string }> = ({ className }) => {\n const renderSubmitButton = useCallback(\n (onClick: (e: any) => void, disabled: boolean) => (\n \n ),\n []\n )\n return (\n
    \n

    {'See How Your Home Compares'}

    \n
    \n \n
    \n

    \n {'We currently cover standalone, single family homes in all 50 states, but not in every county.'}\n

    \n

    {'Check our coverage map for more details on your county'}

    \n
    \n )\n}\n\nexport default FindPropertyCTA\n","// extracted by mini-css-extract-plugin\nexport default {\"getRealmScoreCTA\":\"BDDr3VdNaxZi06ApMg4y\",\"details\":\"IocaNm_4jj_6yNGgdVkg\",\"title\":\"pntH91hE6eZzSX3CXSuF\",\"autocomplete\":\"LsUu81Zu4QFzeydDRGM_\",\"note\":\"ydtJbFr5kfTYULiQ3be3\"};","import React, { FC } from 'react'\n\nimport AddressAutocomplete from 'components/MarketingSite/Header/AddressAutocomplete'\n\nimport styles from './styles.module.scss'\n\nconst GetRealmScoreCTA: FC = () => (\n
    \n
    \n

    {'See what your home could be worth'}

    \n

    {'We currently cover most standalone, single-family homes'}

    \n
    \n \n
    \n)\n\nexport default GetRealmScoreCTA\n","// extracted by mini-css-extract-plugin\nexport default {\"section\":\"xm7A1ihqCh12S7N2IsHN\",\"anchor\":\"QOSgiLZQuA_RpecCEJDC\"};","import classnames from 'classnames'\nimport React, { FC } from 'react'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n children: React.ReactNode\n anchorId?: string\n className?: string\n}\n\nconst Section: FC = ({ children, anchorId, className }) => (\n
    \n {anchorId ?
    : null}\n {children}\n
    \n)\n\nexport default Section\n","// extracted by mini-css-extract-plugin\nexport default {\"averageBuildableSquareFeet\":\"tp5LgOLD7jVPKonP0S2K\",\"stat\":\"SBQNPr59Qrqs5LGqCLVj\",\"tooltip\":\"ShiKymNrFSi3UYtawL6I\"};","import React from 'react'\n\nimport { formatNumber } from 'utils/formatting'\n\nimport StatPill from '../StatPill'\nimport ChartContainer from '../../ChartContainer'\nimport Tooltip from 'components/PropertyPages/ToolTip'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n value: number\n}\n\nconst AverageBuildableSquareFeet: React.FC = ({ value }) => {\n return (\n \n \n {\n 'The additional square feet each lot has available to develop. We compare the current footprint of the home to the maximum footprint allowed by local zoning rules.'\n }\n \n

    {'Average Buildable Square Feet'}

    \n {`${formatNumber(value)} sq ft`}\n
    \n )\n}\n\nexport default AverageBuildableSquareFeet\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"tRDEL6jekGaG6LHpzDos\",\"tooltip\":\"WXTvxkzq4qHcj3azCah4\"};","import React from 'react'\n\nimport { formatCurrency } from 'utils/formatting'\n\nimport PercentialBarGraph from '../PercentialBarGraph'\nimport Tooltip from 'components/PropertyPages/ToolTip'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n values: [number, number, number]\n}\n\nconst AverageHomeValue: React.FC = ({ values }) => {\n return (\n
    \n \n {\n 'Our assessment of the average current home value. We use several data sources including tax assessments, listing history, building permits, and zoning regulations.'\n }\n \n

    {'Average Home Value'}

    \n \n
    \n )\n}\n\nexport default AverageHomeValue\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"YQAWn4Vmd1SACJJGhiQh\",\"tooltip\":\"qSFFdEjjwHJ11kPA7X3U\"};","import React from 'react'\n\nimport { formatCurrency } from 'utils/formatting'\n\nimport PercentialBarGraph from '../PercentialBarGraph'\nimport Tooltip from 'components/PropertyPages/ToolTip'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n values: [number, number, number]\n}\nconst AverageHomeValuePotentialIncrease: React.FC = ({ values }) => {\n return (\n
    \n \n {\n \"How much each home's value could increase with additional investment. We've analyzed what upgrades and changes are possible on each property in this neighborhood.\"\n }\n \n

    {'Average Untapped Potential Value'}

    \n \n
    \n )\n}\n\nexport default AverageHomeValuePotentialIncrease\n","// extracted by mini-css-extract-plugin\nexport default {\"averageSalePrice\":\"ONpiItYdRuTWSy7CpRwA\",\"tooltip\":\"uUb7QhB3piTXeJCCbuqs\"};","import React from 'react'\n\nimport { formatCurrency } from 'utils/formatting'\n\nimport StatPill from '../StatPill'\nimport ChartContainer from '../../ChartContainer'\nimport Tooltip from 'components/PropertyPages/ToolTip'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n value: number\n}\n\nconst AverageSalePrice: React.FC = ({ value }) => {\n return (\n \n {'How much homes have been sold for over the last year.'}\n

    {'Average Sale Price (Last 12 months)'}

    \n {formatCurrency(value)}\n
    \n )\n}\n\nexport default AverageSalePrice\n","// extracted by mini-css-extract-plugin\nexport default {\"graph\":\"d5UicmKKM05JpHoeSEYH\",\"bar\":\"NkhRE5VgS8B9DcVu1ewg\",\"low\":\"uvGEJXskYsttE8ihBllO\",\"mid\":\"YSCvYmFANbpkYxPhbYaQ\",\"high\":\"DZtgKGMAm0TTLwQe3M9s\",\"value\":\"C1bcwgus4dLac6zVcDNJ\",\"label\":\"C2FjD43NovooMCCvSh7T\",\"mobile\":\"k3favQkueAmL4KMCdcu9\"};","import React from 'react'\nimport classNames from 'classnames'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n lowValue: string\n value: string\n highValue: string\n}\n\nconst PercentileBarGraph: React.FC = ({ className, lowValue, value, highValue }) => {\n return (\n
    \n
    \n
    \n {lowValue}\n {'25th percentile'}\n
    \n
    \n {value}\n \n
    \n
    \n {highValue}\n {'75th percentile'}\n
    \n
    \n
    \n
    \n {lowValue}\n {'25th percentile'}\n
    \n
    \n {highValue}\n {'75th percentile'}\n
    \n
    \n
    \n )\n}\n\nexport default PercentileBarGraph\n","// extracted by mini-css-extract-plugin\nexport default {\"statPill\":\"dU9hiGAaYbX8DtI0X8Kf\"};","import React from 'react'\nimport classNames from 'classnames'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n}\n\nconst StatPill: React.FC> = ({ className, children }) => (\n
    {children}
    \n)\n\nexport default StatPill\n","// extracted by mini-css-extract-plugin\nexport default {\"rateTable\":\"XjzediInZxAgiclt6pSh\",\"rateTableIframe\":\"r2FnzI_n0_0KvvqSqxoX\"};","import React, { FC, useEffect } from 'react'\nimport Header from 'components/MarketingSite/Header'\nimport { trackPage } from 'utils/analytics'\n\nimport styles from './styles.module.scss'\n\nconst RateTable: FC = () => {\n useEffect(() => {\n trackPage('RateTable')\n }, [])\n\n return (\n
    \n
    \n \n
    \n )\n}\n\nexport default RateTable\n","// extracted by mini-css-extract-plugin\nexport default {\"terms\":\"DoG1c66bt9lkgZL1Op2c\"};","// The content of this page is copy/pasted - disabling some linter rules to avoid having\n// to hand-edit everything\n/* eslint-disable react/jsx-no-literals, react/jsx-no-bind, jsx-a11y/anchor-is-valid */\nimport classNames from 'classnames'\nimport React, { FC, useEffect } from 'react'\n\nimport Footer from 'components/MarketingSite/Footer'\nimport Header from 'components/MarketingSite/Header'\nimport { trackPage } from 'utils/analytics'\n\nimport legalStyles from 'components/MarketingSite/shared/legal.module.scss'\nimport styles from './styles.module.scss'\n\nconst Content: FC = () => (\n
    \n
    \n

    \n Realm Terms of Use\n

    \n

    \n Last Updated: 2/9/2021\n

    \n

    \n \n Welcome to Realm, a property potential platform.  Other platforms may tell you what your home is worth\n today.  Realm tells you what your home could be worth.  Our insights help homeowners: increase the\n sale price of their home, pull money out of their home, generate rental income, and enjoy their space more.\n  Please read on to learn the rules and restrictions that govern your use of our website(s), products,\n services and applications (the “Services” or the “Realm Platform”). If you have any\n questions, comments, or concerns regarding these terms or the Services, please contact us at:\n \n

    \n

    \n Email: \n \n \n info@realmhome.com\n \n \n         \n

    \n

    \n Address: 333 Hudson Street, suite 201, New York, New York 10013 \n

    \n

    \n These Terms of Use (the “Terms”) are a binding contract between you and \n REALM LIVING, INC.\n \n  (“Realm,” “we” and “us”). Your use of the Services in any way means\n that you agree to all of these Terms, and these Terms will remain in effect while you use the Services. These\n Terms include the provisions in this document as well as those in the\n \n  \n \n Privacy Policy\n \n .\n  \n

    \n

    \n Please read these Terms carefully. \n \n They cover important information about Services provided to you and any charges, taxes, and fees we bill you.{' '}\n \n \n These Terms include information about future changes to these Terms, automatic renewals, limitations of\n liability, a class action waiver and resolution of disputes by arbitration instead of in court. PLEASE NOTE\n THAT YOUR USE OF AND ACCESS TO OUR SERVICES ARE SUBJECT TO THE FOLLOWING TERMS; IF YOU DO NOT AGREE TO ALL OF\n THE FOLLOWING, YOU MAY NOT USE OR ACCESS THE SERVICES IN ANY MANNER.\n \n

    \n

    \n ARBITRATION NOTICE AND CLASS ACTION WAIVER:\n \n  EXCEPT FOR CERTAIN TYPES OF DISPUTES DESCRIBED IN THE ARBITRATION AGREEMENT SECTION BELOW, YOU AGREE\n THAT DISPUTES BETWEEN YOU AND US WILL BE RESOLVED BY BINDING, INDIVIDUAL ARBITRATION AND YOU WAIVE YOUR RIGHT\n TO PARTICIPATE IN A CLASS ACTION LAWSUIT OR CLASS-WIDE ARBITRATION.\n \n

    \n

    \n Will these Terms ever change?\n

    \n

    \n \n We are constantly trying to improve our Services, so these Terms may need to change along with our Services.\n We reserve the right to change the Terms at any time, but if we do, we will place a notice on our site located\n at https://realmhome.com/, send you an email, and/or notify you by some other means.\n \n

    \n

    \n \n If you don’t agree with the new Terms, you are free to reject them; unfortunately, that means you will\n no longer be able to use the Services. If you use the Services in any way after a change to the Terms is\n effective, that means you agree to all of the changes.\n \n

    \n

    \n \n Except for changes by us as described here, no other amendment or modification of these Terms will be\n effective unless in writing and signed by both you and us.\n \n

    \n

    \n What about my privacy?\n

    \n

    \n \n Realm takes the privacy of its users very seriously. For the current Realm Privacy Policy, please{' '}\n \n click here\n \n \n

    \n

    \n Children’s Online Privacy Protection Act\n

    \n

    \n \n The Children’s Online Privacy Protection Act (“COPPA”) requires that online service\n providers obtain parental consent before they knowingly collect personally identifiable information online\n from children who are under 13 years of age. We do not knowingly collect or solicit personally identifiable\n information from children under 13 years of age; if you are a child under 13 years of age, please do not\n attempt to register for or otherwise use the Services or send us any personal information. If we learn we have\n collected personal information from a child under 13 years of age, we will delete that information as quickly\n as possible. If you believe that a child under 13 years of age may have provided us personal information,\n please contact us at info@realmhome.com.\n \n

    \n

    \n What are the basics of using Realm?\n

    \n

    \n \n The Realm Platform is a web-based communications platform that provides a variety of services and insights\n designed to increase the sale price of your home, pull money out of your home, generate rental income, and\n enjoy your space more.  The Realm Platform also enables connections between (a) homeowners, consumers,\n property managers, individuals and other persons (“Clients”) seeking obtain certain project based\n services including, for example, home improvement and other related services (“Projects”) and (b)\n businesses seeking to perform Projects for Clients (“Vendors”).  Clients and Vendors together\n are hereinafter referred to as “Users.” VENDORS ARE INDEPENDENT BUSINESS OWNERS AND INDEPENDENT\n CONTRACTORS OF CLIENTS AND NOT EMPLOYEES, PARTNERS, REPRESENTATIVES, AGENTS, JOINT VENTURERS, INDEPENDENT\n CONTRACTORS OR FRANCHISEES OF REALM. REALM DOES NOT PERFORM TASKS AND DOES NOT EMPLOY INDIVIDUALS TO PERFORM\n PROJECTS. BY CONNECTING PEOPLE AND BUSINESSES SEEKING SERVICES WITH VENDORS, REALM OPERATES AS AN ONLINE\n MARKETPLACE THAT CONNECTS CLIENTS WITH VENDORS WHO WISH TO PERFORM A VARIETY OF PROJECTS.\n \n

    \n

    \n \n USERS HEREBY ACKNOWLEDGE THAT REALM DOES NOT SUPERVISE, SCOPE, DIRECT, CONTROL OR MONITOR A VENDOR’S\n WORK AND EXPRESSLY DISCLAIMS (TO THE EXTENT PERMITTED BY LAW) ANY RESPONSIBILITY AND LIABILITY FOR THE WORK\n PERFORMED AND THE PROJECT IN ANY MANNER, INCLUDING BUT NOT LIMITED TO A WARRANTY OR CONDITION OF GOOD AND\n WORKMANLIKE SERVICES, WARRANTY OR CONDITION OF QUALITY OR FITNESS FOR A PARTICULAR PURPOSE, OR COMPLIANCE WITH\n ANY LAW, STATUTE, ORDINANCE, REGULATION, OR CODE.\n \n

    \n

    \n \n Any reference on the Realm Platform to a Vendor being licensed or credentialed in some manner indicates only\n that the Vendor has completed a relevant account process or met certain criteria and does not represent\n anything else. Any such description is not an endorsement, certification or guarantee by Vendor of such\n Vendor’s skills or qualifications or whether they are licensed, insured, trustworthy, safe or suitable.\n Instead, any such description is intended to be useful information for Clients to evaluate when they make\n their own decisions about the identity and suitability of Vendor whom they contact or interact with via the\n Realm Platform.\n \n

    \n

    \n \n The Realm Platform enables connections between Users for the fulfillment of Project. Realm is not responsible\n for the performance or communications of Users, nor does it have control over the quality, timing, legality,\n failure to provide, or any other aspect whatsoever of Projects, Vendors, or Clients, nor of the integrity,\n responsibility, competence, qualifications, or any of the actions or omissions whatsoever of any Users, or of\n any ratings or reviews provided by Users with respect to each other. Realm makes no warranties or\n representations about the suitability, reliability, timeliness, or accuracy of the Project requested or\n services provided by, or the communications of or between, Users identified through the Realm Platform,\n whether in public or private, via on- or off-line interactions, or otherwise howsoever.\n \n

    \n

    \n \n You may be required to sign up for an account, select a password and user name (“Realm User ID”),\n and provide us with certain information or data, such as your contact information. You promise to provide us\n with accurate, complete, and updated registration information about yourself. You may not select as your Realm\n User ID a name that you do not have the right to use, or another person’s name with the intent to\n impersonate that person. You may not transfer your account to anyone else without our prior written\n permission.\n \n

    \n

    \n \n Additionally, you may be able to access certain parts or features of the Services by using your account\n credentials from other services (each, a “Third Party Account”), such as those offered by Google\n and Facebook. By using the Services through a Third Party Account, you permit us to access certain information\n from such account for use by the Services. You are ultimately in control of how much information is accessible\n to us and may exercise such control by adjusting your privacy settings on your Third Party Account.\n \n

    \n

    \n \n You represent and warrant that you are an individual of legal age to form a binding contract (or if not,\n you’ve received your parent’s or guardian’s permission to use the Services and have gotten\n your parent or guardian to agree to these Terms on your behalf). If you’re agreeing to these Terms on\n behalf of an organization or entity, you represent and warrant that you are authorized to agree to these Terms\n on that organization’s or entity’s behalf and bind them to these Terms (in which case, the\n references to “you” and “your” in these Terms, except for in this sentence, refer to\n that organization or entity).\n \n

    \n

    \n \n You will only use the Services for your own internal, personal, non-commercial use, and not on behalf of or\n for the benefit of any third party, and only in a manner that complies with all laws that apply to you. If\n your use of the Services is prohibited by applicable laws, then you aren’t authorized to use the\n Services. We can’t and won’t be responsible for your using the Services in a way that breaks the\n law.\n \n

    \n

    \n \n You will not share your Realm User ID, account or password with anyone, and you must protect the security of\n your Realm User ID, account, password and any other access tools or credentials. You’re responsible for\n any activity associated with your Realm User ID and account.\n \n

    \n

    \n What about messaging?\n

    \n

    \n \n As part of the Services, you may receive communications through the Services, including messages that Realm\n sends you (for example, via email or SMS).{' '}\n \n \n By signing up for the Services and providing us with your wireless number, you confirm that you want Realm to\n send you information regarding your account or transactions with us, which may include Realm using automated\n dialing technology to text you at the wireless number you provided, and you agree to receive communications\n from Realm, and you represent and warrant that each person you register for the Services or for whom you\n provide a wireless phone number has consented to receive communications from Realm.\n \n \n  You agree to indemnify and hold Realm harmless from and against any and all claims, liabilities, damages\n (actual and consequential), losses and expenses (including attorneys’ fees) arising from or in any way\n related to your breach of the foregoing.\n \n

    \n

    \n Are there restrictions in how I can use the Services?\n

    \n

    \n \n You represent, warrant, and agree that you will not contribute any Content or User Submission (each of those\n terms is defined below) or otherwise use the Services or interact with the Services in a manner that:\n \n

    \n
      \n
    1. \n \n infringes or violates the intellectual property rights or any other rights of anyone else (including Realm);\n \n
    2. \n
    3. \n \n violates any law or regulation, including, without limitation, any applicable export control laws, privacy\n laws or any other purpose not reasonably intended by Realm;\n \n
    4. \n
    5. \n \n is dangerous, harmful, fraudulent, deceptive, threatening, harassing, defamatory, obscene, or otherwise\n objectionable;\n \n
    6. \n
    7. \n \n jeopardizes the security of your Realm User ID, account or anyone else’s (such as allowing someone\n else to log in to the Services as you);\n \n
    8. \n
    9. \n \n attempts, in any manner, to obtain the password, account, or other security information from any other user;\n \n
    10. \n
    11. \n \n violates the security of any computer network, or cracks any passwords or security encryption codes;\n \n
    12. \n
    13. \n \n runs Maillist, Listserv, any form of auto-responder or “spam” on the Services, or any processes\n that run or are activated while you are not logged into the Services, or that otherwise interfere with the\n proper working of the Services (including by placing an unreasonable load on the Services’\n infrastructure);\n \n
    14. \n
    15. \n \n “crawls,” “scrapes,” or “spiders” any page, data, or portion of or\n relating to the Services or Content (through use of manual or automated means);\n \n
    16. \n
    17. \n copies or stores any significant portion of the Content; or\n
    18. \n
    19. \n \n decompiles, reverse engineers, or otherwise attempts to obtain the source code or underlying ideas or\n information of or relating to the Services.\n \n
    20. \n
    \n

    \n \n

    \n

    \n \n A violation of any of the foregoing is grounds for termination of your right to use or access the Services.\n \n

    \n

    \n What are my rights in the Services?\n

    \n

    \n \n The materials displayed or performed or available on or through the Services, including, but not limited to,\n text, graphics, data, articles, photos, images, illustrations and so forth (all of the foregoing, the\n “Content”) are protected by copyright and/or other intellectual property laws. You promise to\n abide by all copyright notices, trademark rules, information, and restrictions contained in any Content you\n access through the Services, and you won’t use, copy, reproduce, modify, translate, publish, broadcast,\n transmit, distribute, perform, upload, display, license, sell, commercialize or otherwise exploit for any\n purpose any Content not owned by you, (i) without the prior consent of the owner of that Content or (ii) in a\n way that violates someone else’s (including Realm's) rights.\n \n

    \n

    \n \n Subject to these Terms, we grant each user of the Services a non-exclusive, non-sublicensable and\n non-transferable license to use (i.e., to download and display locally) Content solely for purposes of using\n the Services. Use, reproduction, modification, distribution or storage of any Content for any purpose other\n than using the Services is expressly prohibited without prior written permission from us. You understand that\n Realm owns the Services. You won’t modify, publish, transmit, participate in the transfer or sale of,\n reproduce (except as expressly provided in this Section), create derivative works based on, or otherwise\n exploit any of the Services. The Services may allow you to copy or download certain Content, but please\n remember that even where these functionalities exist, all the restrictions in this section still apply.\n \n

    \n

    \n What about anything I contribute to the Services?\n

    \n

    \n User Submissions\n

    \n

    \n \n Anything you post, upload, share, store, or otherwise provide through the Services is your “User\n Submission”. Some User Submissions may be viewable by other users. You are solely responsible for all\n User Submissions you contribute to the Services. You represent that all User Submissions submitted by you are\n accurate, complete, up-to-date, and in compliance with all applicable laws, rules and regulations.\n \n

    \n

    \n \n You agree that you will not post, upload, share, store, or otherwise provide through the Services any User\n Submissions that: (i) infringe any third party's copyrights or other rights (e.g., trademark, privacy\n rights, etc.); (ii) contain sexually explicit content or pornography; (iii) contain hateful, defamatory, or\n discriminatory content or incite hatred against any individual or group; (iv) exploit minors; (v) depict\n unlawful acts or extreme violence; (vi) depict animal cruelty or extreme violence towards animals; (vii)\n promote fraudulent schemes, multi-level marketing (MLM) schemes, get rich quick schemes, online gaming and\n gambling, cash gifting, work from home businesses, or any other dubious money-making ventures; or (viii) that\n violate any law.\n \n

    \n

    \n Licenses\n

    \n

    \n \n In order to display your User Submissions on the Services, and to allow other users to enjoy them (where\n applicable), you grant us certain rights in those User Submissions (see below for more information). Please\n note that all of the following licenses are subject to our{' '}\n \n \n Privacy Policy \n \n \n to the extent they relate to User Submissions that are also your personally-identifiable information.\n \n

    \n

    \n \n By submitting User Submissions through the Services, you hereby do and shall grant Realm a worldwide,\n non-exclusive, perpetual, royalty-free, fully paid, sublicensable and transferable license to use, edit,\n modify, truncate, aggregate, reproduce, distribute, prepare derivative works of, display, perform, and\n otherwise fully exploit the User Submissions in connection with this site, the Services and our (and our\n successors’ and assigns’) businesses, including without limitation for promoting and\n redistributing part or all of this site or the Services (and derivative works thereof) in any media formats\n and through any media channels (including, without limitation, third party websites and feeds), and including\n after your termination of your account or the Services. You also hereby do and shall grant each user of this\n site and/or the Services a non-exclusive, perpetual license to access your User Submissions through this site\n and/or the Services, and to use, edit, modify, reproduce, distribute, prepare derivative works of, display and\n perform such User Submissions, including after your termination of your account or the Services. For clarity,\n the foregoing license grants to us and our users do not affect your other ownership or license rights in your\n User Submissions, including the right to grant additional licenses to your User Submissions, unless otherwise\n agreed in writing. You represent and warrant that you have all rights to grant such licenses to us without\n infringement or violation of any third party rights, including without limitation, any privacy rights,\n publicity rights, copyrights, trademarks, contract rights, or any other intellectual property or proprietary\n rights.\n \n

    \n

    \n \n Finally, you understand and agree that Realm, in performing the required technical steps to provide the\n Services to our users (including you), may need to make changes to your User Submissions to conform and adapt\n those User Submissions to the technical requirements of connection networks, devices, services, or media, and\n the foregoing licenses include the rights to do so.\n \n

    \n

    \n What if I see something on the Services that infringes my copyright?\n

    \n

    \n \n In accordance with the DMCA, we’ve adopted the following policy toward copyright infringement.  We\n reserve the right to (1) block access to or remove material that we believe in good faith to be copyrighted\n material that has been illegally copied and distributed by any of our advertisers, affiliates, content\n providers, members or users and (2) remove and discontinue service to repeat offenders.\n \n

    \n
      \n
    1. \n Procedure for Reporting Copyright Infringements\n \n .  If you believe that material or content residing on or accessible through the Services infringes\n your copyright (or the copyright of someone whom you are authorized to act on behalf of), please send a\n notice of copyright infringement containing the following information to Realm's Designated Agent to\n Receive Notification of Claimed Infringement (our “Designated Agent,” whose contact details are\n listed below):\n \n
    2. \n
    \n
      \n
    1. \n \n A physical or electronic signature of a person authorized to act on behalf of the owner of the copyright\n that has been allegedly infringed;\n \n
    2. \n
    3. \n Identification of works or materials being infringed;\n
    4. \n
    5. \n \n Identification of the material that is claimed to be infringing including information regarding the location\n of the infringing materials that the copyright owner seeks to have removed, with sufficient detail so that\n Company is capable of finding and verifying its existence;\n \n
    6. \n
    7. \n \n Contact information about the notifier including address, telephone number and, if available, email address;\n \n
    8. \n
    9. \n \n A statement that the notifier has a good faith belief that the material identified in (1)(c) is not\n authorized by the copyright owner, its agent, or the law; and\n \n
    10. \n
    11. \n \n A statement made under penalty of perjury that the information provided is accurate and the notifying party\n is authorized to make the complaint on behalf of the copyright owner.\n \n
    12. \n
    \n
      \n
    1. \n \n Once Proper Bona Fide Infringement Notification is Received by the Designated Agent\n \n \n .  Upon receipt of a proper notice of copyright infringement, we reserve the right to:\n \n
    2. \n
    \n
      \n
    1. \n remove or disable access to the infringing material;\n
    2. \n
    3. \n \n notify the content provider who is accused of infringement that we have removed or disabled access to the\n applicable material; and\n \n
    4. \n
    5. \n \n terminate such content provider's access to the Services if he or she is a repeat offender.\n \n
    6. \n
    \n
      \n
    1. \n Procedure to Supply a Counter-Notice to the Designated Agent\n \n .  If the content provider believes that the material that was removed (or to which access was\n disabled) is not infringing, or the content provider believes that it has the right to post and use such\n material from the copyright owner, the copyright owner's agent, or, pursuant to the law, the content\n provider may send us a counter-notice containing the following information to the Designated Agent:\n \n
    2. \n
    \n
      \n
    1. \n A physical or electronic signature of the content provider;\n
    2. \n
    3. \n \n Identification of the material that has been removed or to which access has been disabled and the location\n at which the material appeared before it was removed or disabled;\n \n
    4. \n
    5. \n \n A statement that the content provider has a good faith belief that the material was removed or disabled as a\n result of mistake or misidentification of the material; and\n \n
    6. \n
    7. \n \n Content provider's name, address, telephone number, and, if available, email address, and a statement\n that such person or entity consents to the jurisdiction of the Federal Court for the judicial district in\n which the content provider’s address is located, or, if the content provider's address is located\n outside the United States, for any judicial district in which Company is located, and that such person or\n entity will accept service of process from the person who provided notification of the alleged infringement.\n \n
    8. \n
    \n

    \n \n If a counter-notice is received by the Designated Agent, Company may, in its discretion, send a copy of the\n counter-notice to the original complaining party informing that person that Company may replace the removed\n material or cease disabling it in 10 business days. Unless the copyright owner files an action seeking a court\n order against the content provider accused of committing infringement, the removed material may be replaced or\n access to it restored in 10 to 14 business days or more after receipt of the counter-notice, at Company's\n discretion.  \n \n

    \n

    \n Please contact Realm's Designated Agent at the following address:\n

    \n

    \n Realm Living, Inc.\n

    \n

    \n Attn: DMCA Designated Agent \n

    \n

    \n \n \n info@realmhome.com\n \n \n  \n

    \n

    \n 333 Hudson Street, \n S\n uite 201, New York, New York 10013\n

    \n

    \n Who is responsible for what I see and do on the Services?\n

    \n

    \n \n Any information or Content publicly posted or privately transmitted through the Services is the sole\n responsibility of the person from whom such Content originated, and you access all such information and\n Content at your own risk, and we aren’t liable for any errors or omissions in that information or\n Content or for any damages or loss you might suffer in connection with it. We cannot control and have no duty\n to take any action regarding how you may interpret and use the Content or what actions you may take as a\n result of having been exposed to the Content, and you hereby release us from all liability for you having\n acquired or not acquired Content through the Services. We can’t guarantee the identity of any users with\n whom you interact in using the Services and are not responsible for which users gain access to the Services.\n \n

    \n

    \n \n You are responsible for all Content you contribute, in any manner, to the Services, and you represent and\n warrant you have all rights necessary to do so, in the manner in which you contribute it.\n \n

    \n

    \n \n The Services may contain links or connections to third-party websites or services that are not owned or\n controlled by Realm. When you access third-party websites or use third-party services, you accept that there\n are risks in doing so, and that Realm is not responsible for such risks.\n \n

    \n

    \n \n Realm has no control over, and assumes no responsibility for, the content, accuracy, privacy policies, or\n practices of or opinions expressed in any third-party websites or by any third party that you interact with\n through the Services. In addition, Realm will not and cannot monitor, verify, censor or edit the content of\n any third-party site or service. We encourage you to be aware when you leave the Services and to read the\n terms and conditions and privacy policy of each third-party website or service that you visit or utilize. By\n using the Services, you release and hold us harmless from any and all liability arising from your use of any\n third-party website or service.\n \n

    \n

    \n \n Your interactions with organizations and/or individuals found on or through the Services, including payment\n and delivery of goods or services, and any other terms, conditions, warranties or representations associated\n with such dealings, are solely between you and such organizations and/or individuals. You should make whatever\n investigation you feel necessary or appropriate before proceeding with any online or offline transaction with\n any of these third parties. You agree that Realm shall not be responsible or liable for any loss or damage of\n any sort incurred as the result of any such dealings.\n \n

    \n

    \n \n If there is a dispute between participants on this site or Services, or between users and any third party, you\n agree that Realm is under no obligation to become involved. In the event that you have a dispute with one or\n more other users, you release Realm, its directors, officers, employees, agents, and successors from claims,\n demands, and damages of every kind or nature, known or unknown, suspected or unsuspected, disclosed or\n undisclosed, arising out of or in any way related to such disputes and/or our Services. You shall and hereby\n do waive California Civil Code Section 1542 or any similar law of any jurisdiction, which says in substance:\n “A general release does not extend to claims that the creditor or releasing party does not know or\n suspect to exist in his or her favor at the time of executing the release and that, if known by him or her,\n would have materially affected his or her settlement with the debtor or released party.”\n \n

    \n

    \n Will Realm ever change the Services?\n

    \n

    \n \n We’re always trying to improve our Services, so they may change over time. We may suspend or discontinue\n any part of the Services, or we may introduce new features or impose limits on certain features or restrict\n access to parts or all of the Services. We’ll try to give you notice when we make a material change to\n the Services that would adversely affect you, but this isn’t always practical. We reserve the right to\n remove any Content from the Services at any time, for any reason (including, but not limited to, if someone\n alleges you contributed that Content in violation of these Terms), in our sole discretion, and without notice.\n \n

    \n

    \n Do the Services cost anything?\n

    \n

    \n \n The Services may be free or we may charge a fee for using the Services. If you are using a free version or\n free aspects of the Services, we will notify you before any Services you are then using begin carrying a fee,\n and if you wish to continue using such Services, you must pay all applicable fees for such Services. Note that\n if you elect to receive text messages through the Services, data and message rates may apply. Any and all such\n charges, fees or costs are your sole responsibility. You should consult with your wireless carrier to\n determine what rates, charges, fees or costs may apply to your use of the Services.\n \n

    \n
      \n
    1. \n Paid Services\n \n . Certain of our Services may be subject to payments now or in the future (the “Paid Services”).\n Please note that any payment terms presented to you in the process of using or signing up for a Paid Service\n are deemed part of these Terms and you agree to comply with all such terms in connection with your use of\n the Paid Service. The current Paid Services will be marked as such & include a description of the\n Service.\n \n
    2. \n
    3. \n Deposit\n \n . In connection with any initial assessment or consultation, you may be required to submit a deposit (the\n “Deposit”).  You understand and agree that the Deposit is intended to ensure your interest\n and engagement with our process.  \n \n
    4. \n
    5. \n Billing\n \n . We use a third-party payment processor (the “Payment Processor”) to bill you through a payment\n account linked to your account on the Services (your “Billing Account”) for use of the Paid\n Services. The processing of payments will be subject to the terms, conditions and privacy policies of the\n Payment Processor in addition to these Terms. Currently, we use PayPal, Inc. as our Payment Processor. You\n can access PayPal’s User Agreement at https://www.paypal.com/us/webapps/mpp/ua/useragreement-full and\n their Privacy Policy at https://www.paypal.com/us/webapps/mpp/ua/privacy-full.  We are not responsible\n for any error by, or other acts or omissions of, the Payment Processor. By choosing to use Paid Services,\n you agree to pay us, through the Payment Processor, all charges at the prices then in effect for any use of\n such Paid Services in accordance with the applicable payment terms, and you authorize us, through the\n Payment Processor, to charge your chosen payment provider (your “Payment Method”). You agree to\n make payment using that selected Payment Method. We reserve the right to correct any errors or mistakes that\n the Payment Processor makes even if it has already requested or received payment.\n \n
    6. \n
    7. \n Payment Method\n \n . The terms of your payment will be based on your Payment Method and may be determined by agreements between\n you and the financial institution, credit card issuer or other provider of your chosen Payment Method. If\n we, through the Payment Processor, do not receive payment from you, you agree to pay all amounts due on your\n Billing Account upon demand.\n \n
    8. \n
    9. \n Recurring Billing\n \n . Some of the Paid Services may consist of an initial period, for which there is a one-time charge, followed\n by recurring period charges as agreed to by you. By choosing a recurring payment plan, you acknowledge that\n such Services have an initial and recurring payment feature and you accept responsibility for all recurring\n charges prior to cancellation. WE MAY SUBMIT PERIODIC CHARGES (E.G., MONTHLY) WITHOUT FURTHER AUTHORIZATION\n FROM YOU, UNTIL YOU PROVIDE PRIOR NOTICE (RECEIPT OF WHICH IS CONFIRMED BY US) THAT YOU HAVE TERMINATED THIS\n AUTHORIZATION OR WISH TO CHANGE YOUR PAYMENT METHOD. SUCH NOTICE WILL NOT AFFECT CHARGES SUBMITTED BEFORE WE\n REASONABLY COULD ACT. TO TERMINATE YOUR AUTHORIZATION OR CHANGE YOUR PAYMENT METHOD, GO TO ACCOUNT SETTINGS.\n \n
    10. \n
    11. \n Current Information Required\n \n . YOU MUST PROVIDE CURRENT, COMPLETE AND ACCURATE INFORMATION FOR YOUR BILLING ACCOUNT. YOU MUST PROMPTLY\n UPDATE ALL INFORMATION TO KEEP YOUR BILLING ACCOUNT CURRENT, COMPLETE AND ACCURATE (SUCH AS A CHANGE IN\n BILLING ADDRESS, CREDIT CARD NUMBER, OR CREDIT CARD EXPIRATION DATE), AND YOU MUST PROMPTLY NOTIFY US OR OUR\n PAYMENT PROCESSOR IF YOUR PAYMENT METHOD IS CANCELED (E.G., FOR LOSS OR THEFT) OR IF YOU BECOME AWARE OF A\n POTENTIAL BREACH OF SECURITY, SUCH AS THE UNAUTHORIZED DISCLOSURE OR USE OF YOUR USER NAME OR PASSWORD.\n CHANGES TO SUCH INFORMATION CAN BE MADE AT ACCOUNT SETTINGS. IF YOU FAIL TO PROVIDE ANY OF THE FOREGOING\n INFORMATION, YOU AGREE THAT WE MAY CONTINUE CHARGING YOU FOR ANY USE OF PAID SERVICES UNDER YOUR BILLING\n ACCOUNT UNLESS YOU HAVE TERMINATED YOUR PAID SERVICES AS SET FORTH ABOVE.\n \n
    12. \n
    13. \n Change in Amount Authorized\n \n . If the amount to be charged to your Billing Account varies from the amount you preauthorized (other than\n due to the imposition or change in the amount of state sales taxes), you have the right to receive, and we\n shall provide, notice of the amount to be charged and the date of the charge before the scheduled date of\n the transaction. Any agreement you have with your payment provider will govern your use of your Payment\n Method. You agree that we may accumulate charges incurred and submit them as one or more aggregate charges\n during or at the end of each billing cycle.\n \n
    14. \n
    15. \n Auto-Renewal for Paid Services\n \n . Unless you opt out of auto-renewal, which can be done through your account settings, any Paid Services you\n have signed up for will be automatically extended for successive renewal periods of the same duration as the\n subscription term originally selected, at the then-current non-promotional rate. To change or resign your\n Paid Services at any time, go to account settings.  If you terminate a Paid Service, you may use your\n subscription until the end of your then-current term, and your subscription will not be renewed after your\n then-current term expires. However, you will not be eligible for a prorated refund of any portion of the\n subscription fee paid for the then-current subscription period.{' '}\n \n \n IF YOU DO NOT WANT TO CONTINUE TO BE CHARGED ON A RECURRING MONTHLY BASIS, YOU MUST CANCEL THE APPLICABLE\n PAID SERVICE THROUGH YOUR ACCOUNT SETTINGS OR TERMINATE YOUR{' '}\n \n REALM\n \n  ACCOUNT BEFORE THE END OF THE RECURRING TERM. PAID SERVICES CANNOT BE TERMINATED BEFORE THE END OF THE\n PERIOD FOR WHICH YOU HAVE ALREADY PAID, AND EXCEPT AS EXPRESSLY PROVIDED IN THESE TERMS,{' '}\n \n REALM \n WILL NOT REFUND ANY FEES THAT YOU HAVE ALREADY PAID.\n
    16. \n
    17. \n Reaffirmation of Authorization\n \n . Your non-termination or continued use of a Paid Service reaffirms that we are authorized to charge your\n Payment Method for that Paid Service. We may submit those charges for payment and you will be responsible\n for such charges. This does not waive our right to seek payment directly from you. Your charges may be\n payable in advance, in arrears, per usage, or as otherwise described when you initially selected to use the\n Paid Service.\n \n
    18. \n
    \n

    \n What if I want to stop using the Services? \n

    \n

    \n \n You’re free to do that at any time by contacting us at info@realmhome.com; please refer to our\n \n  \n \n Privacy Policy\n \n ,\n \n  as well as the licenses above, to understand how we treat information you provide to us after you have\n stopped using our Services.\n \n

    \n

    \n \n Realm is also free to terminate (or suspend access to) your use of the Services or your account for any reason\n in our discretion, including your breach of these Terms. Realm has the sole right to decide whether you are in\n violation of any of the restrictions set forth in these Terms.\n \n

    \n

    \n \n Account termination may result in destruction of any Content associated with your account, so keep that in\n mind before you decide to terminate your account.\n \n

    \n

    \n If you have deleted your account by mistake, contact us immediately at \n info@realmhome.com\n \n  – we will try to help, but unfortunately, we can’t promise that we can recover or restore\n anything.\n \n

    \n

    \n \n Provisions that, by their nature, should survive termination of these Terms shall survive termination. By way\n of example, all of the following will survive termination: any obligation you have to pay us or indemnify us,\n any limitations on our liability, any terms regarding ownership or intellectual property rights, and terms\n regarding disputes between us, including without limitation the arbitration agreement.\n \n

    \n

    \n What else do I need to know?\n

    \n

    \n Warranty Disclaimer\n .\n \n  Realm and its licensors, suppliers, partners, parent, subsidiaries or affiliated entities, and each of\n their respective officers, directors, members, employees, consultants, contract employees, representatives and\n agents, and each of their respective successors and assigns (Realm and all such parties together, the\n “Realm Parties”) make no representations or warranties concerning the Services, including without\n limitation regarding any Content contained in or accessed through the Services, and the Realm Parties will not\n be responsible or liable for the accuracy, copyright compliance, legality, or decency of material contained in\n or accessed through the Services or any claims, actions, suits procedures, costs, expenses, damages or\n liabilities arising out of use of, or in any way related to your participation in, the Services. You\n acknowledge that all suggestions, recommendations and other information provided by Realm should not be\n interpreted as guarantee.  We cannot guarantee any result or outcome including increases in property\n value or return on investment.  \n \n \n You hereby waive, promise never to assert, and release Realm and its subsidiaries, successors, assigns,\n partners, agents and employees from, all actions, claims or demands that you now have or may hereafter have\n for any injury, harm, damage, loss, cost or expense (including, without limitation, attorneys’ fees)\n suffered or incurred by you as a direct or indirect result of your use of any such suggestions,\n recommendations or other information.  \n \n \n The Realm Parties make no representations or warranties regarding suggestions or recommendations of services\n or products offered or purchased through or in connection with the Services. THE SERVICES AND CONTENT ARE\n PROVIDED BY REALM (AND ITS LICENSORS AND SUPPLIERS) ON AN “AS-IS” BASIS, WITHOUT WARRANTIES OF ANY\n KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS\n FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR THAT USE OF THE SERVICES WILL BE UNINTERRUPTED OR ERROR-FREE.\n SOME STATES DO NOT ALLOW LIMITATIONS ON HOW LONG AN IMPLIED WARRANTY LASTS, SO THE ABOVE LIMITATIONS MAY NOT\n APPLY TO YOU.\n \n

    \n

    \n Limitation of Liability\n \n . TO THE FULLEST EXTENT ALLOWED BY APPLICABLE LAW, UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY\n (INCLUDING, WITHOUT LIMITATION, TORT, CONTRACT, STRICT LIABILITY, OR OTHERWISE) SHALL ANY OF THE REALM PARTIES\n BE LIABLE TO YOU OR TO ANY OTHER PERSON FOR (A) ANY INDIRECT, SPECIAL, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL\n DAMAGES OF ANY KIND, INCLUDING DAMAGES FOR LOST PROFITS, BUSINESS INTERRUPTION, LOSS OF DATA, LOSS OF\n GOODWILL, WORK STOPPAGE, ACCURACY OF RESULTS, OR COMPUTER FAILURE OR MALFUNCTION, (B) ANY SUBSTITUTE GOODS,\n SERVICES OR TECHNOLOGY, (C) ANY AMOUNT, IN THE AGGREGATE, IN EXCESS OF THE GREATER OF (I) ONE-HUNDRED ($100)\n DOLLARS OR (II) THE AMOUNTS PAID AND/OR PAYABLE BY YOU TO REALM IN CONNECTION WITH THE SERVICES IN THE TWELVE\n (12) MONTH PERIOD PRECEDING THIS APPLICABLE CLAIM OR (D) ANY MATTER BEYOND OUR REASONABLE CONTROL. SOME STATES\n DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL OR CERTAIN OTHER DAMAGES, SO THE ABOVE\n LIMITATION AND EXCLUSIONS MAY NOT APPLY TO YOU.\n \n

    \n

    \n Indemnity\n \n . You agree to indemnify and hold the Realm Parties harmless from and against any and all claims, liabilities,\n damages (actual and consequential), losses and expenses (including attorneys’ fees) arising from or in\n any way related to any claims relating to (a) your use of the Services (including any actions taken by a third\n party using your account), and (b) your violation of these Terms. In the event of such a claim, suit, or\n action (“Claim”), we will attempt to provide notice of the Claim to the contact information we\n have for your account (provided that failure to deliver such notice shall not eliminate or reduce your\n indemnification obligations hereunder).\n \n

    \n

    \n Assignment\n \n . You may not assign, delegate or transfer these Terms or your rights or obligations hereunder, or your\n Services account, in any way (by operation of law or otherwise) without Realm's prior written consent. We\n may transfer, assign, or delegate these Terms and our rights and obligations without consent.\n \n

    \n

    \n Choice of Law\n \n . These Terms are governed by and will be construed under the Federal Arbitration Act, applicable federal law,\n and the laws of the State of California, without regard to the conflicts of laws provisions thereof.\n \n

    \n

    \n Arbitration Agreement\n . \n \n Please read the following ARBITRATION AGREEMENT carefully because it requires you to arbitrate certain\n disputes and claims with Realm and limits the manner in which you can seek relief from Realm. Both you and\n Realm acknowledge and agree that for the purposes of any dispute arising out of or relating to the subject\n matter of these Terms, Realm's officers, directors, employees and independent contractors\n (“Personnel”) are third-party beneficiaries of these Terms, and that upon your acceptance of these\n Terms, Personnel will have the right (and will be deemed to have accepted the right) to enforce these Terms\n against you as the third-party beneficiary hereof.\n \n

    \n

    \n (a) Arbitration Rules; Applicability of Arbitration Agreement\n \n . The parties shall use their best efforts to settle any dispute, claim, question, or disagreement arising out\n of or relating to the subject matter of these Terms directly through good-faith negotiations, which shall be a\n precondition to either party initiating arbitration. If such negotiations do not resolve the dispute, it shall\n be finally settled by binding arbitration in San Francisco County, California. The arbitration will proceed in\n the English language, in accordance with the JAMS Streamlined{' '}\n \n \n Arbitration Rules and Procedures (the “Rules”) then in effect, by one commercial arbitrator with\n substantial experience in resolving intellectual property and commercial contract disputes. The arbitrator\n shall be selected from the appropriate list of JAMS arbitrators in accordance with such Rules. Judgment upon\n the award rendered by such arbitrator may be entered in any court of competent jurisdiction.\n \n

    \n

    \n (b) \n Costs of Arbitration\n \n . The Rules will govern payment of all arbitration fees. Realm will pay all arbitration fees for claims less\n than seventy-five thousand ($75,000) dollars. Realm will not seek its attorneys’ fees and costs in\n arbitration unless the arbitrator determines that your claim is frivolous.\n \n

    \n

    \n (c) \n Small Claims Court; Infringement\n \n . Either you or Realm may assert claims, if they qualify, in small claims court in San Francisco County,\n California or any United States county where you live or work. Furthermore, notwithstanding the foregoing\n obligation to arbitrate disputes, each party shall have the right to pursue injunctive or other equitable\n relief at any time, from any court of competent jurisdiction, to prevent the actual or threatened\n infringement, misappropriation or violation of a party's copyrights, trademarks, trade secrets, patents or\n other intellectual property rights.\n \n

    \n

    \n (d) \n Waiver of Jury Trial\n \n . YOU AND REALM WAIVE ANY CONSTITUTIONAL AND STATUTORY RIGHTS TO GO TO COURT AND HAVE A TRIAL IN FRONT OF A\n JUDGE OR JURY. You and Realm are instead choosing to have claims and disputes resolved by arbitration.\n Arbitration procedures are typically more limited, more efficient, and less costly than rules applicable in\n court and are subject to very limited review by a court. In any litigation between you and Realm over whether\n to vacate or enforce an arbitration award, YOU AND REALM WAIVE ALL RIGHTS TO A JURY TRIAL, and elect instead\n to have the dispute be resolved by a judge.\n \n

    \n

    \n (e) \n Waiver of Class or Consolidated Actions\n \n . ALL CLAIMS AND DISPUTES WITHIN THE SCOPE OF THIS ARBITRATION AGREEMENT MUST BE ARBITRATED OR LITIGATED ON AN\n INDIVIDUAL BASIS AND NOT ON A CLASS BASIS. CLAIMS OF MORE THAN ONE CUSTOMER OR USER CANNOT BE ARBITRATED OR\n LITIGATED JOINTLY OR CONSOLIDATED WITH THOSE OF ANY OTHER CUSTOMER OR USER. If however, this waiver of class\n or consolidated actions is deemed invalid or unenforceable, neither you nor Realm is entitled to arbitration;\n instead all claims and disputes will be resolved in a court as set forth in (g) below.\n \n  \n

    \n

    \n (f) \n Opt-out\n \n . You have the right to opt out of the provisions of this Section by sending written notice of your decision\n to opt out to the following address: 333 Hudson Street, suite 201, New York, New York 10013 postmarked within\n thirty (30) days of first accepting these Terms. You must include (i) your name and residence address, (ii)\n the email address and/or telephone number associated with your account, and (iii) a clear statement that you\n want to opt out of these Terms’ arbitration agreement.\n \n

    \n

    \n (g) \n Exclusive Venue\n \n . If you send the opt-out notice in (f), and/or in any circumstances where the foregoing arbitration agreement\n permits either you or Realm to litigate any dispute arising out of or relating to the subject matter of these\n Terms in court, then the foregoing arbitration agreement will not apply to either party, and both you and\n Realm agree that any judicial proceeding (other than small claims actions) will be brought in the state or\n federal courts{' '}\n \n \n located in, respectively, San Francisco County, California, or the federal district in which that county\n falls.\n \n

    \n

    \n (h) \n Severability\n \n . If the prohibition against class actions and other claims brought on behalf of third parties contained above\n is found to be unenforceable, then all of the preceding language in this Arbitration Agreement section will be\n null and void. This arbitration agreement will survive the termination of your relationship with Realm.\n \n

    \n

    \n Miscellaneous\n \n . You will be responsible for paying, withholding, filing, and reporting all taxes, duties, and other\n governmental assessments associated with your activity in connection with the Services, provided that the\n Realm may, in its sole discretion, do any of the foregoing on your behalf or for itself as it sees fit.{' '}\n \n \n The failure of either you or us to exercise, in any way, any right herein shall not be deemed a waiver of any\n further rights hereunder. If any provision of these Terms are found to be unenforceable or invalid, that\n provision will be limited or eliminated, to the minimum extent necessary, so that these Terms shall otherwise\n remain in full force and effect and enforceable. You and Realm agree that these Terms are the complete and\n exclusive statement of the mutual understanding between you and Realm, and that these Terms supersede and\n cancel all previous written and oral agreements, communications and other understandings relating to the\n subject matter of these Terms. You hereby acknowledge and agree that you are not an employee, agent, partner,\n or joint venture of Realm, and you do not have any authority of any kind to bind Realm in any respect\n whatsoever.\n \n

    \n

    \n \n Except as expressly set forth in the section above regarding the arbitration agreement, you and Realm agree\n there are no third-party beneficiaries intended under these Terms.\n \n

    \n
    \n
    \n)\n\ninterface TermsProps {\n webview: boolean\n}\n\nconst Terms: FC = ({ webview }) => {\n useEffect(() => {\n trackPage('Terms')\n }, [])\n\n return (\n
    \n {!webview &&
    }\n \n {!webview &&
    }\n
    \n )\n}\n\nexport default Terms\n","// extracted by mini-css-extract-plugin\nexport default {\"vendorContract\":\"A9zTbe3pTTNr0kM935Qp\",\"hero\":\"r85QIzwVNWa1VM7nzEQF\",\"buttonBox\":\"E5aB7J3rMuHm18CVrau3\",\"startSigning\":\"Lj3O2reVZgvRCgb0kWye\",\"small\":\"P39lLp1d8RrUma3z6994\"};","// The content of this page is copy/pasted - disabling some linter rules to avoid having\n// to hand-edit everything\n/* eslint-disable react/jsx-no-literals, react/jsx-no-bind, jsx-a11y/anchor-is-valid */\nimport cx from 'classnames'\nimport React, { FC, useEffect, useState } from 'react'\n\nimport Footer from 'components/MarketingSite/Footer'\nimport Header from 'components/MarketingSite/Header'\nimport FancyButton from 'components/FancyButton'\nimport { trackPage } from 'utils/analytics'\n\nimport legalStyles from 'components/MarketingSite/shared/legal.module.scss'\nimport styles from './styles.module.scss'\n\nconst Content: FC = () => (\n
    \n
    \n

    Realm Vendor Referral Fee Agreement

    \n

    \n I. The Parties\n \n . This Vendor Referral Fee Agreement (the “Agreement”) is entered into on\n  ______________(“Effective Date”) between:{' '}\n \n

    \n

    \n \n

    \n

    \n \n Realm Living, Inc. (“Realm” and “Company”) with a mailing address of 524 Broadway,\n Suite 11-117, New York, NY 10012\n \n

    \n

    \n \n

    \n

    \n AND \n

    \n

    \n \n

    \n

    \n \n  ___________________ (“Vendor”) with a mailing address of __________________________.\n \n

    \n

    \n \n

    \n

    \n \n The Company and Vendor are each referred to herein as a “Party” and, collectively, as the\n “Parties.”\n \n

    \n

    \n \n

    \n

    \n II. Acceptance of Realm’s Terms of Use and Privacy Policy. \n \n By entering this Agreement, the  Parties agree to the terms stated herein and the Vendor accepts the\n Company’s{' '}\n \n \n \n Terms of Use\n \n \n  and \n \n \n Privacy Policy\n \n \n . \n

    \n

    \n \n

    \n

    \n III. Term and Termination.\n  \n

    \n
      \n
    1. \n \n This Agreement shall begin on the Effective Date and will remain in effect for a twelve month period.\n \n
    2. \n
    3. \n \n This Agreement will automatically renew on a month-to-month basis unless either Party provides written\n notice of termination which will be effective immediately.{' '}\n \n
    4. \n
    5. \n Payment After Termination. \n \n \n Termination of\n \n \n \n  this Agreement shall not affect the obligation of Vendor to pay the Company any amounts owed or to\n become owed as a result of a Referral provided by the Company on or before the date of such termination.\n \n
    6. \n
    7. \n \n If the Company and Vendor sign a new agreement, after the Effective Date, the new agreement shall supersede\n this Agreement.\n \n
    8. \n
    \n

    \n \n

    \n

    \n IV. Referral Description.\n \n  Upon the execution of this Agreement, the Company may refer potential clients (“Leads”) to\n the Vendor.  The Vendor shall pay the Company a referral fee for all{' '}\n \n current and future \n contracts derived from Leads provided by the Company.\n

    \n

    \n \n

    \n

    \n V. Referral Amount. \n \n The Vendor shall pay the Company a referral fee for Leads that result in a signed client contract\n  (“Project”). See Attachment A for referral fee rate structure.\n \n

    \n

    \n \n

    \n

    \n VI. Payment.\n  The Referral Amount, shall be paid by the Vendor to the Company within 30 days of\n \n  the Project’s contract has been signed. Payment shall be made in accordance with Section VII.{' '}\n \n

    \n

    \n \n

    \n

    \n VII. Payment Method\n \n . The Payment shall be made via electronic payment, following the invoice instructions sent from the Company\n to the Vendor via email.\n \n

    \n

    \n \n

    \n

    \n VIII. Exclusivity:\n \n  This Agreement shall not be construed to be a commitment by either of the Parties to work exclusively\n with one another regarding referrals of potential new business or any other business activities.{' '}\n \n

    \n

    \n \n

    \n

    \n IX. Non-Circumvention.\n \n  The Vendor agrees that all third (3rd) parties introduced to one another represent significant efforts\n and working relationships that are unique to, and part of, the work product and intellectual capital of the\n Company. Therefore, without prior written consent the Vendor agrees to refrain from conducting direct or\n indirect business dealings of any kind with any third (3rd) party so introduced, with the exception of third\n (3rd) parties the Vendor previously had a formal business relationship with prior to the execution of this\n agreement.\n \n

    \n

    \n \n

    \n

    \n X. Confidentiality.\n \n  The Parties acknowledge that the existence and the terms of this Agreement, and any oral or written\n information exchanged between the Parties in connection with the preparation and performance of this\n Agreement, are regarded as confidential information. Each Party shall maintain confidentiality of all such\n confidential information, and without obtaining the written consent of the other Party, it shall not disclose\n any relevant confidential information to any third (3rd) parties, except for the information that: (a) is or\n will be in the public domain (other than through the receiving Party’s unauthorized disclosure); (b) is\n under the obligation to be disclosed pursuant to the applicable laws or regulations, rules of any stock\n exchange, or orders of the court or other government authorities; or (c) is required to be disclosed by any\n Party to its shareholders, investors, legal counsels or financial advisors regarding the transaction\n contemplated hereunder, provided that such shareholders, investors, legal counsels or financial advisors shall\n be bound by the confidentiality obligations similar to those set forth in this Section. Disclosure of any\n confidential information by any employee, officer, staff, affiliates, or other agents by any Party shall be\n deemed disclosure of such confidential information by such Party, which Party shall be held liable for breach\n of this Agreement. This Section shall survive this Agreement for a period of the maximum allowed under State\n and Federal law.{' '}\n \n

    \n

    \n \n

    \n

    \n XI. \n Governing Law.\n  \n \n This Agreement shall be governed by and construed in accordance with the laws in the State of New York.{' '}\n \n

    \n

    \n \n

    \n

    \n XII. Severability.\n \n  In the event any provision or part of this Agreement is found to be invalid or unenforceable, only that\n particular provision or part so found, and not the entire Agreement, shall be considered{' '}\n \n invalid\n \n .
    \n
    \n
    \n XIII. Compliance.\n \n  Vendors are required to comply with all applicable, local, state, and federal laws and are required to\n obtain necessary licenses pursuant to their business and the project.\n \n

    \n

    \n \n

    \n

    \n \n

    \n

    \n \n

    \n

    \n \n

    \n

    \n \n

    \n

    \n \n

    \n

    \n \n

    \n

    \n \n

    \n

    \n \n

    \n

    \n Company’s Signature\n  _________________________________\n

    \n

    \n Date\n  ______________________ \n

    \n

    \n Print Name\n  ________________________________________\n

    \n

    \n Title \n  _____________________________\n

    \n

    \n \n

    \n

    \n \n

    \n

    \n \n

    \n

    \n \n

    \n

    \n Vendor’s Signature\n  _________________________________\n

    \n

    \n Date\n  ______________________ \n

    \n

    \n Print Name\n  ________________________________________\n

    \n

    \n Title \n  _____________________________\n

    \n

    \n \n

    \n
    \n

    \n \n

    \n

    \n Attachment A: Realm Project Referral Fee \n

    \n

    \n \n

    \n

    \n \n

    \n

    \n HOW IT WORKS:\n  \n

    \n

    \n \n

    \n
      \n
    • \n Success Only: \n Only pay for leads that result in a signed contract.\n
    • \n
    \n

    \n \n

    \n
      \n
    • \n Payment Method: \n Securely pay via ACH or Credit Card through the Quickbooks platform.\n
    • \n
    \n

    \n \n

    \n

    \n RATES:\n

    \n

    \n \n

    \n

    \n For Construction and Renovation Contracts\n

    \n

    \n \n

    \n

    \n \n

    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n

    \n Contract Price \n

    \n
    \n

    \n Referral Fee\n

    \n
    \n

    \n \n

    \n

    \n All Construction Contract Values\n

    \n
    \n

    \n \n

    \n

    \n 4.5%\n

    \n
    \n

    \n \n

    \n

    \n For Design and Architecture Contracts\n

    \n

    \n \n

    \n

    \n \n

    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n

    \n Total Design Price \n

    \n
    \n

    \n Referral Fee\n

    \n
    \n

    \n \n

    \n

    \n All Design Contract Values\n

    \n
    \n

    \n \n

    \n

    \n 10%\n

    \n
    \n

    \n \n

    \n

    \n \n
    \n
    \n \n Referral fees are due within 30 days of contract signing between a client and vendor. Payment schedule will be\n determined by the contract value. Refer to Table A below{' '}\n \n for tiered\n  payment schedule based on contract value. \n

    \n

    \n \n

    \n

    \n \n If a project has two contracts (ex: design contract, build contract), each contract is billed separately at\n the time of contract signing.\n
    \n
    \n
    \n Table A:\n

    \n

    \n \n

    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n

    \n Contract Value \n

    \n
    \n

    \n Due Within\n

    \n

    \n 30 Days\n

    \n

    \n \n

    \n
    \n

    \n Due Within \n

    \n

    \n 60 Days\n

    \n

    \n \n

    \n
    \n

    \n Due Within \n

    \n

    \n 90 Days\n

    \n

    \n \n

    \n
    \n

    \n Due Within 120 Days\n

    \n
    \n

    \n <$299,999\n

    \n
    \n

    \n 100% of fee\n

    \n
    \n

    \n \n

    \n
    \n

    \n \n

    \n
    \n

    \n \n

    \n
    \n

    \n $300,000\n - $499,999\n

    \n
    \n

    \n $10,500\n

    \n
    \n

    \n 100% of outstanding\n

    \n
    \n

    \n \n

    \n
    \n

    \n \n

    \n
    \n

    \n $500,000- $1,499,999\n

    \n
    \n

    \n $10,500\n

    \n
    \n

    \n 50% of outstanding\n

    \n
    \n

    \n 100% of outstanding\n

    \n
    \n

    \n \n

    \n
    \n

    \n $1,500,000+\n

    \n
    \n

    \n $10,500\n

    \n
    \n

    \n 33% of outstanding\n

    \n
    \n

    \n 66% of outstanding\n

    \n
    \n

    \n 100% of outstanding\n

    \n
    \n

    \n \n

    \n

    \n \n

    \n

    \n \n

    \n

    \n Example Payment\n

    \n

    \n \n

    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n

    \n Contract Price \n

    \n
    \n

    \n Referral Fee\n

    \n
    \n

    \n Referral Fee\n  \n

    \n
    \n

    \n First Payment Due\n

    \n
    \n

    \n Final Payment Due\n

    \n
    \n

    \n $400,000\n

    \n
    \n

    \n 4.5%\n

    \n
    \n

    \n $18,000\n

    \n
    \n

    \n $\n 10,500\n

    \n
    \n

    \n $7,500\n

    \n
    \n

    \n \n

    \n
    \n

    \n \n

    \n
    \n

    \n \n

    \n
    \n

    \n 30 Days\n

    \n
    \n

    \n 60 Days\n

    \n
    \n

    \n \n

    \n

    \n \n

    \n

    \n \n

    \n

    \n \n Refunds\n
    \n
    \n \n
    \n
    \n All Realm referral fees are non-refundable, except in case of the following:\n

    \n

    \n \n

    \n

    \n \n Refunds shall only be issued in the event the Vendor is unable to fulfill their obligations due to a client\n cancellation from circumstances beyond the client’s control, such as a natural disaster, personal\n tragedy, or inability to secure sufficient financing. Satisfactory evidence must be provided of such\n circumstances to Realm, including documentation of the event and its impact on their ability to fulfill their\n obligations.{' '}\n \n \n  A referral fee will not be refunded if the contract is canceled due to failure to deliver on the agreed\n upon contract by the Vendor.  Determination of refunds will be at the sole discretion of Realm\n \n

    \n

    \n \n

    \n

    \n \n Under no circumstances shall a referral fee be refunded to Vendor if Vendor is found to have caused the\n cancellation of a contract due to its or its employees negligence, poor performance, or failure to meet the\n terms of their contract with the client.\n \n

    \n
    \n

    \n \n

    \n
    \n
    \n
    \n)\n\ninterface Props {\n webview: boolean\n}\n\nconst VendorContract: FC = ({ webview }) => {\n const [smallButton, setSmallButton] = useState(false)\n useEffect(() => {\n trackPage('VendorContract')\n }, [])\n\n useEffect(() => {\n if (!window) return\n const watchScroll = () => {\n setSmallButton(window.scrollY >= 72)\n }\n window.addEventListener('scroll', watchScroll)\n return () => {\n window.removeEventListener('scroll', watchScroll)\n }\n }, [])\n\n let docusignBaseUrl: URL | null = null\n if (process.env.DOCUSIGN_VENDOR_CONTRACT_URL) {\n docusignBaseUrl = new URL(process.env.DOCUSIGN_VENDOR_CONTRACT_URL)\n const fields = {\n ['Effective Date']: new Date().toLocaleString('en-US', { day: 'numeric', month: 'numeric', year: 'numeric' }),\n }\n Object.entries(fields).forEach(([key, value]) => {\n docusignBaseUrl?.searchParams.append(key, value)\n })\n }\n\n return (\n
    \n {!webview &&
    }\n {docusignBaseUrl && (\n
    \n
    \n \n {'Start Signing'}\n \n
    \n
    \n )}\n \n {!webview &&
    }\n
    \n )\n}\n\nexport default VendorContract\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"bB659k80O0jz5kd4NxGL\",\"formContainer\":\"Ys5_wgxOs9A797p78esw\",\"thanksContainer\":\"i0GdeedRRAYHlqSxxtUc\",\"check\":\"fa7maue5RHohNIM8NFsF\",\"button\":\"L4HykdNY251C0nvW3Qqw\",\"contentWrapper\":\"XS3Ymk8k29LTBPHPjJDT\",\"pageHeader\":\"Hz6YnTRNEWK9RTWQwo6F\",\"form\":\"OGCQ31sUIqnwjOeAY4Jk\",\"row\":\"fj1w5FVdgUiO2l2uK87g\",\"submit\":\"e2r60HCKO1kSzdcFE8dV\",\"image\":\"GbttteMPTwxhG26f9NBg\"};","// extracted by mini-css-extract-plugin\nexport default {\"pageHeader\":\"jIJ9o0F9wczz92lpNQwC\",\"desktop\":\"nhS1Yxx8okI1AfqlctUM\",\"mobile\":\"cYmTogmRu5wrxV6MgtbX\",\"headline\":\"j00ixQq1LSOy5p99Zage\"};","import React, { FC } from 'react'\nimport cx from 'classnames'\n\ninterface PageHeaderProps {\n headlineText: string\n subheadText: string\n className?: string\n}\n\nimport styles from './PageHeader.module.scss'\nimport CoreText from 'components/Core/CoreText'\n\nconst PageHeader: FC = ({ headlineText, subheadText, className }) => {\n return (\n
    \n \n {headlineText}\n \n \n {headlineText}\n \n \n {subheadText}\n \n
    \n )\n}\n\nexport default PageHeader\n","import React, { FC } from 'react'\n\ninterface ThankYouProps {\n className?: string\n}\n\nconst ThankYou: FC = ({ className }) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default ThankYou\n","import React, { ChangeEvent, FC, FormEvent, useCallback, useEffect, useMemo, useState } from 'react'\nimport chunk from 'lodash.chunk'\nimport { RecoilRoot, useSetRecoilState } from 'recoil'\n\nimport Header from 'components/MarketingSite/Header'\n\nimport styles from './styles.module.scss'\nimport CoreInput from 'components/Core/CoreInput'\nimport CoreButton from 'components/Core/CoreButton'\nimport Checkbox from 'components/Checkbox'\n\nimport { postJSON } from 'utils/fetch'\n\nimport RenovationImgPath from 'images/vendor-signup/renovation.jpg'\n\nimport PageHeader from './PageHeader'\nimport ThankYou from 'svgs/vendor-signup/ThankYou'\nimport PageLoad from 'non-rendering/PageLoad'\nimport { trackClick } from 'utils/analyticsV2'\nimport { NavItems } from 'components/MarketingSite/Header/types'\nimport { alertState } from 'recoil/alert'\nimport useRailsFlash from 'non-rendering/useRailsFlash'\nimport GlobalAlert from 'layouts/components/GlobalAlert'\n\nconst SUPPORTED_STATES = ['CA', 'OR', 'WA']\n\nconst vendorNavItems: NavItems = {\n vendorsSignIn: {\n type: 'item',\n title: 'Vendors Sign In',\n href: '/vendors',\n },\n forHomeOwners: {\n type: 'item',\n title: 'For Homeowners',\n href: '/',\n },\n}\n\ninterface Props {\n webview: boolean\n cbsa_codes: { [code: string]: string }\n}\n\nconst VendorSignupInner: FC = ({ webview, cbsa_codes }) => {\n const [companyName, setCompanyName] = useState('')\n const [state, setState] = useState('CA')\n const [licenseNumber, setLicenseNumber] = useState('')\n const [heardOfUs, setHeardOfUs] = useState('')\n const [cbsaCodes, setCbsaCodes] = useState([])\n const [fullName, setFullName] = useState('')\n const [email, setEmail] = useState('')\n const [phoneNumber, setPhoneNumber] = useState('')\n const [website, setWebsite] = useState('')\n const [loading, setLoading] = useState(false)\n const [submitted, setSubmitted] = useState(false)\n const [errors, setErrors] = useState>()\n const setAlert = useSetRecoilState(alertState)\n useRailsFlash()\n\n useEffect(() => {\n const emailErrors = errors && errors['vendor_contacts.email']\n if (!emailErrors) return\n\n if (emailErrors.includes('has already been taken')) {\n setAlert({\n type: 'ERROR',\n message:\n \"Thank you for applying to the Realm vendor network. We've received your inquiry and we'll be in touch shortly.\",\n id: Date.now(),\n })\n }\n }, [errors, setAlert])\n\n const companyNameError = useMemo(() => {\n if (!errors) return\n if (!errors['name']) return\n\n return errors['name'][0]\n }, [errors])\n\n const licenseError = useMemo(() => {\n if (!errors) return\n if (!errors['licenses']) return\n\n return errors['licenses'].join(', ')\n }, [errors])\n\n const websiteError = useMemo(() => {\n if (!errors) return\n if (!errors['website']) return\n\n return errors['website'].join(', ')\n }, [errors])\n\n const handleGoHome = useCallback(() => {\n window.location.href = '/'\n }, [])\n\n const handleCbsaCodeChange = useCallback(\n (code: string) => {\n return (e: ChangeEvent) => {\n const checked = e.target.checked\n\n const newCodes =\n checked && !cbsaCodes.includes(code)\n ? [...cbsaCodes, code]\n : !checked && cbsaCodes.includes(code)\n ? cbsaCodes.filter((x) => x != code)\n : cbsaCodes\n\n setCbsaCodes(newCodes)\n }\n },\n [cbsaCodes]\n )\n\n const formData = useMemo(() => {\n return {\n vendor: {\n name: companyName,\n website: website,\n licenses_attributes: [{ number: licenseNumber, state }],\n heard_of_us: heardOfUs,\n business_units_attributes: [\n {\n state,\n name: 'Primary',\n primary: true,\n vendor_contacts_attributes: [\n {\n full_name: fullName,\n email,\n phone_number: phoneNumber,\n primary: true,\n },\n ],\n },\n ],\n cbsa_codes: cbsaCodes,\n },\n }\n }, [companyName, state, licenseNumber, fullName, email, phoneNumber, website, heardOfUs, cbsaCodes])\n\n const handleSubmit = useCallback(\n async (e: FormEvent) => {\n e.preventDefault()\n\n setLoading(true)\n\n const response = await postJSON('/vendor-signup', formData)\n\n if (response.isError) {\n setErrors(response.jsonBody.errors)\n setLoading(false)\n } else {\n setSubmitted(true)\n setLoading(false)\n }\n },\n [formData]\n )\n\n const handleClickGetStarted = useCallback(() => {\n trackClick({ code: 'get-started', screen: 'vendor-signup', flexfield_1: formData })\n }, [formData])\n\n return (\n
    \n \n \n {!webview &&
    }\n {submitted ? (\n
    \n \n \n \n
    \n ) : (\n
    \n
    \n \n
    \n
    \n \n \n {SUPPORTED_STATES.map((state) => {\n return (\n \n )\n })}\n \n 0 ? 'alert' : 'enabled'}\n hint={errors ? errors['vendor_contacts.full_name']?.join(', ') : undefined}\n required\n />\n 0 ? 'alert' : 'enabled'}\n hint={errors ? errors['vendor_contacts.email']?.join(', ') : undefined}\n required\n />\n 0 ? 'alert' : 'enabled'}\n hint={errors ? errors['vendor_contacts.phone_number']?.join(', ') : undefined}\n required\n />\n \n \n \n \n \n \n \n \n \n \n
    \n {chunk(Object.keys(cbsa_codes), Object.keys(cbsa_codes).length / 2).map((group, i) => {\n return (\n
    \n {group.map((code) => {\n return (\n
    \n \n \n
    \n )\n })}\n
    \n )\n })}\n
    \n
    \n
    \n \n
    \n
    \n
    \n \"A\n
    \n )}\n
    \n )\n}\n\nconst VendorSignup: FC = (props) => (\n \n \n \n)\n\nexport default VendorSignup\n","import { Dispatch, SetStateAction, useCallback, useEffect, useState } from 'react'\nimport dayjs from 'dayjs'\nimport timezone from 'dayjs/plugin/timezone'\nimport { getJSON, postJSON, patchJSON, FetchResponse } from 'utils/fetch'\nimport { VendorScreeningSubmitData, VendorSiteVisitSchedulerInnerStatus, Calendar, VendorScreeningStep } from './types'\n\ndayjs.extend(timezone)\n\nasync function schedulerMethodJSON(\n method: typeof patchJSON | typeof postJSON,\n path: string,\n body: Record,\n calendarId: string,\n onCalendarChange: React.Dispatch>,\n attempt\n): Promise {\n // If we're on our third attempt, get out with a failure\n if (attempt > 3) {\n return false\n }\n\n const response = await method(path, body)\n\n let retry = false\n if (response.code == 422) {\n // Their session changed in some way. Grab new token and try again.\n try {\n // Refresh our calendar info.\n const cResponse = await getJSON(`/vendor_site_visits/${calendarId}`)\n onCalendarChange((prev) => ({ ...prev, ...cResponse }))\n // CSRF needs to be updated immediately to have an impact on the\n // next attempt\n document.querySelector('meta[name=csrf-param]')?.setAttribute('content', cResponse.csrf_param)\n document.querySelector('meta[name=csrf-token]')?.setAttribute('content', cResponse.csrf_token)\n\n retry = true\n } catch {\n // We'll return the 422 errored response in this case.\n }\n\n if (retry) {\n const newResponse = await schedulerMethodJSON(method, path, body, calendarId, onCalendarChange, attempt + 1)\n // If our last attempt had a non-false response, use that.\n // Otherwise use the response from this scope's attempt even if it is bad.\n if (newResponse) return newResponse\n }\n }\n\n return response\n}\n\nexport async function schedulerPostJSON(\n path: string,\n body: Record,\n calendarId: string,\n onCalendarChange: React.Dispatch>,\n attempt = 1\n): Promise {\n const response = await schedulerMethodJSON(postJSON, path, body, calendarId, onCalendarChange, attempt)\n return response as FetchResponse\n}\n\nexport async function schedulerPatchJSON(\n path: string,\n body: Record,\n calendarId: string,\n onCalendarChange: React.Dispatch>,\n attempt = 1\n): Promise {\n const response = await schedulerMethodJSON(patchJSON, path, body, calendarId, onCalendarChange, attempt)\n return response as FetchResponse\n}\n\nexport function computeVendorScreeningSteps(calendar: Calendar): VendorScreeningStep[] {\n const result: VendorScreeningStep[] = []\n\n result.push({\n kind: 'assign',\n q: 'Please review the project scope and confirm your continued interest',\n options: [\n { label: 'Yes, I am interested and will assign a project manager', ok: true },\n { label: 'No, I am not interested', ok: false },\n ],\n negativeOutcome: 'decline',\n })\n\n if (calendar.property.property_plan_files.length > 0) {\n result.push({\n kind: 'docs',\n q: 'Please confirm you have reviewed the additional project documents (e.g., plans, renderings)',\n options: [\n { label: 'Yes, I have reviewed the plans', ok: true },\n { label: 'No, but I will review before the site visit', ok: true },\n { label: 'No, I am not planning to review', ok: false },\n ],\n negativeOutcome: 'disqualify',\n })\n }\n\n if (calendar.property.potential_project_challenges) {\n result.push({\n kind: 'potential_project_challenges',\n q: 'Are you comfortable handling the following potential project challenges?',\n options: [\n { label: 'Yes, I can handle these challenges', ok: true },\n { label: 'No, I cannot or am not willing to handle these challenges', ok: false },\n ],\n negativeOutcome: 'disqualify',\n })\n }\n\n if (calendar.property.additional_notes) {\n result.push({\n kind: 'additional_notes',\n q: 'Please see additional notes from the advisor.',\n options: [],\n negativeOutcome: 'disqualify',\n })\n }\n\n const startStr = calendar.availabilities.map((e) => e.time.start).sort()[0] // default string sort works well here\n const endStr = calendar.availabilities.map((e) => e.time.end).sort()[calendar.availabilities.length - 1] // default string sort works well here\n const siteVisitsWindowStart = dayjs(startStr).tz(calendar.property.time_zone)\n const siteVisitsWindowEnd = dayjs(endStr).tz(calendar.property.time_zone)\n\n result.push({\n kind: 'deadlines',\n q: `Site visits are being held from ${siteVisitsWindowStart.format('MMM D')} to ${siteVisitsWindowEnd.format('MMM D')}, with bids due ${calendar.property.days_for_bid_turnaround || 7} day${calendar.property.days_for_bid_turnaround == 1 ? '' : 's'} after your site visit. Can you meet this deadline?`,\n options: [\n { label: 'Yes, I can meet this deadline', ok: true },\n { label: 'No, I cannot meet this deadline', ok: false },\n ],\n negativeOutcome: 'disqualify',\n })\n\n return result\n}\n\nexport const patchVendorSiteVisit = (\n public_id: string,\n body: VendorScreeningSubmitData,\n signal: AbortSignal\n): Promise> => {\n return patchJSON<{ calendar: Calendar }>(`/vendor_site_visits/${public_id}`, body, signal)\n}\n\nexport const useUpdateVendorSiteVisit = (\n public_id: string,\n numberOfSteps: number,\n setCalendar: Dispatch>,\n setInnerStatus: Dispatch>,\n setVendorScreeningStepIndex: Dispatch>\n) => {\n const [dataToSubmit, setDataToSubmit] = useState(null)\n const [error, setError] = useState(null)\n\n const clearError = useCallback(() => {\n setError(null)\n }, [setError])\n\n useEffect(() => {\n if (dataToSubmit == null) return\n\n const controller = new AbortController()\n const _ = async () => {\n try {\n const response = await patchVendorSiteVisit(public_id, dataToSubmit, controller.signal)\n if (response.isError) {\n console.error(response.jsonBody)\n setError('An error occurred, please reload the page.')\n } else {\n const { calendar } = response.jsonBody\n setCalendar(calendar)\n const reassign = calendar.assigned_vendor_contact.id != calendar.current_vendor_contact.id\n const decline = dataToSubmit.vendor_screening_responses.some((e) => e.outcome == 'decline')\n const disqualify = dataToSubmit.vendor_screening_responses.some((e) => e.outcome == 'disqualify')\n const final = dataToSubmit.vendor_screening_responses.length == numberOfSteps\n setVendorScreeningStepIndex((oldVendorScreeningStepIndex) => oldVendorScreeningStepIndex + 1)\n if (reassign) {\n setInnerStatus('reassigned')\n } else if (decline) {\n setInnerStatus('declined')\n } else if (disqualify) {\n setInnerStatus('disqualified')\n } else if (final) {\n setInnerStatus(null)\n }\n }\n setDataToSubmit(null)\n } catch (error) {\n if (!controller.signal.aborted) {\n setDataToSubmit(null)\n console.error(error)\n setError('An error occurred, please reload the page.')\n }\n }\n }\n _()\n\n return () => {\n controller.abort()\n }\n }, [dataToSubmit, numberOfSteps, public_id, setCalendar, setInnerStatus, setVendorScreeningStepIndex])\n\n return { submitting: dataToSubmit != null, setDataToSubmit, error, clearError }\n}\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst Svg: FC = ({ className }) => (\n \n \n \n)\n\nexport default Svg\n","// extracted by mini-css-extract-plugin\nexport default {\"localCard\":\"F3GYFiJ5IuAJx1X2IXGV\"};","import React, { FC, PropsWithChildren } from 'react'\nimport cx from 'classnames'\n\nimport styles from './LocalCard.module.scss'\n\ninterface Props {\n className?: string\n}\n\nconst LocalCard: FC> = ({ className, children }) => {\n return
    {children}
    \n}\n\nexport default LocalCard\n","// extracted by mini-css-extract-plugin\nexport default {\"message\":\"GC2zb5y_0w2FMefVdtL0\",\"iconWrapper\":\"W4iw62wlyfKQvxZ9F9wm\",\"danger\":\"YXAkvcYqrabX744ORmSp\",\"content\":\"FZj0_4Y6qwN9msUP3iqd\",\"static\":\"c3qcwjcxnUZ_ahRMlWsB\"};","import React, { FC, PropsWithChildren } from 'react'\nimport cx from 'classnames'\n\nimport CoreText from 'components/Core/CoreText'\nimport LocalCard from '../LocalCard'\n\nimport styles from './styles.module.scss'\n\ninterface MessageProps {\n className?: string\n type: 'success' | 'danger'\n title?: string\n description?: string\n icon?: React.ReactNode\n}\n\nconst Message: FC> = ({ className, type, title, description, icon, children }) => {\n return (\n \n {icon &&
    {icon}
    }\n
    \n {children || (\n <>\n {title && (\n \n {title}\n \n )}\n {description && (\n \n {description}\n \n )}\n \n )}\n
    \n
    \n )\n}\n\nexport default Message\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst Svg: FC = ({ className }) => (\n \n \n \n)\n\nexport default Svg\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst Svg: FC = ({ className }) => (\n \n \n \n)\n\nexport default Svg\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst Svg: FC = ({ className }) => (\n \n \n \n)\n\nexport default Svg\n","// extracted by mini-css-extract-plugin\nexport default {\"list\":\"jTYKSIiR2E4Tib4UccXQ\",\"listItem\":\"rFRaDpLYz5gk4sJJ8tAX\",\"actionContainer\":\"eO7aJByOpsmpo1vIvCif\",\"content\":\"VW0TshEQXEx3agab_XZv\",\"iconWrapper\":\"XcC9VYTuNHnYyWinFebB\",\"body\":\"Mg9M6JPLzqd_pg1e5PfU\",\"action\":\"hFVIfxjdu9JKrAzVAtFL\",\"actionContainerbutton\":\"p_rWAq2nDWtTi5gQDViA\"};","import React, { FC, PropsWithChildren, ReactNode, useMemo } from 'react'\nimport cx from 'classnames'\n\nimport ChevronIcon from 'svgs/chevron-right'\n\nimport CoreDivider from 'components/Core/CoreDivider'\n\nimport styles from './styles.module.scss'\n\ninterface ListProps {\n className?: string\n}\n\nconst InfoList: FC> = ({ children, className }) => {\n return
      {children}
    \n}\n\ninterface ItemProps {\n className?: string\n\n divider?: boolean\n\n icon?: ReactNode\n\n onClick?: () => void\n}\n\nconst InfoListItem: FC> = ({ children, className, divider = false, icon, onClick }) => {\n const content = useMemo(\n () => (\n <>\n
    \n
    {icon}
    \n
    {children}
    \n {onClick && }\n
    \n {divider && }\n \n ),\n [icon, divider, children, onClick]\n )\n return (\n
  • \n {onClick ? (\n \n ) : (\n
    {content}
    \n )}\n
  • \n )\n}\n\nexport default InfoList\nexport { InfoListItem }\n","// extracted by mini-css-extract-plugin\nexport default {\"contactInfo\":\"pEj71zpFwU3NDKczYjI7\",\"advisor\":\"jjsGfuJu3Pm2iZ4Aj7kt\",\"advisorPlaceholder\":\"njlJety8xuDSQQ7FM6Hm\",\"details\":\"uM3ETyrY1nc0PcXeOh8z\"};","import React, { FC, useCallback } from 'react'\nimport cx from 'classnames'\n\nimport { formatPhoneNumber } from 'utils/formatting'\nimport { prepare, trackClick as baseTrackClick } from 'utils/analyticsV2'\nimport { Advisor } from '../types'\n\nimport PersonIcon from 'svgs/person'\nimport EmailIcon from 'svgs/email-2'\nimport PhoneIcon from 'svgs/phone'\n\nimport CoreText from 'components/Core/CoreText'\nimport InfoList, { InfoListItem } from '../components/InfoList'\n\nimport styles from './ContactInfo.module.scss'\n\nconst trackClick = prepare(\n {\n family: 'vendor-site-visit',\n },\n baseTrackClick\n)\n\ninterface Props {\n className?: string\n advisor: Advisor\n screen: string\n section: string\n}\nconst ContactInfo: FC = ({ className, advisor, screen, section }) => {\n const handleEmailClick = useCallback(() => {\n trackClick({ code: 'open', screen, section, feature: 'email' })\n window.open(`mailto:${advisor.email}`)\n }, [advisor, screen, section])\n\n const handlePhoneClick = useCallback(() => {\n trackClick({ code: 'open', screen, section, feature: 'phone' })\n let number = advisor.phone_number as string\n if (!number.startsWith('+')) number = `+${number}`\n window.open(`tel:${number}`)\n }, [advisor, screen, section])\n\n return (\n \n
  • \n {advisor.profile_pic_url ? (\n \"Your\n ) : (\n \n )}\n
    \n \n {advisor.name}\n \n \n {advisor.title}\n \n
    \n
  • \n } onClick={handleEmailClick}>\n \n {advisor.email}\n \n \n {advisor.phone_number && (\n } onClick={handlePhoneClick}>\n \n {formatPhoneNumber(advisor.phone_number)}\n \n \n )}\n
    \n )\n}\n\nexport default ContactInfo\n","// extracted by mini-css-extract-plugin\nexport default {\"pointOfContact\":\"sSLo_IDDkIekdZi39Cpz\",\"message\":\"FLc26dSklPOno4Bk_p_2\",\"iconWrapper\":\"bzz_9CCxBHFgu3fU7Q7O\",\"divider\":\"D70XOmSUe2E9XZPvu2P6\",\"contactInfo\":\"SJCSq5hRwinR5AiiYy1A\"};","import React, { FC } from 'react'\n\nimport { Advisor } from '../types'\n\nimport InfoIcon from 'svgs/info-filled'\n\nimport CoreText from 'components/Core/CoreText'\nimport CoreDivider from 'components/Core/CoreDivider'\nimport LocalCard from '../components/LocalCard'\n\nimport ContactInfo from './ContactInfo'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n advisor: Advisor\n screen: string\n message?: string\n}\nconst HouseholdDetails: FC = ({ advisor, screen, message }) => {\n return (\n \n {message && (\n <>\n
    \n
    \n \n
    \n {message}\n
    \n \n \n )}\n
    \n {'Realm Point of Contact'}\n
    \n \n
    \n )\n}\n\nexport default HouseholdDetails\n","// extracted by mini-css-extract-plugin\nexport default {\"lightbox\":\"H4hut2pY3RaMMvw0htXS\"};","import React, { FC, PropsWithChildren } from 'react'\nimport type { RedirectProps } from 'react-router-dom'\nimport cx from 'classnames'\nimport Lightbox from 'components/Lightbox'\nimport styles from './VSVLightbox.module.scss'\n\n/* A new modal that utilizes our Overlay system */\n\ninterface Props {\n className?: string\n placementControlClassName?: string\n position?: 'center' | 'top' | 'bottom'\n onClose?: (() => void) | RedirectProps\n}\n\nconst CoreLightbox: FC> = ({\n children,\n className,\n placementControlClassName,\n position = 'bottom',\n onClose,\n}) => {\n return (\n \n {children}\n \n )\n}\n\nexport default CoreLightbox\n","// extracted by mini-css-extract-plugin\nexport default {\"sheetModal\":\"BBiJDDgqwTYb7MviS8On\",\"close\":\"iNkx9kPNAicP0IwUJfrW\"};","import React, { FC, PropsWithChildren, ReactNode } from 'react'\nimport { Link } from 'react-router-dom'\nimport type { RedirectProps } from 'react-router-dom'\nimport cx from 'classnames'\nimport CoreText from 'components/Core/CoreText'\nimport VSVLightbox from './VSVLightbox'\nimport CloseIcon from 'svgs/close'\nimport styles from './VSVSheetModal.module.scss'\n\ninterface Props {\n className?: string\n title?: string | ReactNode | (() => ReactNode)\n onClose?: (() => void) | RedirectProps\n}\n\nconst VSVSheetModal: FC> = ({ children, className, title = '', onClose }) => {\n return (\n \n
    \n {onClose &&\n (typeof onClose === 'function' ? (\n \n ) : (\n \n \n \n ))}\n \n {typeof title === 'function' ? title() : title}\n \n
    \n
    {children}
    \n
    \n )\n}\n\nexport default VSVSheetModal\n","// extracted by mini-css-extract-plugin\nexport default {\"homeownerDetails\":\"lA0ROgflUMyJwsSniq6y\",\"infoList\":\"P4j23nhSd7qM2JyHV16A\"};","import React, { FC, useCallback } from 'react'\nimport { formatPhoneNumber } from 'utils/formatting'\nimport { prepare, trackClick as baseTrackClick } from 'utils/analyticsV2'\nimport { Property } from '../types'\nimport CoreText from 'components/Core/CoreText'\nimport CoreDivider from 'components/Core/CoreDivider'\nimport VSVSheetModal from '../components/VSVSheetModal'\nimport InfoList, { InfoListItem } from '../components/InfoList'\nimport PersonIcon from 'svgs/person'\nimport EmailIcon from 'svgs/email-2'\nimport PhoneIcon from 'svgs/phone'\nimport styles from './HomeownerDetails.module.scss'\n\nconst trackClick = prepare(\n {\n family: 'vendor-site-visit',\n section: 'household-details-homeowner-details',\n },\n baseTrackClick\n)\n\ninterface Props {\n property: Property\n screen: string\n onClose: () => void\n}\nconst HomeownerDetails: FC = ({ property, screen, onClose }) => {\n const handleEmailClick = useCallback(() => {\n trackClick({ code: 'open', screen, feature: 'email' })\n\n window.open(`mailto:${property.email}`)\n }, [screen, property])\n\n const handlePhoneClick = useCallback(() => {\n trackClick({ code: 'open', screen, feature: 'phone' })\n\n let number = property.phone_number as string\n if (!number.startsWith('+')) number = `+${number}`\n window.open(`tel:${number}`)\n }, [screen, property])\n\n return (\n \n \n }>\n \n {property.full_name}\n \n \n
  • \n \n
  • \n } onClick={handleEmailClick}>\n \n {property.email}\n \n \n {property.phone_number && (\n <>\n
  • \n \n
  • \n } onClick={handlePhoneClick}>\n \n {formatPhoneNumber(property.phone_number)}\n \n \n \n )}\n
    \n
    \n )\n}\n\nexport default HomeownerDetails\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst Svg: FC = ({ className }) => (\n \n \n \n)\n\nexport default Svg\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst Svg: FC = ({ className }) => (\n \n \n \n \n)\n\nexport default Svg\n","// extracted by mini-css-extract-plugin\nexport default {\"householdDetails\":\"vfE635XOK82QN4L8Kd8U\",\"title\":\"u9nyTf8aj239enActwsd\",\"infoList\":\"PZKpoOwjmivEGRaxc3f9\",\"scope\":\"DuN0ssKGAP7r3K1O0Jn5\",\"scopeDescription\":\"p3ZBmBHJ9CYg1SKD_HHF\",\"budgetContent\":\"SA1xC3aADHxtVD0xT_8U\",\"scopeContent\":\"s1KnC624nRHOLoRSXsd9\"};","import React, { FC, useCallback, useState } from 'react'\nimport cx from 'classnames'\nimport { prepare, trackClick as baseTrackClick } from 'utils/analyticsV2'\nimport CoreText from 'components/Core/CoreText'\nimport VSVSheetModal from '../components/VSVSheetModal'\nimport InfoList, { InfoListItem } from '../components/InfoList'\nimport LocalCard from '../components/LocalCard'\nimport HomeownerDetails from './HomeownerDetails'\nimport { Property } from '../types'\nimport PersonIcon from 'svgs/person'\nimport HomeIcon from 'svgs/home'\nimport HandymanIcon from 'svgs/handyman'\nimport styles from './styles.module.scss'\n\nconst trackClick = prepare(\n {\n family: 'vendor-site-visit',\n section: 'household-details',\n },\n baseTrackClick\n)\n\ninterface HouseholdDetailsProps {\n className?: string\n property: Property\n screen: 'canceled' | 'unscheduled' | 'unavailable' | 'scheduled' | 'declined' | 'expired'\n}\n\nconst HouseholdDetails: FC = ({ className, property, screen }) => {\n const [showCustomerDetails, setShowCustomerDetails] = useState(false)\n const [showScopeDetails, setShowScopeDetails] = useState(false)\n\n const handleCustomerClick = useCallback(() => {\n trackClick({ code: 'open', screen, feature: 'homeowner-details' })\n setShowCustomerDetails(true)\n }, [screen])\n const handleCustomerDetailsClosed = useCallback(() => {\n trackClick({ code: 'close', screen, feature: 'homeowner-details' })\n setShowCustomerDetails(false)\n }, [screen])\n\n const handleAddressClick = useCallback(() => {\n const addr = [property.delivery_line_1, property.delivery_line_2, property.city, property.state, property.zip5]\n .filter((el) => el != null)\n .join(', ')\n\n trackClick({ code: 'open', screen, feature: 'address', content_text: addr })\n\n // Send iOS to apple maps. Everyone else goes to google.\n if (navigator.userAgent && /iPad|iPhone|iPod/.test(navigator.userAgent) && (window as any).MSStream) {\n window.open(`https://map.apple.com/?address=${encodeURIComponent(addr)}`, '_blank')\n } else {\n window.open(`https://www.google.com/maps/search/?api=1&query=${encodeURIComponent(addr)}`, '_blank')\n }\n }, [screen, property])\n\n const handleScopeClick = useCallback(() => {\n trackClick({ code: 'open', screen, feature: 'project-scope' })\n\n setShowScopeDetails(true)\n }, [screen])\n const handleScopeDetailsClosed = useCallback(() => {\n trackClick({ code: 'close', screen, feature: 'project-scope' })\n\n setShowScopeDetails(false)\n }, [screen])\n\n return (\n \n \n {'Household details'}\n \n \n }\n onClick={property.email || property.phone_number ? handleCustomerClick : undefined}\n >\n \n {property.full_name}\n \n \n } onClick={handleAddressClick}>\n
    \n {screen == 'scheduled' && (\n <>\n \n {property.delivery_line_1}\n \n {property.delivery_line_2 && (\n \n {property.delivery_line_2}\n \n )}\n \n )}\n \n {`${property.city}, ${property.state} ${property.zip5}`}\n \n
    \n
    \n\n {property.scope != null && (\n } onClick={handleScopeClick}>\n \n {`Project Scope`}\n \n \n )}\n
    \n {showCustomerDetails && (\n \n )}\n {showScopeDetails && property.scope != null && (\n \n
    \n
    \n

    \n

    \n
    \n
    \n )}\n
    \n )\n}\n\nexport default HouseholdDetails\n","// extracted by mini-css-extract-plugin\nexport default {\"completedLayout\":\"U2iNsMIMBRUkmWQcpC2g\"};","import React, { FC, PropsWithChildren } from 'react'\nimport cx from 'classnames'\n\nimport { Calendar } from './types'\n\nimport Message from './components/Message'\nimport PointOfContact from './PointOfContact'\nimport HouseholdDetails from './HouseholdDetails'\n\nimport styles from './CompletedLayout.module.scss'\n\ninterface Props {\n className?: string\n calendar: Calendar\n title: string\n description?: string\n helpMessage: string\n icon: React.ReactNode\n type: 'danger' | 'success'\n screen: 'canceled' | 'unscheduled' | 'unavailable' | 'scheduled' | 'declined' | 'expired'\n}\nconst CompletedLayout: FC> = ({\n className,\n calendar,\n title,\n description,\n helpMessage,\n icon,\n type,\n screen,\n children,\n}) => {\n return (\n
    \n \n {children}\n \n \n \n
    \n )\n}\n\nexport default CompletedLayout\n","import React, { FC } from 'react'\n\nimport { Calendar } from './types'\n\nimport ExpiredIcon from 'svgs/location-off'\n\nimport CompletedLayout from 'pages/_serverRendered/VendorSiteVisit/CompletedLayout'\n\ninterface Props {\n calendar: Calendar\n}\nconst Expired: FC = ({ calendar }) => {\n return (\n }\n helpMessage=\"If you believe there is an error, or would still like to schedule a site visit for this project, contact us.\"\n screen=\"expired\"\n />\n )\n}\n\nexport default Expired\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst Svg: FC = ({ className }) => (\n \n \n \n)\n\nexport default Svg\n","import React, { FC } from 'react'\n\nimport { Calendar } from './types'\n\nimport UnavailableIcon from 'svgs/alarm-off'\n\nimport CompletedLayout from 'pages/_serverRendered/VendorSiteVisit/CompletedLayout'\n\ninterface Props {\n calendar: Calendar\n}\nconst Unavailable: FC = ({ calendar }) => {\n return (\n }\n helpMessage=\"If you believe there is an error, or would still like to schedule a site visit for this project, contact us.\"\n screen=\"unavailable\"\n />\n )\n}\n\nexport default Unavailable\n","// extracted by mini-css-extract-plugin\nexport default {\"modal\":\"srm7X76rI1VxnA2ruQ5I\",\"success\":\"RqYwt6baj1DBhpLh1Kgb\",\"warning\":\"GV5Uke_OgWaAuIKPkOZU\",\"danger\":\"qKPG8ax030TsKNjCfeDA\",\"title\":\"cKr4L8geDEzhezI3ralL\",\"withTopShadow\":\"bwmC7tcpVty6SAHqSYD7\",\"placementControl\":\"nJoUQXRjuXrll3F0wSeS\"};","import React, { FC, PropsWithChildren, ReactNode, useCallback, useEffect, useRef, useState } from 'react'\nimport type { RedirectProps } from 'react-router-dom'\nimport cx from 'classnames'\nimport CoreText from 'components/Core/CoreText'\nimport CoreButton, { CoreButtonKind } from 'components/Core/CoreButton'\nimport VSVLightbox from './VSVLightbox'\n\nimport styles from './VSVModal.module.scss'\n\n/* A new modal that utilizes our Overlay system */\n\nexport type { CoreButtonKind } from 'components/Core/CoreButton'\n\nexport interface VSVModalButton {\n name: string\n kind?: CoreButtonKind\n disabled?: boolean\n type?: 'button' | 'submit' | 'reset'\n form?: string\n onClick?: () => void\n to?:\n | string\n | {\n pathname?: string\n search?: string\n state?: any\n hash?: string\n key?: string\n }\n href?: string\n push?: boolean\n from?: string\n path?: string\n exact?: boolean\n strict?: boolean\n}\n\ninterface VSVModalProps {\n className?: string\n icon?: ReactNode | (() => ReactNode)\n title?: string | (() => ReactNode)\n buttons?: string | VSVModalButton | Array | (() => ReactNode | Array)\n onClose?: (() => void) | RedirectProps\n kind?: 'info' | 'warning' | 'success' | 'danger'\n}\n\nfunction normalizeButton(button: string | VSVModalButton, onClose?: (() => void) | RedirectProps): VSVModalButton {\n if (typeof button === 'string') button = { name: button }\n // If button has no 'to', 'onClick', or 'form', then try to give it a way to function.\n if (!button.onClick && !button.to && !button.form) {\n button = Object.assign(button, typeof onClose === 'function' ? { onClick: onClose } : { ...onClose })\n }\n return button\n}\n\nconst VSVModal: FC> = ({\n children,\n className,\n icon,\n title,\n buttons,\n onClose,\n kind = 'info',\n}) => {\n const buttonsToUse: Array | (() => ReactNode | Array) = !buttons\n ? []\n : typeof buttons === 'function'\n ? buttons\n : buttons instanceof Array\n ? buttons.map((button) => normalizeButton(button, onClose))\n : [normalizeButton(buttons, onClose)]\n\n const [isShadowNeeded, setIsShadowNeeded] = useState(false)\n const sectionRef = useRef(null)\n\n const computeNeedForShadow = useCallback(() => {\n const section = sectionRef.current\n if (!section) return\n\n setIsShadowNeeded(section.scrollHeight > section.clientHeight)\n }, [])\n\n useEffect(() => {\n window.addEventListener('resize', computeNeedForShadow)\n return () => {\n window.removeEventListener('resize', computeNeedForShadow)\n }\n }, [computeNeedForShadow])\n\n useEffect(() => {\n const section = sectionRef.current\n if (!section) return\n\n const observer = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.type === 'childList' || mutation.type === 'attributes') {\n computeNeedForShadow()\n }\n }\n })\n observer.observe(section, { childList: true, subtree: true })\n return () => {\n observer.disconnect()\n }\n }, [computeNeedForShadow])\n\n return (\n \n {icon ?
    {typeof icon === 'function' ? icon() : icon}
    : null}\n
    \n {title ? (\n \n {typeof title === 'string' ? title : title()}\n \n ) : null}\n
    {children}
    \n
    \n {typeof buttonsToUse === 'function' || buttonsToUse.length > 0 ? (\n
    \n {typeof buttonsToUse === 'function'\n ? buttonsToUse()\n : buttonsToUse.map((button) => {\n const { name, ...others } = button\n return \n })}\n
    \n ) : null}\n \n )\n}\n\nexport default VSVModal\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst EventBusy: FC = ({ className }) => (\n \n \n \n)\n\nexport default EventBusy\n","import React, { FC, PropsWithChildren } from 'react'\nimport VSVModal from './components/VSVModal'\nimport EventBusyIcon from 'svgs/event-busy'\n\ninterface Props {\n title?: string\n onClose?: () => void\n}\n\nconst FailureModal: FC> = ({ title, onClose, children }) => (\n }\n kind=\"danger\"\n >\n {children}\n \n)\n\nexport default FailureModal\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst Svg: FC = ({ className }) => (\n \n \n \n)\n\nexport default Svg\n","// extracted by mini-css-extract-plugin\nexport default {\"mismatchedModal\":\"lWVPLAU5p1hp6CkjzUnV\",\"contactInfo\":\"fAHnGm_qrDWOHBuCHFIF\"};","import React, { FC } from 'react'\nimport CoreText from 'components/Core/CoreText'\nimport { Advisor } from './types'\nimport VSVModal from './components/VSVModal'\nimport ContactInfo from './PointOfContact/ContactInfo'\nimport EventBusyIcon from 'svgs/chat-bubble'\nimport styles from './MismatchedModal.module.scss'\n\ninterface Props {\n advisor: Advisor\n onClose?: () => void\n}\n\nconst MismatchedModal: FC = ({ advisor, onClose }) => (\n }\n kind=\"success\"\n >\n \n {\"Ensure you've reviewed the homeowner's availability for the weeks ahead.\"}\n \n \n \n)\n\nexport default MismatchedModal\n","import React, { FC, useCallback } from 'react'\nimport CoreButton from 'components/Core/CoreButton'\nimport VSVModal from './components/VSVModal'\nimport EventBusyIcon from 'svgs/event-busy'\nimport Spinner from 'svgs/spinner'\n\ninterface Props {\n submitting: boolean\n onClose?: () => void\n onConfirm?: () => void\n}\n\nconst DeclineModal: FC = ({ submitting, onClose, onConfirm }) => {\n const renderButtons = useCallback(\n () => (\n <>\n : undefined}\n onClick={onConfirm}\n />\n \n \n ),\n [submitting, onConfirm, onClose]\n )\n return (\n }\n kind=\"danger\"\n />\n )\n}\n\nexport default DeclineModal\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst Svg: FC = ({ className }) => (\n \n \n \n)\n\nexport default Svg\n","// extracted by mini-css-extract-plugin\nexport default {\"availabilities\":\"_2cdGo6aeAYWCFh4b5Qu\",\"calendar\":\"jnVuS2KvQt3AArhEcS5G\",\"notPacific\":\"GmTQMvhJVpdPAPmoEqV5\",\"selectedDate\":\"cdcSrRCf1eCG9eB1GENS\",\"mainLine\":\"WyNydCArop8_0J3vrFeu\",\"noTimes\":\"XT4HqCaUM2VLnxj1lRkp\"};","import React, { FC, useMemo, useState, useCallback } from 'react'\nimport cx from 'classnames'\nimport dayjs from 'dayjs'\nimport timezone from 'dayjs/plugin/timezone'\nimport utc from 'dayjs/plugin/utc'\n\nimport { prepare, trackClick as baseTrackClick } from 'utils/analyticsV2'\n\nimport ClockIcon from 'svgs/access-time-filled'\n\nimport CoreText from 'components/Core/CoreText'\n\nimport Calendar, { CalendarMarks, setMark } from './Calendar'\nimport Period, { PERIODS } from './Period'\nimport { Block } from './Time'\n\nimport styles from './styles.module.scss'\n\nexport type { Block } from './Time'\n\ndayjs.extend(utc)\ndayjs.extend(timezone)\n\nconst trackClick = prepare(\n {\n family: 'vendor-site-visit',\n screen: 'unscheduled', // This will have to change if we reuse this component!\n section: 'availability',\n },\n baseTrackClick\n)\n\ninterface Props {\n availabilities: Array\n selected?: Block\n eventDuration: number\n disabled: boolean\n timezone: string\n onChange: (block: Block) => void\n}\nconst Availabilities: FC = ({ availabilities, selected, eventDuration, disabled, timezone, onChange }) => {\n const [selectedDate, setSelectedDate] = useState(() => {\n if (availabilities.length > 0) {\n return availabilities[0].start\n }\n return new Date()\n })\n\n const djsSelectedDate = useMemo(() => {\n return dayjs(selectedDate).tz(timezone)\n }, [selectedDate, timezone])\n\n const handleTrackAttempted = useCallback((code: string, flexfield_1: any) => {\n trackClick({ code, flexfield_1 })\n }, [])\n\n const firstAvailability = useMemo(() => {\n if (availabilities.length > 0) {\n return availabilities[0].start\n }\n }, [availabilities])\n\n const todaysAvailabilities = useMemo(() => {\n return availabilities.filter((block) => dayjs(djsSelectedDate).isSame(dayjs(block.start).tz(timezone), 'day'))\n }, [djsSelectedDate, availabilities, timezone])\n\n const marks = useMemo(() => {\n return availabilities.reduce((marks, block) => {\n return setMark(marks, dayjs(block.start).tz(timezone), 'default')\n }, {} as CalendarMarks)\n }, [availabilities, timezone])\n\n return (\n
    \n \n
    \n
    \n
    \n {djsSelectedDate.format('ddd, MMM D')}\n {firstAvailability && dayjs(firstAvailability).tz(timezone).isSame(djsSelectedDate, 'day') && (\n
    \n {'1st Availability'}\n
    \n )}\n
    \n \n {djsSelectedDate.format('zzz')}\n \n
    \n
    \n \n
    {`${eventDuration} mins`}
    \n
    \n
    \n {todaysAvailabilities.length == 0 ? (\n {`No available times for the selected date`}\n ) : (\n
      \n {PERIODS.map((period) => (\n \n ))}\n
    \n )}\n
    \n )\n}\n\nexport default Availabilities\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst Svg: FC = ({ className }) => (\n \n \n \n)\n\nexport default Svg\n","import React, { FC } from 'react'\n\ninterface CalendarProps {\n className?: string\n}\n\nconst Calendar: FC = ({ className }) => (\n \n \n \n)\n\nexport default Calendar\n","// extracted by mini-css-extract-plugin\nexport default {\"confirmBookingModal\":\"l8MAKhdrQUMpSD8WRAzX\",\"bookingInfo\":\"It0Le_XkB9y5_ZG_o3g3\"};","import React, { FC, useCallback } from 'react'\nimport { Dayjs } from 'dayjs'\nimport CoreText from 'components/Core/CoreText'\nimport CoreButton from 'components/Core/CoreButton'\nimport VSVModal from './components/VSVModal'\nimport InfoList, { InfoListItem } from './components/InfoList'\nimport EventAvailableIcon from 'svgs/event-available'\nimport DateIcon from 'svgs/calendar'\nimport TimeIcon from 'svgs/clock'\nimport Spinner from 'svgs/spinner'\nimport styles from './ConfirmBookingModal.module.scss'\n\ninterface Props {\n startTime: Dayjs\n endTime: Dayjs\n submitting: boolean\n onClose?: () => void\n onConfirm?: () => void\n}\n\nconst ConfirmBookingModal: FC = ({ startTime, endTime, submitting, onClose, onConfirm }) => {\n const renderButtons = useCallback(\n () => (\n <>\n : undefined}\n onClick={onConfirm}\n />\n \n \n ),\n [submitting, onConfirm, onClose]\n )\n return (\n }\n kind=\"success\"\n >\n \n }>\n \n {startTime.format('ddd, MMM D')}\n \n \n }>\n \n {`${startTime.format('h:mm A')} - ${endTime.format('h:mm A')}`}\n \n \n {startTime.format('zzz')}\n \n \n \n \n )\n}\n\nexport default ConfirmBookingModal\n","// extracted by mini-css-extract-plugin\nexport default {\"earlierDaysAvailableModal\":\"bnfHyzZ2ku4iqsi3RLXn\",\"content\":\"SRmdl3RdNqfEaZuX6Enh\"};","import React, { FC, useCallback } from 'react'\nimport CoreText from 'components/Core/CoreText'\nimport CoreButton from 'components/Core/CoreButton'\nimport VSVModal from './components/VSVModal'\nimport EarlierDaysAvailableIcon from 'svgs/event-available'\nimport styles from './EarlierDaysAvailableModal.module.scss'\n\ninterface Props {\n earlierDays: number\n onClose?: () => void\n onConfirm?: () => void\n}\n\nconst EarlierDaysAvailableModal: FC = ({ earlierDays, onClose, onConfirm }) => {\n const renderButtons = useCallback(\n () => (\n <>\n \n \n \n ),\n [onConfirm, onClose]\n )\n return (\n }\n kind=\"warning\"\n >\n \n {`There ${earlierDays == 1 ? 'is' : 'are'} ${earlierDays} day${\n earlierDays == 1 ? '' : 's'\n } with availability open before the time you have selected. Are you sure you don't want to schedule sooner?`}\n \n \n {`Being one of the first two contractors on site will increase your chances of winning the project by 2x!`}\n \n \n )\n}\n\nexport default EarlierDaysAvailableModal\n","// extracted by mini-css-extract-plugin\nexport default {\"unscheduled\":\"B34WK9mMbzk2unV1E_sm\",\"householdDetails\":\"RCjOW4j7iSMouRKDuWLN\",\"availabilityTitle\":\"Vf6sgBO0gIl4dPsC_z0P\",\"availabilityContainer\":\"J9yRtjtZZHSY47vEnhUV\",\"buttons\":\"hf9HjHfKr3GycSW3oi5q\"};","import React, { FC, useState, useCallback, useMemo } from 'react'\nimport dayjs from 'dayjs'\nimport utc from 'dayjs/plugin/utc'\nimport timezone from 'dayjs/plugin/timezone'\n\ndayjs.extend(utc)\ndayjs.extend(timezone)\n\nimport { prepare, trackClick as baseTrackClick } from 'utils/analyticsV2'\nimport { Calendar } from './types'\n\nimport Availabilities, { Block } from './Availabilities'\nimport ConfirmBookingModal from './ConfirmBookingModal'\nimport EarlierDaysAvailableModal from './EarlierDaysAvailableModal'\n\nimport styles from './Unscheduled.module.scss'\n\nconst trackClick = prepare(\n {\n family: 'vendor-site-visit',\n screen: 'unscheduled',\n },\n baseTrackClick\n)\n\ninterface Props {\n calendar: Calendar\n onTimeSelected: (time: Block) => Promise\n submitting: boolean\n timer: number\n}\n\nconst AvailabilitySelection: FC = ({ calendar, onTimeSelected, submitting, timer }) => {\n const [time, setTime] = useState(null)\n const [timeError, setTimeError] = useState(null)\n const [confirmBookingModal, setConfirmBookingModal] = useState(false)\n const [ignoreEarlierTimesModal, setIgnoreEarlierTimesModal] = useState(false)\n\n const handleTimeChanged = useCallback((block: Block) => {\n trackClick({ code: 'open', section: 'confirm-booking', flexfield_1: { start: block.start, end: block.end } })\n setTime(() => ({ ...block }))\n setConfirmBookingModal(true)\n }, [])\n\n const handleConfirmBookingConfirm = useCallback(async () => {\n trackClick({ code: 'confirm', section: 'confirm-booking' })\n\n if (!time) {\n setTimeError('You must select an available time')\n setConfirmBookingModal(false)\n return true\n }\n\n setTimeError(null)\n await onTimeSelected(time)\n setConfirmBookingModal(false)\n }, [time, onTimeSelected])\n\n const handleConfirmBookingClose = useCallback(() => {\n trackClick({ code: 'close', section: 'confirm-booking' })\n setConfirmBookingModal(false)\n }, [])\n\n const handleEarlierDaysAvailableClose = useCallback(() => {\n trackClick({ code: 'close', section: 'earlier-days-available' })\n setIgnoreEarlierTimesModal(true)\n setConfirmBookingModal(false)\n }, [])\n\n const handleEarlierDaysAvailableConfirm = useCallback(() => {\n trackClick({ code: 'confirm', section: 'earlier-days-available' })\n setIgnoreEarlierTimesModal(true)\n }, [])\n\n const availabilities = useMemo(\n () => {\n // eventDurationSize\n const eventDurationSize = calendar.event_duration * 60 * 1000\n // Increment size will be 30m, or if our event duration is smaller, that.\n const incrementSize = Math.max(30 * 60 * 1000, calendar.event_duration)\n // Get the time of our cutoff, if one exists.\n const cutOff =\n calendar.vendor_forward_availability && !calendar.impersonated\n ? dayjs().tz(calendar.property.time_zone).add(calendar.vendor_forward_availability, 'days').toDate()\n : null\n // Split into even length time blocks.\n // Only allow availabilities to start and end at the top of the increment size.\n const blocks = calendar.availabilities.reduce((newAvail, block) => {\n const origStart = dayjs(block.time.start).tz(calendar.property.time_zone).toDate()\n const origEnd = dayjs(block.time.end).tz(calendar.property.time_zone).toDate()\n\n const start = Math.ceil(origStart.getTime() / incrementSize) * incrementSize\n const lastStart = origEnd.getTime() - eventDurationSize\n for (let x = start; x <= lastStart; x += incrementSize) {\n newAvail.push({\n start: dayjs(x).tz(calendar.property.time_zone).toDate(),\n end: dayjs(x + eventDurationSize)\n .tz(calendar.property.time_zone)\n .toDate(),\n })\n }\n return newAvail\n }, [] as Array)\n\n // If no cutoff, return them all.\n if (cutOff == null) return blocks\n\n return blocks.filter((block) => {\n return block.end <= cutOff\n })\n },\n // We want this to recalculate each time timer changes.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [calendar, timer]\n )\n\n const earlierTimeDays = useMemo(() => {\n if (ignoreEarlierTimesModal) return 0\n if (!time) return 0\n\n const timeDay = dayjs(time.start).tz(calendar.property.time_zone).startOf('day').toDate().getTime()\n\n // Get a count of how many individual days earlier availabilities exist for.\n const counts = availabilities.reduce(\n (counts, availability) => {\n // Grab day of this time.\n // Ignore it if it isn't before our time's day\n const availabilityDay = dayjs(availability.start)\n .tz(calendar.property.time_zone)\n .startOf('day')\n .toDate()\n .getTime()\n if (availabilityDay >= timeDay) return counts\n\n return { ...counts, [availabilityDay]: (counts[availabilityDay] || 0) + 1 }\n },\n {} as Record\n )\n\n return Object.entries(counts).length\n }, [ignoreEarlierTimesModal, availabilities, time, calendar])\n\n return (\n
    \n \n {timeError &&

    {timeError}

    }\n {confirmBookingModal && time && earlierTimeDays && (\n \n )}\n {confirmBookingModal && time && !earlierTimeDays && (\n \n )}\n
    \n )\n}\n\nexport default AvailabilitySelection\n","import React, { FC, useState, useCallback, useEffect, useMemo } from 'react'\nimport dayjs from 'dayjs'\nimport utc from 'dayjs/plugin/utc'\nimport timezone from 'dayjs/plugin/timezone'\n\nimport { getJSON } from 'utils/fetch'\nimport { prepare, trackClick as baseTrackClick, prepareName, TrackBase } from 'utils/analyticsV2'\n\nimport Spinner from 'svgs/spinner'\n\nimport CoreText from 'components/Core/CoreText'\nimport CoreButton from 'components/Core/CoreButton'\n\nimport { Calendar, Event, CEvent, VendorSiteVisitSchedulerInnerStatus } from './types'\nimport { schedulerPostJSON } from './utils'\nimport Expired from './Expired'\nimport Unavailable from './Unavailable'\nimport { Block } from './Availabilities'\nimport FailureModal from './FailureModal'\nimport HouseholdDetails from './HouseholdDetails'\nimport MismatchedModal from './MismatchedModal'\nimport DeclineModal from './DeclineModal'\nimport AvailabilitySelection from './AvailabilitySelection'\n\nimport styles from './Unscheduled.module.scss'\n\ndayjs.extend(utc)\ndayjs.extend(timezone)\n\nconst trackClick = prepare(\n {\n family: 'vendor-site-visit',\n screen: 'unscheduled',\n },\n baseTrackClick\n)\n\nconst trackError = prepareName('state-event', {\n code: 'error',\n family: 'vendor-site-visit',\n screen: 'unscheduled',\n feature: 'scheduling',\n})\n\ninterface UnscheduledProps {\n calendar: Calendar\n availabilities: Block[]\n onCalendarChange: React.Dispatch>\n setInnerStatus: React.Dispatch>\n}\n\nconst Unscheduled: FC = ({ calendar, availabilities, onCalendarChange, setInnerStatus }) => {\n const [submitting, setSubmitting] = useState(false)\n const [timer, setTimer] = useState(0)\n const [time, setTime] = useState(null)\n const [scheduleError, setScheduleError] = useState(null)\n const [mismatchedModal, setMismatchedModal] = useState(false)\n const [declineModal, setDeclineModal] = useState(false)\n const [timeUnavailableModal, setTimeUnavailableModal] = useState(false)\n\n useEffect(() => {\n // Update our view every 30 seconds.\n const interval = setInterval(() => setTimer((prev) => prev + 1), 30000)\n return () => {\n clearInterval(interval)\n }\n }, [])\n\n const processSubmission = useCallback(\n async ({ time, canceled }: { time: null | Block; canceled: boolean }) => {\n setSubmitting(true)\n\n const body: CEvent = {\n email: calendar.assigned_vendor_contact.email || '',\n canceled,\n }\n\n if (!canceled && time) {\n body.start_time = time.start.toISOString()\n body.end_time = time.end.toISOString()\n }\n\n try {\n const response = await schedulerPostJSON(\n `/vendor_site_visits/${calendar.id}/events`,\n body as unknown as Record,\n calendar.id,\n onCalendarChange\n )\n if (response.code != 200) {\n trackError({\n flexfield_1: {\n errorType: 'http',\n status: response.code,\n code: response.jsonBody?.code,\n time: time,\n canceled: canceled,\n email: calendar.assigned_vendor_contact.email,\n },\n })\n }\n if (response.code == 400 && response.jsonBody?.code == 'time_unavailable') {\n // Best effort only. Goal here is to receive updated calendar times\n // to display the most accurate info.\n try {\n // Refresh our calendar info.\n const cResponse = await getJSON(`/vendor_site_visits/${calendar.id}`)\n onCalendarChange((prev) => ({ ...prev, ...cResponse }))\n } catch {\n /* Ignore */\n }\n setTimeUnavailableModal(true)\n } else if (response.code != 200) {\n if (response.jsonBody?.code == 'Invalid site visit status') {\n setInnerStatus('expired')\n } else {\n setScheduleError(response.jsonBody?.code || true)\n }\n } else {\n const event: Event = response.jsonBody\n onCalendarChange((prev) => ({ ...prev, event: { ...event } }))\n\n // Only bother refreshing the entire calendar if we aren't\n // declining/canceled.\n if (!canceled) {\n // Best effort only. Goal here is to receive updated customer contact\n // info.\n try {\n // Refresh our calendar info.\n const cResponse = await getJSON(`/vendor_site_visits/${calendar.id}?event_id=${event.id}`)\n onCalendarChange((prev) => ({ ...prev, ...cResponse }))\n } catch {\n /* Ignore */\n }\n }\n }\n } catch (e) {\n trackError({\n flexfield_1: {\n errorType: 'exception',\n message: e.toString(),\n time: time,\n canceled: canceled,\n email: calendar.assigned_vendor_contact.email,\n },\n })\n setScheduleError(true)\n }\n\n setSubmitting(false)\n return true\n },\n [calendar.assigned_vendor_contact.email, calendar.id, onCalendarChange, setInnerStatus]\n )\n\n const handleTimeSelected = useCallback(\n async (time: Block) => {\n setTime(time)\n await processSubmission({ time, canceled: false })\n },\n [processSubmission]\n )\n\n const handleMismatchedClick = useCallback((e: React.MouseEvent) => {\n trackClick({ code: 'open', section: 'schedule-mismatch' })\n e.preventDefault()\n setMismatchedModal(true)\n }, [])\n\n const handleDeclineClick = useCallback(() => {\n trackClick({ code: 'open', section: 'decline' })\n setDeclineModal(true)\n }, [])\n\n const handleDeclineModalConfirm = useCallback(async () => {\n trackClick({ code: 'confirm', section: 'decline' })\n setTime(null)\n await processSubmission({ time: null, canceled: true })\n setDeclineModal(false)\n }, [processSubmission])\n\n const handleScheduleErrorClose = useCallback(() => {\n trackClick({ code: 'close', section: 'schedule-error' })\n setScheduleError(null)\n }, [])\n const handleMismatchedModalClose = useCallback(() => {\n trackClick({ code: 'close', section: 'schedule-mismatch' })\n setMismatchedModal(false)\n }, [])\n const handleDeclineModalClose = useCallback(() => {\n trackClick({ code: 'close', section: 'decline' })\n setDeclineModal(false)\n }, [])\n const handleTimeUnavailableModalClose = useCallback(() => {\n trackClick({ code: 'close', section: 'time-unavailable-error' })\n setTimeUnavailableModal(false)\n }, [])\n\n const status = useMemo(() => {\n const now = Date.now()\n const booking_due_date = new Date(calendar.booking_due_date || 0).getTime()\n if (calendar.booking_due_date && booking_due_date <= now) return 'expired'\n if (availabilities.length == 0) return 'unavailable'\n return 'unscheduled'\n\n // We want this to recalculate each time timer changes.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [calendar, availabilities, timer])\n\n if (status == 'expired') {\n return \n } else if (status == 'unavailable') {\n return \n }\n\n return (\n
    \n
    \n \n {'Schedule Site Visit'}\n \n \n {\"Select from the homeowner's availability below to schedule a site visit for this project.\"}\n \n
    \n \n \n {'Homeowner availability'}\n \n
    \n \n
    \n : undefined}\n disabled={submitting}\n onClick={handleMismatchedClick}\n />\n : undefined}\n onClick={handleDeclineClick}\n />\n
    \n
    \n\n {declineModal && (\n \n )}\n {mismatchedModal && }\n {scheduleError != null && (\n \n

    \n {`An error occurred while attempting to ${\n time ? 'schedule' : 'decline'\n } your site visit. Please try again later, or contact your advisor for more help.`}\n

    \n \n )}\n {timeUnavailableModal && (\n \n

    {`The time you have selected is no longer available. Please pick a different time.`}

    \n
    \n )}\n
    \n )\n}\n\nexport default Unscheduled\n","import React, { FC, useCallback } from 'react'\nimport CoreButton from 'components/Core/CoreButton'\nimport VSVModal from './components/VSVModal'\nimport EventBusyIcon from 'svgs/event-busy'\nimport Spinner from 'svgs/spinner'\n\ninterface Props {\n submitting: boolean\n onClose?: () => void\n onConfirm?: () => void\n}\n\nconst CancelModal: FC = ({ submitting, onClose, onConfirm }) => {\n const renderButtons = useCallback(\n () => (\n <>\n : undefined}\n onClick={onConfirm}\n />\n \n \n ),\n [submitting, onConfirm, onClose]\n )\n return (\n }\n kind=\"danger\"\n />\n )\n}\n\nexport default CancelModal\n","// extracted by mini-css-extract-plugin\nexport default {\"reschedule\":\"Tcf29kMiJsYURO0bONu5\",\"householdDetails\":\"q1fNvXvQfptw9w8QxxoJ\",\"availabilityTitle\":\"YQN3LrNUnmFQoAsis9XU\",\"availabilityContainer\":\"g9dYaDiue6NntH_0X6Ge\",\"buttons\":\"fZu4n6jTC0G3C9CmhZSA\"};","import React, { FC, useState, useCallback, useEffect, useMemo } from 'react'\nimport dayjs from 'dayjs'\nimport utc from 'dayjs/plugin/utc'\nimport timezone from 'dayjs/plugin/timezone'\n\nimport { getJSON } from 'utils/fetch'\nimport { prepare, trackClick as baseTrackClick, prepareName, TrackBase } from 'utils/analyticsV2'\n\nimport CoreText from 'components/Core/CoreText'\nimport CoreButton from 'components/Core/CoreButton'\n\nimport { Calendar, Event, UEvent } from './types'\nimport { schedulerPatchJSON } from './utils'\nimport Expired from './Expired'\nimport Unavailable from './Unavailable'\nimport { Block } from './Availabilities'\nimport FailureModal from './FailureModal'\nimport HouseholdDetails from './HouseholdDetails'\nimport AvailabilitySelection from './AvailabilitySelection'\n\nimport styles from './Reschedule.module.scss'\n\ndayjs.extend(utc)\ndayjs.extend(timezone)\n\nconst trackClick = prepare(\n {\n family: 'vendor-site-visit',\n screen: 'reschedule',\n },\n baseTrackClick\n)\nconst trackError = prepareName('state-event', {\n code: 'error',\n family: 'vendor-site-visit',\n screen: 'reschedule',\n feature: 'rescheduling',\n})\n\ninterface RescheduleProps {\n calendar: Calendar\n availabilities: Block[]\n event: Event\n onCalendarChange: React.Dispatch>\n onBack: () => void\n}\n\nconst Reschedule: FC = ({ calendar, availabilities, event, onCalendarChange, onBack }) => {\n const [submitting, setSubmitting] = useState(false)\n const [timer, setTimer] = useState(0)\n const [time, setTime] = useState(null)\n const [scheduleError, setScheduleError] = useState(false)\n const [timeUnavailableModal, setTimeUnavailableModal] = useState(false)\n\n useEffect(() => {\n // Update our view every 30 seconds.\n const interval = setInterval(() => setTimer((prev) => prev + 1), 30000)\n return () => {\n clearInterval(interval)\n }\n }, [])\n\n const processSubmission = useCallback(\n async (time: Block) => {\n setSubmitting(true)\n\n const body: UEvent = {\n start_time: time.start.toISOString(),\n end_time: time.end.toISOString(),\n }\n\n try {\n const response = await schedulerPatchJSON(\n `/vendor_site_visits/${calendar.id}/events/${event.id}`,\n body as unknown as Record,\n calendar.id,\n onCalendarChange\n )\n if (response.code != 200) {\n trackError({\n flexfield_1: {\n errorType: 'http',\n status: response.code,\n code: response.jsonBody?.code,\n time: time,\n canceled: false,\n },\n })\n }\n if (response.code == 400 && response.jsonBody?.code == 'time_unavailable') {\n // Best effort only. Goal here is to receive updated calendar times\n // to display the most accurate info.\n try {\n // Refresh our calendar info.\n const cResponse = await getJSON(`/vendor_site_visits/${calendar.id}`)\n onCalendarChange((prev) => ({ ...prev, ...cResponse }))\n } catch {\n /* Ignore */\n }\n setTimeUnavailableModal(true)\n } else if (response.code != 200) {\n setScheduleError(true)\n } else {\n const event: Event = response.jsonBody\n onCalendarChange((prev) => ({ ...prev, event: { ...event } }))\n\n // Best effort only. Goal here is to receive updated customer contact\n // info.\n try {\n // Refresh our calendar info.\n const cResponse = await getJSON(`/vendor_site_visits/${calendar.id}?event_id=${event.id}`)\n onCalendarChange((prev) => ({ ...prev, ...cResponse }))\n } catch {\n /* Ignore */\n }\n\n // Then go back to the scheduled screen.\n onBack()\n }\n } catch (e) {\n trackError({\n flexfield_1: {\n errorType: 'exception',\n message: e.toString(),\n time: time,\n canceled: false,\n },\n })\n setScheduleError(true)\n }\n\n setSubmitting(false)\n return true\n },\n [onCalendarChange, calendar, event, onBack]\n )\n\n const handleTimeSelected = useCallback(\n async (time: Block) => {\n setTime(time)\n await processSubmission(time)\n },\n [processSubmission]\n )\n\n const handleScheduleErrorClose = useCallback(() => {\n trackClick({ code: 'close', section: 'schedule-error' })\n setScheduleError(false)\n }, [])\n const handleTimeUnavailableModalClose = useCallback(() => {\n trackClick({ code: 'close', section: 'time-unavailable-error' })\n setTimeUnavailableModal(false)\n }, [])\n\n const handleClose = useCallback(() => {\n trackClick({ code: 'close', section: 'reschedule' })\n onBack()\n }, [onBack])\n\n const status = useMemo(() => {\n const now = Date.now()\n const booking_due_date = new Date(calendar.booking_due_date || 0).getTime()\n if (calendar.booking_due_date && booking_due_date <= now) return 'expired'\n if (availabilities.length == 0) return 'unavailable'\n return 'reschedule'\n\n // We want this to recalculate each time timer changes.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [calendar, availabilities, timer])\n\n if (status == 'expired') {\n return \n } else if (status == 'unavailable') {\n return \n }\n\n return (\n
    \n
    \n \n {'Reschedule Site Visit'}\n \n \n {\"Select from the homeowner's availability below to reschedule your site visit for this project.\"}\n \n
    \n \n \n {'Homeowner availability'}\n \n
    \n \n
    \n \n
    \n
    \n\n {scheduleError && (\n \n

    \n {`An error occurred while attempting to reschedule your site visit. Please try again later, or contact your advisor for more help.`}\n

    \n \n )}\n {timeUnavailableModal && (\n \n

    {`The time you have selected is no longer available. Please pick a different time.`}

    \n
    \n )}\n
    \n )\n}\n\nexport default Reschedule\n","// extracted by mini-css-extract-plugin\nexport default {\"scheduled\":\"qZjnT6rZskyZGJtULRKm\",\"messageContent\":\"WEjFXVlLI1wQ12RyiT0w\"};","import React, { FC, useState, useCallback, useEffect, useMemo } from 'react'\nimport dayjs from 'dayjs'\nimport utc from 'dayjs/plugin/utc'\nimport timezone from 'dayjs/plugin/timezone'\n\nimport { prepare, trackClick as baseTrackClick, prepareName, TrackBase } from 'utils/analyticsV2'\n\nimport EventAvailableIcon from 'svgs/event-available'\nimport DateIcon from 'svgs/calendar'\nimport TimeIcon from 'svgs/clock'\nimport Spinner from 'svgs/spinner'\n\nimport CoreText from 'components/Core/CoreText'\nimport CoreButton from 'components/Core/CoreButton'\nimport CoreDivider from 'components/Core/CoreDivider'\n\nimport { Calendar, Event } from './types'\nimport { schedulerPatchJSON } from './utils'\nimport { Block } from './Availabilities'\nimport Message from './components/Message'\nimport FailureModal from './FailureModal'\nimport PointOfContact from './PointOfContact'\nimport HouseholdDetails from './HouseholdDetails'\nimport InfoList, { InfoListItem } from './components/InfoList'\nimport CancelModal from './CancelModal'\nimport Reschedule from './Reschedule'\n\nimport styles from './Scheduled.module.scss'\n\ndayjs.extend(utc)\ndayjs.extend(timezone)\n\nconst trackClick = prepare(\n {\n family: 'vendor-site-visit',\n screen: 'scheduled',\n },\n baseTrackClick\n)\nconst trackError = prepareName('state-event', {\n code: 'error',\n family: 'vendor-site-visit',\n screen: 'scheduled',\n feature: 'canceling',\n})\n\ninterface Props {\n calendar: Calendar\n onCalendarChange: React.Dispatch>\n availabilities: Block[]\n}\n\nconst Scheduled: FC = ({ calendar, onCalendarChange, availabilities }) => {\n const [timer, setTimer] = useState(0)\n const event = useMemo(() => calendar.event as Event, [calendar]) // We know it will exist.\n const [cancelModal, setCancelModal] = useState(false)\n const [cancelling, setCancelling] = useState(false)\n const [cancelError, setCancelError] = useState(false)\n const [rescheduling, setRescheduling] = useState(false)\n const [rescheduleError, setRescheduleError] = useState(false)\n\n useEffect(() => {\n if (!window) return\n const params = new URLSearchParams(window.location.search)\n if (params.has('reschedule')) setRescheduling(true)\n }, [])\n\n useEffect(() => {\n // Update our view every 30 seconds.\n const interval = setInterval(() => setTimer((prev) => prev + 1), 30000)\n return () => {\n clearInterval(interval)\n }\n }, [])\n\n const handleCancelClick = useCallback(() => {\n trackClick({ code: 'open', section: 'cancel' })\n setCancelModal(true)\n }, [])\n\n const handleCancelModalConfirm = useCallback(async () => {\n trackClick({ code: 'confirm', section: 'cancel' })\n\n setCancelling(true)\n\n const body = { canceled: true }\n try {\n const response = await schedulerPatchJSON(\n `/vendor_site_visits/${calendar.id}/events/${event.id}`,\n body as unknown as Record,\n calendar.id,\n onCalendarChange\n )\n\n onCalendarChange((prev) => ({ ...prev, event: { ...(response.jsonBody as Event) } }))\n } catch (e) {\n trackError({\n flexfield_1: {\n errorType: 'exception',\n message: e.toString(),\n canceled: true,\n },\n })\n setCancelError(true)\n }\n\n setCancelError(true)\n setCancelModal(false)\n setCancelling(false)\n }, [calendar, event, onCalendarChange])\n\n const handleCancelErrorClose = useCallback(() => {\n trackClick({ code: 'close', section: 'cancel-error' })\n setCancelError(false)\n }, [])\n const handleCancelModalClose = useCallback(() => {\n trackClick({ code: 'close', section: 'cancel' })\n setCancelModal(false)\n }, [])\n\n const handleRescheduleClick = useCallback(() => {\n trackClick({ code: 'open', section: 'reschedule' })\n setRescheduling(true)\n }, [])\n\n const handleRescheduleErrorClose = useCallback(() => {\n trackClick({ code: 'close', section: 'reschedule-error' })\n setRescheduleError(false)\n }, [])\n\n const handleRescheduleBack = useCallback(() => {\n setRescheduling(false)\n }, [])\n\n const status = useMemo(() => {\n const now = Date.now()\n const startTime = new Date(event.start_time || '')\n const endTime = new Date(event.end_time || '')\n if (endTime.getTime() <= now) return 'completed'\n if (startTime.getTime() <= now) return 'occurring'\n return 'scheduled'\n\n // We want this to recalculate each time timer changes.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [event, timer])\n\n const startTime = dayjs(event.start_time).tz(calendar.property.time_zone)\n const endTime = dayjs(event.end_time).tz(calendar.property.time_zone)\n\n if (rescheduling) {\n return (\n \n )\n }\n\n return (\n
    \n }\n type=\"success\"\n >\n
    \n \n {status == 'completed' ? 'Site visit completed' : 'Site visit scheduled'}\n \n {status == 'scheduled' ? (\n <>\n \n \n }>\n \n {startTime.format('ddd, MMM D')}\n \n \n }>\n \n {`${startTime.format('h:mm A')} - ${endTime.format('h:mm A')}`}\n \n \n {startTime.format('zzz')}\n \n \n \n \n
    \n \n {'If this time no longer works for you, you can reschedule the appointment.'}\n \n : undefined}\n />\n \n {'If you no longer wish to persue this opportunity, you can cancel your appointment.'}\n \n : undefined}\n />\n
    \n \n ) : (\n <>\n \n {\n {\n ['completed']: `Thank you for visiting with ${\n calendar.property.full_name\n } on ${startTime.format('M/D/YYYY')}. Please let us know how everything went!`,\n ['occurring']: `Your site visit should be currently under way. Good luck!`,\n }[status]\n }\n \n \n
    \n \n {'Missed the meeting? You can try rescheduling your site visit.'}\n \n : undefined}\n />\n
    \n \n )}\n
    \n \n \n \n {cancelModal && (\n \n )}\n {cancelError && (\n \n

    \n {`An error occurred while attempting to cancel your site visit. Please try again later, or contact your advisor for more help.`}\n

    \n
    \n )}\n {rescheduleError && (\n \n

    \n {`An error occurred while attempting to reschedule your site visit. Please try again later, or contact your advisor for more help.`}\n

    \n
    \n )}\n
    \n )\n}\n\nexport default Scheduled\n","// extracted by mini-css-extract-plugin\nexport default {\"canceled\":\"ezWPoMdWXubu3dakYUDk\",\"messageContent\":\"nLPPGedGeWaAgBSK1Rd8\"};","import React, { FC, useCallback, useState } from 'react'\n\nimport { getJSON } from 'utils/fetch'\nimport { Calendar } from './types'\n\nimport ExpiredIcon from 'svgs/event-busy'\nimport Spinner from 'svgs/spinner'\n\nimport CoreDivider from 'components/Core/CoreDivider'\nimport CoreText from 'components/Core/CoreText'\nimport CoreButton from 'components/Core/CoreButton'\n\nimport CompletedLayout from 'pages/_serverRendered/VendorSiteVisit/CompletedLayout'\n\nimport styles from './Canceled.module.scss'\n\ninterface Props {\n calendar: Calendar\n onCalendarChange: React.Dispatch>\n}\n\nconst Canceled: FC = ({ calendar, onCalendarChange }) => {\n const [submitting, setSubmitting] = useState(false)\n\n const handleNewSiteVisitClick = useCallback(async () => {\n setSubmitting(true)\n try {\n // Refresh our calendar info.\n const cResponse = await getJSON(`/vendor_site_visits/${calendar.id}`)\n onCalendarChange((prev) => ({ ...prev, event: undefined, ...cResponse }))\n setSubmitting(false)\n } catch {\n // force a page refresh... this is evil.\n window.location.reload()\n }\n }, [calendar, onCalendarChange])\n\n return (\n }\n helpMessage=\"If you believe there is an error, contact us.\"\n screen=\"canceled\"\n className={styles.canceled}\n >\n
    \n \n {'Site visit Canceled'}\n \n \n \n {\n 'Your site visit has been canceled. If you would still like to schedule a site visit for this project, you may start the process again.'\n }\n \n
    \n : undefined}\n />\n
    \n
    \n \n )\n}\n\nexport default Canceled\n","import React, { FC } from 'react'\n\nimport { Calendar } from './types'\n\nimport ExpiredIcon from 'svgs/event-busy'\n\nimport CompletedLayout from 'pages/_serverRendered/VendorSiteVisit/CompletedLayout'\n\ninterface Props {\n calendar: Calendar\n}\nconst Declined: FC = ({ calendar }) => {\n return (\n }\n helpMessage=\"If you believe there is an error, or would still like to schedule a site visit for this project, contact us.\"\n screen=\"declined\"\n />\n )\n}\n\nexport default Declined\n","import React, { FC, PropsWithChildren } from 'react'\nimport cx from 'classnames'\nimport RealmBusiness from 'svgs/realm-business'\n\nconst NewLayoutOuter: FC = ({ children }) => {\n return (\n \n {children}\n
    \n )\n}\n\nconst NewLayoutInner: FC> = ({ children, size = '4xl' }) => {\n return (\n
    \n
    \n \n
    \n \n {children}\n
    \n \n )\n}\n\nexport default {\n Outer: NewLayoutOuter,\n Inner: NewLayoutInner,\n}\n","import React, { FC, useCallback } from 'react'\nimport cx from 'classnames'\nimport { getInitials } from 'utils/formatting'\nimport { CalendarVendorContact } from 'pages/_serverRendered/VendorSiteVisit/types'\nimport CoreInput from 'components/Core/CoreInput'\nimport { FancyOption } from 'components/Core/CoreInput/FancySelect'\n\nconst computeInitialVendorContactEmail = (\n vendorContact: CalendarVendorContact | null,\n vendorContacts: CalendarVendorContact[]\n) => {\n if (vendorContact) {\n if (!vendorContact.ooo) {\n return vendorContact.email || undefined\n } else {\n const backupContact = vendorContacts.find((e) => e.id == vendorContact.backup_vendor_contact_id)\n if (backupContact) {\n if (!backupContact.ooo) {\n return backupContact.email || undefined\n } else {\n // note we don't follow backups recursively. If first is also ooo, just pick any available as default\n const firstAvailableContact = vendorContacts.filter((e) => !e.ooo)[0]\n return firstAvailableContact ? firstAvailableContact.email || undefined : undefined\n }\n }\n }\n }\n}\n\ninterface VendorContactSelectProps {\n name?: string\n vendorContact: CalendarVendorContact | null\n setVendorContact: (vendorContact: CalendarVendorContact | null) => void\n vendorContacts: CalendarVendorContact[]\n disabled?: boolean\n className?: string\n}\n\nconst VendorContactSelect: FC = ({\n name,\n vendorContact,\n setVendorContact,\n vendorContacts,\n disabled,\n className,\n}) => {\n const initialValue = computeInitialVendorContactEmail(vendorContact, vendorContacts)\n\n const handleChangeValue = useCallback(\n (email: string) => {\n const newVendorContact = vendorContacts.find((e) => e.email == email) || null\n setVendorContact(newVendorContact)\n },\n [setVendorContact, vendorContacts]\n )\n\n const renderOption = useCallback(\n (e: FancyOption) => {\n const backupName =\n e.payload.ooo && e.payload.backup_vendor_contact_id\n ? vendorContacts.find((x) => x.id == e.payload.backup_vendor_contact_id)?.full_name\n : null\n return (\n
    \n
    \n
    \n {/* {e.payload.pic_url ? (\n \n ) : ( */}\n
    \n {getInitials(e.payload.full_name)}\n
    \n {/* )} */}\n
    \n
    \n
    \n
    \n
    \n {[vendorContact?.id == e.payload.id ? '(You)' : '', e.payload.full_name].join(' ')}\n
    \n {backupName ?
    {`(Backup: ${backupName})`}
    : null}\n
    \n {e.payload.ooo ? (\n
    {'🏖️ Out of office'}
    \n ) : e.payload.email ? (\n
    {`<${e.payload.email}>`}
    \n ) : null}\n
    \n
    \n )\n },\n [vendorContact?.id, vendorContacts]\n )\n\n const options: FancyOption[] = vendorContacts.map((e) => ({\n disabled: e.ooo,\n value: e.email || '',\n payload: e,\n }))\n\n return (\n \n name={name}\n required\n disabled={disabled}\n value={initialValue}\n onChangeValue={handleChangeValue}\n options={options}\n renderOption={renderOption}\n className={className}\n />\n )\n}\n\nexport default VendorContactSelect\n","import React, { FC, PropsWithChildren, useCallback } from 'react'\nimport { useController, useForm } from 'react-hook-form'\nimport { track } from 'utils/analyticsV2'\nimport { CalendarVendorContact } from './types'\nimport CoreInput from 'components/Core/CoreInput'\nimport { Calendar, VendorScreeningStep, VendorScreeningSubmitData } from './types'\nimport NewLayout from './components/NewLayout'\nimport VendorContactSelect from './components/VendorContactSelect'\nimport Spinner from 'svgs/spinner'\n\ninterface SchedulerAssignFields {\n option: string\n vendor_contact_id: number | null\n why_not: string\n}\n\ninterface SchedulerAssignProps {\n calendar: Calendar\n submitting: boolean\n setDataToSubmit: (newDataToSubmit: null | VendorScreeningSubmitData) => void\n step: VendorScreeningStep\n stepIndex: number\n vendorScreeningResponses: any\n setVendorScreeningResponses: any\n}\n\nconst SchedulerAssign: FC> = ({\n children,\n calendar,\n submitting,\n setDataToSubmit,\n step,\n stepIndex,\n vendorScreeningResponses,\n setVendorScreeningResponses,\n}) => {\n const {\n control,\n register,\n handleSubmit: handleSubmitF,\n setValue,\n } = useForm({\n disabled: submitting,\n defaultValues: {\n option: step.options[0].label,\n vendor_contact_id: calendar.current_vendor_contact.id,\n },\n })\n\n const { field: vendorContactField } = useController({ name: 'vendor_contact_id', control })\n const { field: optionField } = useController({ name: 'option', control })\n\n const setVendorContact = useCallback(\n (newVendorContact: CalendarVendorContact | null) => {\n setValue('vendor_contact_id', newVendorContact?.id || null)\n },\n [setValue]\n )\n\n const handleSubmit = useCallback(\n (data: SchedulerAssignFields) => {\n const option = step.options.find((e) => e.label == data.option)\n if (!option) return\n\n track('click', { family: 'vendor-site-visit', code: 'submit', feature: 'screening', content_text: step.q })\n\n const newVendorScreeningResponse = {\n outcome: option.ok ? 'ok' : step.negativeOutcome,\n q: step.q,\n a: option.label,\n why_not: data.why_not || undefined,\n }\n const newVendorScreeningResponses = [...vendorScreeningResponses.slice(0, stepIndex), newVendorScreeningResponse]\n setVendorScreeningResponses(newVendorScreeningResponses)\n\n const newDataToSubmit = {\n vendor_contact_id: option.ok ? data.vendor_contact_id : undefined,\n vendor_screening_responses: newVendorScreeningResponses,\n }\n setDataToSubmit(newDataToSubmit)\n },\n [setDataToSubmit, setVendorScreeningResponses, step, stepIndex, vendorScreeningResponses]\n )\n\n return (\n
    \n \n \n

    {step.q}

    \n\n {children}\n\n
    \n
    \n \n {optionField.value == step.options[0].label && (\n
    \n e.id == vendorContactField.value) || null}\n setVendorContact={setVendorContact}\n vendorContacts={calendar.vendor_contacts}\n disabled={vendorContactField.disabled}\n className=\"tw:w-full tw:border tw:border-neutrals-700\"\n />\n
    \n )}\n
    \n
    \n \n {optionField.value == step.options[1].label && (\n \n )}\n
    \n
    \n
    \n \n {submitting ? : 'Continue'}\n \n
    \n
    \n )\n}\n\nexport default SchedulerAssign\n","import React, { FC, PropsWithChildren, useCallback } from 'react'\nimport { useController, useForm } from 'react-hook-form'\nimport cx from 'classnames'\nimport { track } from 'utils/analyticsV2'\nimport CoreInput from 'components/Core/CoreInput'\nimport { VendorScreeningStep, VendorScreeningSubmitData } from './types'\nimport NewLayout from './components/NewLayout'\nimport Spinner from 'svgs/spinner'\n\ntype SchedulerStepFields = {\n option: string\n why_not: string\n}\n\ntype ScreeningStepProps = {\n submitting: boolean\n setDataToSubmit: (newDataToSubmit: null | VendorScreeningSubmitData) => void\n step: VendorScreeningStep\n stepIndex: number\n vendorScreeningResponses: any\n setVendorScreeningResponses: any\n onBack: () => void\n}\n\nconst ScreeningStep: FC> = ({\n children,\n submitting,\n setDataToSubmit,\n step,\n stepIndex,\n vendorScreeningResponses,\n setVendorScreeningResponses,\n onBack,\n}) => {\n const {\n control,\n register,\n handleSubmit: handleSubmitF,\n } = useForm({\n disabled: submitting,\n defaultValues: {\n option: (vendorScreeningResponses[stepIndex] || {}).a,\n },\n })\n\n const { field: optionField } = useController({ name: 'option', control })\n\n const handleSubmit = useCallback(\n (data: SchedulerStepFields) => {\n const option = step.options.find((e) => e.label == data.option)\n if (step.options.length > 0 && !option) return\n\n track('click', { family: 'vendor-site-visit', code: 'submit', feature: 'screening', content_text: step.q })\n\n const newVendorScreeningResponse = {\n outcome: option ? (option.ok ? 'ok' : step.negativeOutcome) : 'ok',\n q: step.q,\n a: option ? option.label : undefined,\n why_not: data.why_not || undefined,\n }\n const newVendorScreeningResponses = [...vendorScreeningResponses.slice(0, stepIndex), newVendorScreeningResponse]\n setVendorScreeningResponses(newVendorScreeningResponses)\n\n const newDataToSubmit = { vendor_screening_responses: newVendorScreeningResponses }\n setDataToSubmit(newDataToSubmit)\n },\n [setDataToSubmit, setVendorScreeningResponses, step, stepIndex, vendorScreeningResponses]\n )\n\n return (\n
    \n \n \n

    {step.q}

    \n\n {children}\n\n
    \n {step.options.map((option, index) => (\n 0 })}\n >\n \n {optionField.value == option.label && !option.ok && (\n \n )}\n
    \n ))}\n \n
    \n
    \n \n {'Back'}\n \n \n {submitting ? : 'Continue'}\n \n
    \n
    \n
    \n )\n}\n\nexport default ScreeningStep\n","import React, { Dispatch, FC, SetStateAction, useCallback, useState } from 'react'\nimport OpenInNew from '@mui/icons-material/OpenInNew'\nimport Info from '@mui/icons-material/Info'\nimport { track } from 'utils/analyticsV2'\nimport { Calendar, VendorScreeningResponse, VendorSiteVisitSchedulerInnerStatus } from './types'\nimport { computeVendorScreeningSteps, useUpdateVendorSiteVisit } from './utils'\nimport SchedulerAssign from './SchedulerAssign'\nimport ScreeningStep from './ScreeningStep'\nimport FailureModal from './FailureModal'\n\ntype ScreeningProps = {\n calendar: Calendar\n setCalendar: Dispatch>\n setInnerStatus: Dispatch>\n}\n\nconst Screening: FC = ({ calendar, setCalendar, setInnerStatus }) => {\n const [vendorScreeningResponses, setVendorScreeningResponses] = useState([])\n const [vendorScreeningStepIndex, setVendorScreeningStepIndex] = useState(0)\n\n const vendorScreeningSteps = computeVendorScreeningSteps(calendar)\n\n const { submitting, setDataToSubmit, error, clearError } = useUpdateVendorSiteVisit(\n calendar.id,\n vendorScreeningSteps.length,\n setCalendar,\n setInnerStatus,\n setVendorScreeningStepIndex\n )\n\n const step = vendorScreeningSteps[vendorScreeningStepIndex]\n\n const handleBack = useCallback(() => {\n track('click', {\n family: 'vendor-site-visit',\n code: 'back',\n feature: 'screening',\n flexfield_1: { stepTitle: step.q },\n })\n setVendorScreeningStepIndex((oldVendorScreeningStepIndex) => Math.max(0, oldVendorScreeningStepIndex - 1))\n }, [step.q])\n\n // NOTE: we're only showing partial address here, we don't want to share the full address yet\n // Not showing delivery_line_1 or delivery_line_2\n const address = [\n // calendar.property.delivery_line_1,\n // calendar.property.delivery_line_2,\n calendar.property.city,\n calendar.property.state,\n calendar.property.zip5,\n ]\n .filter(Boolean)\n .join(', ')\n\n const handleAddressClick = useCallback(() => {\n track('click', {\n family: 'vendor-site-visit',\n code: 'open',\n feature: 'address',\n content_text: address,\n flexfield_1: { stepTitle: step.q },\n })\n\n // Send iOS to apple maps. Everyone else goes to google.\n const url =\n /iPad|iPhone|iPod/.test(navigator.userAgent) && (window as any).MSStream\n ? `https://map.apple.com/?address=${encodeURIComponent(address)}`\n : `https://www.google.com/maps/search/?api=1&query=${encodeURIComponent(address)}`\n window.open(url, '_blank')\n }, [address, step.q])\n\n return (\n <>\n {step.kind == 'assign' ? (\n \n
    \n \n
    \n {\n 'Only accept projects you are willing and able to bid on. Late withdrawals, late bids, or unreasonable bids will result in fewer projects offered by Realm.'\n }\n
    \n
    \n
    \n
    {'Address'}
    \n \n \n
    {address}
    \n \n
    \n
    \n
    {'Project scope'}
    \n
    \n
    \n \n ) : (\n \n {step.kind == 'docs' ? (\n
    \n
    {'Plan documents'}
    \n
    \n {calendar.property.property_plan_files.map((e) => (\n \n \n
    {e.name}
    \n \n ))}\n
    \n
    \n ) : step.kind == 'potential_project_challenges' ? (\n
    \n
    {'Potential project challenges'}
    \n \n
    \n ) : step.kind == 'additional_notes' ? (\n
    \n
    {'Additional Notes'}
    \n
    \n
    \n ) : step.kind == 'deadlines' ? (\n
    \n \n
    \n {\n 'Please respond accurately. Failure to meet the indicated deadline will result in fewer project opportunities provided by Realm.'\n }\n
    \n
    \n ) : null}\n \n )}\n {error && }\n \n )\n}\n\nexport default Screening\n","import React, { FC } from 'react'\nimport ForwardToInbox from '@mui/icons-material/ForwardToInbox'\nimport { CalendarVendorContact } from './types'\nimport NewLayout from './components/NewLayout'\n\ninterface ReassignedProps {\n vendorContact: CalendarVendorContact\n}\n\nconst Reassigned: FC = ({ vendorContact }) => {\n return (\n \n \n
    \n
    \n \n
    \n

    {`Thank you! ${vendorContact.full_name} will receive an email and see a task in their portal to review and book.`}

    \n
    \n
    \n
    \n )\n}\n\nexport default Reassigned\n","import React, { FC } from 'react'\nimport EventBusy from '@mui/icons-material/EventBusy'\nimport NewLayout from './components/NewLayout'\n\nconst SiteVisitCanceled: FC = () => {\n return (\n \n \n
    \n
    \n \n
    \n
    \n

    \n {'This project is no longer available for booking. We’ll notify you as future projects become available'}\n

    \n
    \n
    \n
    \n
    \n )\n}\n\nexport default SiteVisitCanceled\n","import React, { FC } from 'react'\nimport EventBusy from '@mui/icons-material/EventBusy'\nimport NewLayout from './components/NewLayout'\n\nconst SiteVisitExpired: FC = () => {\n return (\n \n \n
    \n
    \n \n
    \n
    \n

    \n {'This project is no longer available for booking. We’ll notify you as future projects become available'}\n

    \n
    \n
    \n
    \n
    \n )\n}\n\nexport default SiteVisitExpired\n","import React, { FC } from 'react'\nimport HideSource from '@mui/icons-material/HideSource'\nimport NewLayout from './components/NewLayout'\n\nconst SiteVisitDeclined: FC = () => {\n return (\n \n \n
    \n
    \n \n
    \n
    \n

    {'Project declined'}

    \n

    \n {'We appreciate your input and hope to collaborate in the future.'}\n

    \n
    \n
    \n
    \n
    \n )\n}\n\nexport default SiteVisitDeclined\n","import React, { FC } from 'react'\nimport NewLayout from './components/NewLayout'\n\nconst SiteVisitDisqualified: FC = () => {\n return (\n \n \n
    \n
    \n

    \n {'Based on your answers, this project may not be the right fit at this time.'}\n

    \n

    \n {\n 'Thank you for taking the time to complete the survey. We appreciate your input and hope to collaborate in the future.'\n }\n

    \n
    \n
    \n
    \n
    \n )\n}\n\nexport default SiteVisitDisqualified\n","import React, { FC, useMemo } from 'react'\nimport Error from '@mui/icons-material/Error'\nimport NewLayout from './components/NewLayout'\nimport { humanize, toSentence } from 'utils/formatting'\nimport CoreButton from 'components/Core/CoreButton'\n\ninterface BlockedProps {\n projectTypes: string[]\n}\n\nconst Blocked: FC = ({ projectTypes }) => {\n const friendlyProjectTypes = useMemo(() => {\n return projectTypes.map(\n (projectType) =>\n ({\n adus: 'ADUs',\n landscaping: 'landscaping',\n hardscaping: 'hardscaping',\n kitchen_or_bathroom: 'kitchen/bathroom remodels',\n })[projectType] || `${humanize(projectType).toLowerCase()}s`\n )\n }, [projectTypes])\n\n return (\n \n \n
    \n
    \n \n
    \n
    \n

    \n {`You need at least 2 project examples in your business profile for ${toSentence(friendlyProjectTypes)} to be eligible for this site visit. Please update your profile and revisit this scheduling link once ready.`}\n

    \n
    \n \n \n \n
    \n
    \n
    \n )\n}\n\nexport default Blocked\n","// extracted by mini-css-extract-plugin\nexport default {\"impersonation\":\"KqXULLv8fwxsfoJzl0Sg\",\"vendorSiteVisit\":\"WKOSAVGg9NQqOjsHK1Bv\",\"background\":\"FLXGULt0DtmTUfmkTwRc\",\"scheduled\":\"dobg3Gi3pR0kigWmLJQb\",\"page\":\"FKi3JGhjw7NvtA8aVpYD\",\"logo\":\"qgejZgH9siUzwdfmTT_8\"};","import React, { FC, useState, useMemo, useEffect } from 'react'\nimport cx from 'classnames'\nimport dayjs from 'dayjs'\nimport utc from 'dayjs/plugin/utc'\nimport timezone from 'dayjs/plugin/timezone'\nimport { addStickyProps } from 'utils/analytics'\nimport OverlayMount from 'layouts/components/OverlayMount'\nimport PageLoad from 'non-rendering/PageLoad'\nimport PageTitle from 'components/PageTitle'\nimport RealmBusiness from 'svgs/realm-business'\nimport { Block } from './Availabilities'\nimport { Calendar, VendorSiteVisitSchedulerInnerStatus } from './types'\nimport Unscheduled from './Unscheduled'\nimport Scheduled from './Scheduled'\nimport Canceled from './Canceled'\nimport Declined from './Declined'\nimport Screening from './Screening'\nimport Reassigned from './Reassigned'\nimport SiteVisitCanceled from './SiteVisitCanceled'\nimport SiteVisitExpired from './SiteVisitExpired'\nimport SiteVisitDeclined from './SiteVisitDeclined'\nimport SiteVisitDisqualified from './SiteVisitDisqualified'\nimport Blocked from './Blocked'\nimport styles from './styles.module.scss'\n\ndayjs.extend(utc)\ndayjs.extend(timezone)\n\ninterface VendorSiteVisitProps {\n calendar: Calendar\n}\n\nconst VendorSiteVisit: FC = ({ calendar: initialCalendar }) => {\n const [calendar, setCalendar] = useState(initialCalendar)\n\n const projectTypesWithInsufficientPhotos = useMemo(() => {\n if (!calendar.current_vendor_contact.vendor_insufficient_photos_block) return []\n\n return calendar.property.project_types.filter((projectType) =>\n calendar.current_vendor_contact.vendor_project_types_with_insufficient_photos.includes(projectType)\n )\n }, [calendar])\n\n useEffect(() => {\n if (!calendar.impersonated) return\n\n addStickyProps({ impersonated: calendar.impersonated }, true)\n }, [calendar.impersonated])\n\n const availabilities = useMemo(() => {\n // eventDurationSize\n const eventDurationSize = calendar.event_duration * 60 * 1000\n // Increment size will be 30m, or if our event duration is smaller, that.\n const incrementSize = Math.max(30 * 60 * 1000, calendar.event_duration)\n // Split into even length time blocks.\n // Only allow availabilities to start and end at the top of the increment size.\n return calendar.availabilities.reduce((newAvail, block) => {\n const origStart = dayjs(block.time.start).tz(calendar.property.time_zone).toDate()\n const origEnd = dayjs(block.time.end).tz(calendar.property.time_zone).toDate()\n\n const start = Math.ceil(origStart.getTime() / incrementSize) * incrementSize\n const lastStart = origEnd.getTime() - eventDurationSize\n for (let x = start; x <= lastStart; x += incrementSize) {\n newAvail.push({\n start: dayjs(x).tz(calendar.property.time_zone).toDate(),\n end: dayjs(x + eventDurationSize)\n .tz(calendar.property.time_zone)\n .toDate(),\n })\n }\n return newAvail\n }, [] as Block[])\n }, [calendar])\n\n const status: 'unscheduled' | 'scheduled' | 'canceled' | 'declined' = useMemo(() => {\n if (calendar.event) {\n if (calendar.event.status == 'canceled') return 'canceled'\n if (calendar.event.status == 'declined') return 'declined'\n\n if (['scheduled', 'occurring', 'completed'].includes(calendar.event.status)) return 'scheduled'\n }\n\n return 'unscheduled' // Our default.\n }, [calendar])\n\n const [innerStatus, setInnerStatus] = useState(\n projectTypesWithInsufficientPhotos.length > 0\n ? 'blocked'\n : availabilities.length == 0\n ? null\n : status == 'unscheduled'\n ? calendar.property.site_visit_status == 'Canceled'\n ? 'canceled'\n : calendar.property.site_visit_status == 'Request Expired'\n ? 'expired'\n : calendar.property.site_visit_status == 'Request Declined'\n ? 'declined'\n : calendar.property.site_visit_status == 'Disqualified'\n ? 'disqualified'\n : 'screening'\n : null\n )\n\n // Scroll to the top of the page any time our status changes.\n useEffect(() => {\n try {\n window.scrollTo({ top: 0, left: 0, behavior: 'instant' } as any)\n } catch {\n // Fallback in case the above isn't supported.\n window.scrollTo(0, 0)\n }\n }, [status])\n\n // Any time our calendar changes, update CSRF\n useEffect(() => {\n if (!window) return\n document.querySelector('meta[name=csrf-param]')?.setAttribute('content', calendar.csrf_param)\n document.querySelector('meta[name=csrf-token]')?.setAttribute('content', calendar.csrf_token)\n }, [calendar])\n\n return (\n \n \n \n {calendar.impersonated && (\n
    \n {'You are now impersonating '}\n {{calendar.current_vendor_contact.email}}\n
    \n )}\n {innerStatus == 'screening' ? (\n \n ) : innerStatus == 'reassigned' ? (\n \n ) : innerStatus == 'canceled' ? (\n \n ) : innerStatus == 'expired' ? (\n \n ) : innerStatus == 'declined' ? (\n \n ) : innerStatus == 'disqualified' ? (\n \n ) : innerStatus == 'blocked' ? (\n \n ) : (\n
    \n
    \n
    \n \n
    \n {status == 'declined' ? (\n \n ) : status == 'canceled' ? (\n \n ) : status == 'scheduled' ? (\n \n ) : (\n \n )}\n
    \n
    \n
    \n )}\n \n )\n}\n\nexport default VendorSiteVisit\n","// extracted by mini-css-extract-plugin\nexport default {\"resultItems\":\"ffOwhu98PmfwEAILiuGV\",\"isLoading\":\"TpyhAp4j9n8ePWNMws0l\",\"columns3\":\"C3PzRypaAjfWfYcQY8cz\",\"columns4\":\"RPZ1w5OzoeBOQAW5IwD5\",\"resultItem\":\"jOwKXp0Fn4cQoFcYJ2WB\",\"price\":\"ohbC3wwQpK6mSwPwAu4G\",\"details\":\"N2tsvJrx7ggzWia4a_B4\"};","import React from 'react'\n\nimport Bath from 'svgs/bath'\nimport Bed from 'svgs/bed'\nimport cx from 'classnames'\nimport { ProjectItem } from 'pages/_serverRendered/landing/ContractorsNearMe'\nimport styles from './styles.module.scss'\nimport { formatCurrency } from 'utils/formatting'\nimport ImageWithBackup from 'components/ImageWithBackup'\nimport DefaultAvatar from 'components/DefaultAvatar'\n\ninterface Props {\n label: string\n projects: ProjectItem[]\n loading: boolean\n columns?: number\n}\n\nconst ProjectListings: React.FC = ({ projects = [], loading, columns }) => {\n if (projects.length === 0 && !loading) return null\n\n return (\n
    \n {projects.map((result, i) => {\n if (!result) {\n return
    \n }\n return (\n
    \n \n }\n />\n }\n />\n
    {result.display_address}
    \n
    \n
    \n {'Home value: '}\n {formatCurrency(result.value)}\n
    \n
    \n
    \n
    {result.bedroomscount}
    \n \n
    \n
    \n
    {result.bathcount}
    \n \n
    \n
    {`${result.areabuilding} sqft`}
    \n
    \n
    \n )\n })}\n
    \n )\n}\n\nexport default ProjectListings\n","// extracted by mini-css-extract-plugin\nexport default {\"pageContainer\":\"_WCAd3z1cc5snG9wBqPu\",\"contentContainer\":\"ZxWZnP3gDOQfB7N1RIVh\",\"header\":\"_h_GreT5J0l3L6OCmW_Q\",\"subheader\":\"kDeXaZBtMeAje0CG20FG\",\"linksContainer\":\"gUv7RjvG5FwDgwDLeSfW\",\"pagesContainer\":\"ODNu4pkuRIvKPrhMEQbG\"};","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"L_6LJEXB1SyWDv4ePyXB\",\"search\":\"_poIFZrISisGYGIfzuJD\",\"pricing\":\"qjXXxH7pZZjEF2qqXjMe\",\"costs\":\"A7kFVjG1dDTAyXvocidu\",\"description\":\"udEoxUXo3YoyWAQNDPXK\",\"cost\":\"Mi6wAiTavJowxIeXPGiA\",\"button\":\"wnycY6e40eTjFmSSntmt\"};","import AddressAutocomplete from 'components/MarketingSite/Header/AddressAutocomplete'\nimport ProjectListings from 'pages/_serverRendered/landing/ContractorsNearMe/ProjectListings'\nimport React, { FC, useCallback, useState } from 'react'\nimport { ProjectTemplate } from 'recoil/projectTemplates'\nimport { getJSON } from 'utils/fetch'\nimport { formatMoneyNoDecimals, titleCase } from 'utils/formatting'\nimport Header from 'components/MarketingSite/Header'\nimport publicPageStyles from 'pages/_serverRendered/Public/styles.module.scss'\nimport Footer from 'components/MarketingSite/Footer'\nimport GetRealmScoreCTA from 'pages/_serverRendered/PublicNeighborhood/GetRealmScoreCTA'\nimport cx from 'classnames'\nimport Spinner from 'components/Spinner'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n contractor_label: string\n contractor_type: string\n project_label: string\n projects: ProjectItem[]\n contractors: ContractorItem[]\n}\n\ninterface ContractorsResponse {\n contractors: ContractorItem[]\n projects: ProjectItem[]\n project_costs: ProjectCost[]\n}\n\ninterface ProjectCost {\n project_template: ProjectTemplate\n cost_estimate_high: number\n cost_estimate_low: number\n}\n\nexport interface ProjectItem {\n id: string\n url: string\n image_url: string\n backup_image_url: string\n display_address: string\n bedroomscount: number\n bathcount: number\n areabuilding: number\n value: number\n contract_value: number\n project_date: string\n}\n\ntype ContractorItem = { contractor: string; propertyaddresscity: string; propertyaddressstate: string }\n\nconst ContractorsNearMe: FC = ({\n contractor_label,\n project_label,\n contractor_type,\n contractors: initialContractors,\n projects: initialProjects,\n}) => {\n const [contractors, setContractors] = useState(initialContractors)\n const [projects, setProjects] = useState(initialProjects)\n const [projectCosts, setProjectCosts] = useState([])\n const [isLoading, setIsLoading] = useState(false)\n const [hasError, setHasError] = useState(false)\n const [hasAddress, setHasAddress] = useState(false)\n\n const onPredictionSelected = useCallback(\n async ({ place_id }: Record) => {\n setIsLoading(true)\n setHasError(false)\n setHasAddress(true)\n\n try {\n const response = await getJSON(\n `/api/v1/contractors?contractor_type=${contractor_type}&place_id=${place_id}`\n )\n\n if (response.contractors != null) {\n setContractors(response.contractors)\n }\n\n if (response.projects != null) {\n setProjects(response.projects)\n }\n\n if (response.project_costs != null) {\n setProjectCosts(response.project_costs)\n }\n } catch (error) {\n setHasError(true)\n setHasAddress(false)\n }\n\n setIsLoading(false)\n },\n [contractor_type]\n )\n\n // Convert label to lower case unless it's all caps (i.e. an acronym)\n const projectLabelLowercase =\n project_label.toUpperCase() === project_label ? project_label : project_label.toLowerCase()\n\n return (\n
    \n
    \n
    \n
    \n
    \n

    {`${contractor_label} near me`}

    \n

    \n {\n 'Finding the right contractor for your home project can feel overwhelming. Who should you hire? How do you know who to trust? Who will get the job done on time and within your budget? One good place to start: neighbors who recently completed similar projects. Those neighbors may be able to make recommendations (or help you steer clear of a subpar vendor). Plus, if they recommend someone who has completed several jobs in your area, that contractor is more likely to know your local building codes and regulations. Knowing which neighbors have recently completed similar projects in your neighborhood can be the first step toward finding the right person for the job.'\n }\n

    \n
    \n {' '}\n {(projectCosts.length > 0 || isLoading) && (\n
    \n {isLoading ? (\n \n ) : hasError ? (\n \n ) : (\n projectCosts.map((projectCost) => (\n
    \n

    {projectCost.project_template.name}

    \n

    {projectCost.project_template.description}

    \n

    {`${formatMoneyNoDecimals(\n projectCost.cost_estimate_low\n )} - ${formatMoneyNoDecimals(projectCost.cost_estimate_high)}`}

    \n
    \n ))\n )}\n
    \n )}\n \n {'Sign up to see project ROI for your property'}\n \n
    \n
    \n

    {`Recent ${projectLabelLowercase} projects${hasAddress ? ' near me' : ''}`}

    \n \n
    \n
    \n

    {`Top ${projectLabelLowercase} contractors${hasAddress ? ' near me' : ''}`}

    \n {isLoading ? (\n \n ) : hasError ? (\n \n ) : (\n
      \n {contractors.map((contractor, index) => (\n
    • \n

      {contractor.contractor}

      \n

      \n {titleCase(contractor.propertyaddresscity)}\n {', '}\n {contractor.propertyaddressstate}\n

      \n
    • \n ))}\n
    \n )}\n
    \n
    \n \n
    \n
    \n )\n}\n\nconst LoadingState = () => (\n
    \n \n
    \n)\nconst ErrorState = () => <>{'Error'}\n\nexport default ContractorsNearMe\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"xDA56lm6qQGVWi4MosSa\",\"bar\":\"pQtFTxjKUbSKUJosOqxz\",\"labels\":\"nvQYXpXlPn4nqaSRlszd\",\"totalLabel\":\"VYyIZWq7JvrmEzUk1Eo5\",\"emptyState\":\"kKY3Ex8HKJabymCvGWV6\"};","import cx from 'classnames'\nimport React, { FC, PropsWithChildren, ReactNode } from 'react'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n barClassName?: string\n labelClassName?: string\n valueLabelClassName?: string\n totalLabelClassName?: string\n value: number\n total: number\n valueLabel?: ReactNode\n totalLabel?: ReactNode\n}\n\nconst BarChartSimple: FC = ({\n className,\n barClassName,\n labelClassName,\n valueLabelClassName,\n totalLabelClassName,\n valueLabel,\n totalLabel,\n value,\n total,\n}) => {\n // Don't show the fill if we have no width (no calculated value)\n // Additionally (below) we will ensure the fill % always at least fills the\n // border-radius amount; otherwise it looks glitchy.\n const width = Math.min((value / total) * 100, 100)\n return (\n
    \n {width > 0 ? (\n
    \n ) : null}\n
    \n
    {valueLabel ?? value}
    \n
    {totalLabel ?? total}
    \n
    \n
    \n )\n}\n\nexport const EmptyState: FC> = ({\n children,\n className,\n labelClassName,\n}) => (\n
    \n
    \n
    {children}
    \n
    \n
    \n)\n\nexport default BarChartSimple\n","// extracted by mini-css-extract-plugin\nexport default {\"card\":\"Vjvo7ATkZP9ApdeBhxwI\",\"ctaContainer\":\"elDqnxIznoliZVRs2ukH\",\"cardSubheader\":\"mD556tNfgJARJCqcs7RX\",\"cardHighlight\":\"MMbZklChjz31rAFlXyzQ\",\"cardHighlightHome\":\"C31bLlZds8Zwl12W_Vo_\",\"cardHeader\":\"lf2eP_iM2DoZGmhtxA8A\",\"realmScoreHeader\":\"DLhXU3fKSp7egikYXHlg\",\"valueLabel\":\"mrSKIZAGq30bfFQZr6Co\",\"scoreLabel\":\"rK6rXkp7mgUd3d1MnlG9\"};","import ArrowCircleDown from 'svgs/arrow-circle-down'\nimport { generateIndexedUrlPathForPublicProperty } from 'utils/publicProperty'\nimport React, { FC, PropsWithChildren } from 'react'\nimport { formatAddressCasing, formatCurrency, formatOrdinal, formatPublicPropertyAddress2nd } from 'utils/formatting'\n\nimport styles from './styles.module.scss'\nimport { PublicPropertyAvatar } from 'components/PropertyAvatar'\n\ninterface ComparisonProps {\n ctaHref: string\n label: 'Value' | 'Potential'\n otherValue: number\n otherTaxAssessor: AttomTaxAssessor\n position: number\n}\n\nconst Comparison: FC> = ({\n children,\n ctaHref,\n label,\n otherValue,\n otherTaxAssessor,\n position,\n}) => {\n return (\n
    \n
    \n
    \n {label === 'Value' ?

    {'Current Value'}

    : label === 'Potential' ?

    {'Potential Value'}

    : null}\n
    \n {'Ranked '}\n {formatOrdinal(position)}\n {' out of '}\n {'100'}\n {' homes'}\n
    \n
    \n {children}\n
    \n \n \n
    \n )\n}\n\nexport default Comparison\n","// extracted by mini-css-extract-plugin\nexport default {\"homeValuesNearMe\":\"LC6t5rz9tom6UtUtnmMh\",\"pageContent\":\"VvMmTR6J4HHO1rZosUJT\",\"sidebar\":\"M19uwqFbH7huS2cUeuH1\",\"intro\":\"RTVi4eL0fibCoEVtKYjH\",\"introTitle\":\"mQHf5GiZBoQT_siQc4B0\",\"addressAutocompleteFieldContainer\":\"_W03IsWIeZnhpzhzgiqd\",\"addressAutocompleteField\":\"GVB5ym7X9C6ONWGyOIxw\",\"mutedIntro\":\"RBCMNucequ52jdtNx7Uo\",\"sampleProperty\":\"WjO8JjHj754eUBrUcaZo\",\"section\":\"gZbkvouOpHOpuN4osv3p\",\"propertyHeader\":\"fdP2lOqqHRT_1sVUxLVZ\",\"cardsContainer\":\"SIy7pTXdkh52KHp31YAL\",\"barChartSimple\":\"OVW7NGxAK600b74rsIcg\",\"barChartSimpleBar\":\"FyUEfxcYx0gDzqJXwy1A\",\"barChartSimpleBarScore\":\"Pp0V6QjV9KuykLTn26bF\",\"potentialValueLabel\":\"rFqj9ViKxFW5pa363khh\",\"blackTotalLabel\":\"tCJnIejujjDxwSm4zeMd\",\"specialCard\":\"dtbcdEF4xiF8cAC9g1TT\",\"rank\":\"TqhBWTZGTOWNfCek6PSH\",\"copy\":\"A2RFflr04zIe1QPTcK_g\"};","import AddressAutocompleteField from 'pages/_serverRendered/CmsPage/AddressAutocompleteField'\nimport ArrowCircleDown from 'svgs/arrow-circle-down'\nimport BarChartSimple from 'components/BarChartSimple'\nimport Comparison from 'components/MarketingAndPropertyPages/Compare/Comparison'\nimport { formatAddressCasing, formatCurrency, formatPublicPropertyAddress2nd } from 'utils/formatting'\nimport Footer from 'components/MarketingSite/Footer'\nimport Header, { calculateNavItems } from 'components/MarketingSite/Header'\nimport { PublicPropertyPotential, PublicPropertyFullRelativeStats } from 'recoil/publicProperty'\nimport React, { FC, useCallback, useEffect, useMemo, useState } from 'react'\nimport Modal, { ModalButton } from 'components/NewModal'\nimport OverlayMount from 'layouts/components/OverlayMount'\nimport { trackPage } from 'utils/analytics'\nimport { StyledText } from 'components/MarketingAndPropertyPages/StyledRichText'\n\nimport styles from './styles.module.scss'\nimport { PublicPropertyAvatar } from 'components/PropertyAvatar'\nimport { GooglePlacesUnavailableResult, searchGooglePlaces } from 'apis/googlePlaces'\n\ninterface HomeValuesNearMeProps {\n public_property: {\n avm: AttomAvm\n potential: PublicPropertyPotential\n public_property: AttomTaxAssessor\n full_relative_stats: PublicPropertyFullRelativeStats\n }\n sample: boolean\n}\n\nconst HomeValuesNearMe: FC = ({ public_property: publicProperty, sample: isSample }) => {\n const [isLoading, setIsLoading] = useState(false)\n const [unsupportedResponse, setUnsupportedResponse] = useState()\n\n const handleModalClose = useCallback(() => {\n setUnsupportedResponse(undefined)\n setIsLoading(false)\n }, [])\n\n const handlePredictionSelected = useCallback(async (queryParams: Record) => {\n setIsLoading(true)\n const queryString = new URLSearchParams(queryParams).toString()\n const response = await searchGooglePlaces({ queryString })\n if (response.unavailable) {\n setUnsupportedResponse(response)\n } else {\n window.location.href = response.public_property_path\n }\n }, [])\n\n const modalButtons = useMemo(() => {\n const result: ModalButton[] = [{ name: 'Try another property' }]\n if (unsupportedResponse && unsupportedResponse.public_property_path) {\n result.push({ name: 'View property details', href: unsupportedResponse.public_property_path, secondary: true })\n }\n return result\n }, [unsupportedResponse])\n\n useEffect(() => {\n trackPage('Compare')\n }, [])\n\n return (\n \n
    \n
    \n
    \n
    \n
    \n

    {'How does your home compare?'}

    \n

    \n {\n 'Use our neighborhood calculator to explore home values near you and see how your current and potential value stacks up to the 100 houses nearest to you.'\n }\n

    \n \n

    \n \n {\n 'We currently cover standalone, single family homes in all 50 states, but not in every county. Check our '\n }\n \n \n {'coverage map'}\n \n {' for more details on this county.'}\n

    \n
    \n {isSample && (\n
    \n

    {'Sample Property'}

    \n {'Find out how this home compares by entering a property address above.'}\n
    \n )}\n
    \n
    \n
    \n
    \n

    {formatAddressCasing(publicProperty.public_property.propertyaddressfull)}

    \n

    {formatPublicPropertyAddress2nd(publicProperty.public_property)}

    \n
    \n \n
    \n
    \n {publicProperty.avm.estimatedvalue && publicProperty.potential.potential_value && (\n <>\n \n \n

    {'Our estimate of the value of this home today based on hundreds of attributes.'}

    \n \n \n \n

    {'Our estimate of how much this home could be worth with various upgrades.'}

    \n \n \n )}\n
    \n \n {'Learn more about this property'}\n \n \n
    \n
    \n

    \n {\n 'Think you should rank higher? After creating a free account, you can share more details about this property and we will recalculate your ranking. Our data sources are refreshed on a daily basis.'\n }\n

    \n \n
    \n

    \n {'Why do home values near me matter?'}\n

    \n
    \n
    \n

    \n {\n 'A home is a huge financial investment and getting the most out of that investment depends on you understanding your home value — and the factors that impact it. Even if you do everything you can to maximize the value of your own home, there are still external factors like location, crime statistics, and yes, your neighbors that can influence how much your home is worth. Yup, that’s right. Home values near you can affect how much your home is worth. '\n }\n

    \n

    \n {\n 'But why do your neighbors’ homes matter? Let’s explore the ways that nearby home values can play into your home’s potential valuation.'\n }\n

    \n
    \n
    \n
    \n
    \n

    \n {'What is home value?'}\n

    \n
    \n
    \n

    \n {\n 'Essentially, your home value is how much the property is worth, but this is a flexible and variable figure that changes over time. So how is this number calculated? Of course, certain factors like the house’s age, appearance, location, and amenities all play into figuring out home value. But you also want to keep in mind who exactly is figuring out the value because that can also impact the number. '\n }\n

    \n

    \n {\n 'Home value is typically measured in three different ways. First, there is the fair market value which, simply put, is how much you would get for your home if you sold it on the open market. Secondly comes appraised value, which mortgage lenders use to figure out just how much you can borrow. This is often a lower figure than the fair market value and involves an inspection by a professional appraiser. Lastly, your home’s assessed value is determined by your local tax assessor. This, too, is typically a lower number than the fair market value, and it is used to figure out just how much you’ll owe in property taxes. '\n }\n

    \n

    \n {\n 'But why does all this matter, especially if you aren’t thinking about selling your home? The reality is that for most Americans, their home represents 62% of their total financial assets. Knowing your home value can give you a good idea of how much money you may get if you sell or how much money you might be able to access by refinancing or borrowing against your equity. '\n }\n

    \n

    \n {\n 'Luckily, unlike most large purchases, like a car which rapidly depreciates, homes are likely to appreciate over time. Knowing your home’s value can help you use your asset as a financial tool. For example, say you want to renovate your property. You could '\n }\n \n {'refinance the mortgage'}\n \n {\n ' or obtain a home equity line of credit to secure the funds to do so. This allows you to use the current value of the home to your advantage. Not to mention that a renovation could add value to the home over time — further increasing your asset. Realm’s free dashboard can help you figure out '\n }\n \n {'how much a project will cost'}\n \n {' and just '}\n \n {'how much value'}\n \n {' you would add after the renovation is complete. '}\n

    \n
    \n
    \n
    \n
    \n

    \n {'What impacts home value?'}\n

    \n
    \n
    \n

    \n {\n 'Since purchasing a home is such a significant financial milestone for most people, knowing what will impact the present and future value of your home can give you a good idea of what to expect down the line.'\n }\n

    \n

    \n {\n 'Depending on how long you’ve owned your home, the past resale value might be more or less relevant. If you purchased recently, this might weigh more heavily, but either way, the home’s sale history can give you an idea of how attractive your local real estate market is to buyers. '\n }\n

    \n

    \n {\n 'Within your property, age and condition of the house matter. A home’s layout and design, as well as the quality of materials used in construction, all play a part. Peeling paint, warped siding, and cracked foundations are all issues that can be easily fixed without a massive investment. However, even if a home is somewhat older, a pristine exterior, attractive landscaping, and a modern interior will do quite a bit for the property’s overall value. Staying up to date on basic home maintenance is one way to keep your home’s value rising. '\n }\n

    \n

    \n {\n 'The size of and amenities within the home are also crucial factors. The home’s square footage has a large impact, as does how the space is used. Things like a finished attic or basement can be attractive to buyers and add value to smaller homes that are seeking to maximize their square footage. The home’s appliances are also factored in. If by some miracle your avocado green fridge from the 1970s is still running and you’re looking for ways to boost your home value, it might be time for a newer model. '\n }\n

    \n

    \n {\n 'Outside the property lines, location plays a crucial role in your home value. If you’re living in a large city, you’re likely in a highly desirable market, and your home will be worth more than if it’s in a sparsely populated area. Things like the quality of public transit or ease of access to shopping and entertainment are often better in larger cities. However, if you live in a city that is prone to floods, fires, or other natural disasters, your home values might suffer a bit, even if it’s a popular location. '\n }\n

    \n

    \n {\n 'On a more micro level, the specifics of your neighborhood can also affect home values. What are the crime rates like? Is the school district highly sought after? Taxes can also have a variable effect. Although higher property taxes can indicate a good neighborhood (since the money supports local infrastructure, schools, fire departments, etc.), if the rates get too high, it can send buyers looking for lower-cost options elsewhere. '\n }\n

    \n

    \n {\n 'Finally, the sale prices of similar homes in the area can also increase or decrease your home value. If your home is in a hot real estate market with nearby homes getting snapped up left and right, this is likely to boost your value, while areas with slower selling, less popular properties could see a slight depression. '\n }\n

    \n
    \n
    \n
    \n
    \n

    \n {'How do home values near me affect my home value?'}\n

    \n
    \n
    \n

    \n {\n 'Your neighbors’ home values are important because they impact your own home value. Small things like an unkempt lawn here or there are not likely to cause a long-lasting drop in your home value. But if you’re the only maintained home on the block, that’s likely to have a negative effect on your property’s valuation. Although it may not seem fair, this is due to the external factors that are considered when calculating a home’s value. A run-down neighborhood is not going to be attractive to potential buyers, so the houses will, naturally, score far lower than homes on a manicured cul-de-sac a few short miles away.'\n }\n

    \n

    \n {\n 'Beyond mild disrepair, if your neighbors are suffering financially, you might see your property value take a hit. The surest sign of this is foreclosures. If foreclosures are cropping up in your neighborhood, this probably signals a decline in your home value. If the foreclosed structure is also vacant or abandoned, this will amplify the negative consequences. '\n }\n

    \n

    \n {\n 'Aside from cosmetic and financial problems, if some of your neighbors have criminal backgrounds, it could take a bite out of your home value. Even if your neighbors haven’t run afoul with the law, if they tend to host loud parties and raucous events, this can also damage the resale value of your home. Many neighborhoods have homeowners’ associations (HOAs) to address these issues directly. '\n }\n

    \n
    \n
    \n
    \n
    \n

    \n {'What do comps reveal about home values near me?'}\n

    \n
    \n
    \n

    \n {\n 'When you start exploring your home value, a term that will likely surface is a real estate comp, or comparable. This refers to recently sold homes in your specific area that are comparable to your home. A comp will have similar statistics to your own home, like being of a similar age, having the same number of bedrooms and bathrooms, or the same square footage. Comps are mainly used to determine your home’s value at the moment, so it’s important to use comps that have sold recently. A few months can make a big difference, especially since seasonal buying is a very real trend; summer markets tend to be hotter than the winter months (no pun intended). '\n }\n

    \n

    \n {\n 'Naturally, since all homes have unique quirks and features, a comp can’t be the same as your home in every way, and comps can have different square footage or be in different conditions. What really matters is the proximity to your home and just how long ago it was sold. Comps can give you a realistic idea of what your home is worth in the current market. '\n }\n

    \n
    \n
    \n
    \n
    \n

    \n {'How does Realm use comps?'}\n

    \n
    \n
    \n

    \n {\n 'As mentioned earlier, there are a multitude of ways to figure out your home’s value. You can consult an appraiser or rely on the tax assessor, but either way you go, you’re facing different motivations and predispositions that can either artificially inflate or deflate the value. Rather than rely on a certain individual’s opinions, Realm uses an automated valuation model (AVM), which calculates your home value by aggregating large amounts of data. Because it relies on data, Realm’s AVM removes human biases and subjective opinions from the equation. '\n }\n

    \n

    \n {\n 'This doesn’t mean that comps are irrelevant with Realm’s AVM. On the contrary, Realm uses far more data than a traditional appraiser would, gathering over 600 data points per property to determine your home’s up-to-date value. Realm’s AVM takes recent sales and adjacent property values into account when determining your home’s value. Your free Realm dashboard can also show you comparable homes and their value. '\n }\n

    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {unsupportedResponse && (\n \n

    \n {\"We're currently working on supporting all our properties to compare. Check back as we continue to add!\"}\n

    \n
    \n )}\n
    \n
    \n )\n}\n\nexport default HomeValuesNearMe\n","// extracted by mini-css-extract-plugin\nexport default {\"title\":\"W3qP21uWZN_wGrn_XTHh\",\"section\":\"egEEK7TGDez_lW7NBQS6\",\"nav\":\"hIVHRr0WiLFyiE40iqzV\",\"introTitle\":\"xsg11fQ2LlG4CHTmLTgE\",\"search\":\"GRC7CfgDOSv34BYXvjgN\",\"pageContent\":\"VPsY3Aw14a2KyEptMkZM\",\"hero\":\"pYqET_38jEsApAIP3TOj\",\"properties\":\"DskRiyhw5E6ix7d_O2vU\",\"property\":\"InwmAbx7XaUyG5R5YqKW\",\"propertyInner\":\"XY6EA10lpEunOK1rAhol\",\"propertyCity\":\"_TyEtrT0dVI5Tp0cHtSw\",\"propertySpacer\":\"xdsAGn5xWcKni6M6XySg\",\"propertyChart\":\"pnA3LGf_HDdj5URzxLkN\",\"propertyBar\":\"tJa8hjQA9xcGVgLPjtfS\",\"propertyLabels\":\"KPC8Ratw7CaxH7iPVSKT\",\"getStarted\":\"hyO_i3Y2ptX_oMi6BJNl\",\"propertyPotential\":\"os_Pj4y748MtlJoQL1OC\"};","import Hero from 'pages/_serverRendered/Homepage/Hero'\nimport AddressAutocompleteField from 'pages/_serverRendered/CmsPage/AddressAutocompleteField'\nimport React, { FC, useEffect, useState } from 'react'\n\nimport AddressAutocomplete from 'components/MarketingSite/Header/AddressAutocomplete'\nimport AtlantaImg from 'images/marketing/property-potential/atlanta.jpg'\nimport AustinImg from 'images/marketing/property-potential/austin.jpg'\nimport Footer from 'components/MarketingSite/Footer'\nimport GetStarted from 'pages/_serverRendered/Homepage/GetStarted'\nimport Header from 'components/MarketingSite/Header'\nimport LosAngelesImg from 'images/marketing/property-potential/los-angeles.jpg'\nimport SeattleImg from 'images/marketing/property-potential/seattle.jpg'\nimport { formatCurrency } from 'utils/formatting'\nimport styles from './styles.module.scss'\nimport { trackPage } from 'utils/analytics'\n\nconst highlightedProperties = [\n {\n city: 'Seattle',\n value: 659542,\n potential: 1119653,\n img: SeattleImg,\n href: '/wa/seattle/915-n-109th-st-seattle-wa-98133/47814848/preview',\n },\n {\n city: 'Austin',\n value: 477757,\n potential: 594859,\n img: AustinImg,\n href: '/tx/austin/11718-big-trl-austin-tx-78759/167944644/preview',\n },\n {\n city: 'Atlanta',\n value: 486984,\n potential: 729378,\n img: AtlantaImg,\n href: '/ga/atlanta/1534-berkeley-ln-ne-atlanta-ga-30329/151478759/preview',\n },\n {\n city: 'Los Angeles',\n value: 763579,\n potential: 1138483,\n img: LosAngelesImg,\n href: '/ca/inglewood/2429-w-78th-pl-inglewood-ca-90305/24392023/preview',\n },\n]\n\nconst PropertyPotential: FC = () => {\n const [heroInputVisible, setHeroInputVisible] = useState(false)\n\n useEffect(() => {\n trackPage('PropertyPotential')\n }, [])\n\n return (\n
    \n
    \n {heroInputVisible ?
    : }\n
    \n
    \n \n

    \n {'Look up your address to see what your home '}\n {'could'}\n {' be worth.'}\n

    \n \n \n
    \n {highlightedProperties.map((highlightedProperty) => (\n \n
    \n
    {highlightedProperty.city}
    \n
    \n
    \n \n
    \n
    {formatCurrency(highlightedProperty.value)}
    \n
    {formatCurrency(highlightedProperty.potential)}
    \n
    \n
    \n
    \n \n ))}\n
    \n
    \n \n
    \n
    \n )\n}\n\nexport default PropertyPotential\n","import { SignupFormUserStub } from 'pages/_serverRendered/EventSignup/SignupForm'\nimport { useCallback } from 'react'\nimport { atom, selector, useResetRecoilState } from 'recoil'\nimport { postJSON } from 'utils/fetch'\nimport { sessionStorageEffect } from 'utils/recoil'\n\nexport interface EventsAe {\n id: string\n name: string\n admin_user_id: number\n calendly_link: string | null\n}\n\nexport type EventSignupMode =\n | 'user-info'\n | 'schedule-meeting'\n | 'prompt-download'\n | 'user-notes'\n | 'prompt-meeting'\n | 'prompt-notes'\n | 'thanks'\n\nexport interface EventsProps {\n events_team_members: string[] | null\n sales_events: EventsEvent[]\n webview: boolean\n calendly_url: string\n aes: EventsAe[]\n packages: EventsPackage[]\n project_types: string[]\n}\n\nexport type EventsMode = 'meeting' | 'deposit' | 'just-info'\n\nexport interface EventsPackage {\n id: number\n name: string\n price_in_dollars: number\n}\n\ninterface PackagePurchaseRequest {\n package_id: number\n user_id?: number\n user_email?: string\n custom_price_in_cents?: number\n admin_user_id: number\n property_id?: number\n}\n\ninterface PurchaseSuccess {\n isError: false\n redirect_url: string\n}\n\ninterface PurchaseFailure {\n isError: true\n errors: Record\n}\n\ninterface EventsEvent {\n name: string\n event_type: 'home_show' | 'community_event' | 'conference' | null\n event_category:\n | 'real_estate_event'\n | 'home_show'\n | \"farmer's_market\"\n | 'community_event'\n | 'retail_popup'\n | 'sporting_event'\n | null\n}\n\ntype PackagePurchaseResponse = PurchaseSuccess | PurchaseFailure\n\nexport const eventsSelectedPackageState = atom({\n key: 'eventsSelectedPackageState',\n default: null,\n})\n\nexport const eventsSelectedPackagePriceInDollarsState = atom({\n key: 'selectedPackagePriceInDollars',\n default: null,\n})\n\nexport const eventsAddedUserState = atom({\n key: 'eventsAddedUserState',\n default: null,\n effects_UNSTABLE: [sessionStorageEffect('eventAddedUser', 12)],\n})\n\nexport const eventAdditionalNotesState = atom({\n key: 'eventAdditionalNotesState',\n default: '',\n effects_UNSTABLE: [sessionStorageEffect('eventAdditionalNotes', 12)],\n})\n\nexport const eventsAeSelectedModeState = atom({\n key: 'eventsAeSelectedModeState',\n default: '',\n effects_UNSTABLE: [sessionStorageEffect('eventsAeSelectedModeState', 12)],\n})\n\nexport const eventsSelectedModeState = atom({\n key: 'eventSelectedModeState',\n default: 'user-info',\n effects_UNSTABLE: [sessionStorageEffect('eventsSelectedModeState', 0.1)],\n})\n\nexport const eventsCreatingPropertyTokenState = atom({\n key: 'eventsCreatingPropertyTokenState',\n default: '',\n})\n\nexport const eventsPropsState = atom({\n key: 'eventsPropsState',\n default: null,\n})\n\nexport const eventsSelectedAeIdState = atom({\n key: 'eventsSelectedAeIdState',\n default: '',\n effects_UNSTABLE: [sessionStorageEffect('eventsSelectedAeIdState', 12)],\n})\n\nexport const eventSelectedTeamMemberState = atom({\n key: 'eventSelectedTeamMemberState',\n default: '',\n effects_UNSTABLE: [sessionStorageEffect('eventSelectedTeamMemberState', 12)],\n})\n\nexport const eventsSelectedAeSelector = selector({\n key: 'eventsSelectedAeSelector',\n get: ({ get }) => {\n const id = get(eventsSelectedAeIdState)\n if (!id) return null\n\n const props = get(eventsPropsState)\n if (!props) return null\n\n const { aes } = props\n if (!aes) return null\n\n return aes.find((x) => x.id.toString() == id) || null\n },\n})\n\nexport const eventsSelectedMarketState = atom({\n key: 'eventsSelectedMarketState',\n default: '',\n effects_UNSTABLE: [sessionStorageEffect('eventsSelectedMarketState', 12)],\n})\n\nexport const purchasePackage = async (request: PackagePurchaseRequest): Promise => {\n const response = await postJSON(`/api/v1/packages/${request.package_id}/purchase`, request as any)\n\n if (response.isError) {\n return { isError: true, errors: response.jsonBody }\n } else {\n return { isError: false, ...response.jsonBody }\n }\n}\n\nexport const useResetEventOnboarding: () => () => void = () => {\n const resetAddedUser = useResetRecoilState(eventsAddedUserState)\n const resetSelectedMode = useResetRecoilState(eventsAeSelectedModeState)\n const resetSelectedPackage = useResetRecoilState(eventsSelectedPackageState)\n const resetSelectedPrice = useResetRecoilState(eventsSelectedPackagePriceInDollarsState)\n\n return useCallback(() => {\n resetAddedUser()\n resetSelectedMode()\n resetSelectedPackage()\n resetSelectedPrice()\n }, [resetAddedUser, resetSelectedMode, resetSelectedPackage, resetSelectedPrice])\n}\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst Svg: FC = ({ className }) => (\n \n \n \n \n \n \n)\n\nexport default Svg\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst Svg: FC = ({ className }) => (\n \n \n \n \n \n \n \n \n \n)\n\nexport default Svg\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst Svg: FC = ({ className }) => (\n \n \n \n)\n\nexport default Svg\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst Svg: FC = ({ className }) => (\n \n \n \n)\n\nexport default Svg\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst Svg: FC = ({ className }) => (\n \n \n \n \n \n \n)\n\nexport default Svg\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst Svg: FC = ({ className }) => (\n \n \n \n)\n\nexport default Svg\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst Svg: FC = ({ className }) => (\n \n \n \n)\n\nexport default Svg\n","import React, { FC } from 'react'\n\ninterface Props {\n className?: string\n}\n\nconst Svg: FC = ({ className }) => (\n \n \n \n \n \n \n)\n\nexport default Svg\n","// extracted by mini-css-extract-plugin\nexport default {\"accordion\":\"qxbnmitY72hP15mE_bLu\",\"itemContainer\":\"HkZFwKMm0eH_aoP8wtF2\",\"image\":\"i9WwPmmLsUIwaQQJ3Kbu\",\"item\":\"iA9FctfL1_InHfFyxn1S\",\"selected\":\"vjJd4rDTYGbwcyVS4oCw\",\"content\":\"wzE3JejcK6NBMpaSpsZs\",\"header\":\"HNaeTrHxNRUlzbuBg3Zy\",\"body\":\"TYZ4bpHim5kdKiQvSkPJ\",\"subtitle\":\"nJzqah9K1JI4S_0QNRjA\",\"button\":\"felNgFz3P5OChc8pWDw6\"};","// extracted by mini-css-extract-plugin\nexport default {\"page\":\"H3vPF36Um8pF6V0lxQP8\",\"wrapper\":\"Yvlh8HXdaGuIBQwAbq2k\",\"legal\":\"BR98GZUIvN6ypO0fQRqW\"};","// extracted by mini-css-extract-plugin\nexport default {\"homeSearch\":\"TP28q1zpjbQWQQ1CReLI\",\"options\":\"eqkSNKT5L7DMW_JRa8AB\",\"selectWrapper\":\"BM6RFzMgYmAt9I7K6lYV\",\"arrow\":\"BePBFcz2E8jQMB_lkjef\",\"results\":\"XCyxC49MUJCc0A2PAeWc\",\"loading\":\"AZBc4LJWySNKEA1j9yyc\",\"pagination\":\"VkkfUoEFbTxbfFu8JSUo\",\"pageLinks\":\"hTB7ZegkT7eqLmUQR6Ym\",\"paginationButton\":\"ellb_eueUMiYUDMJYfTF\",\"pbActive\":\"wgdN9D_ixNNHZqbyeApf\",\"next\":\"AbK9cMFhK501UCNhOoG4\",\"overflowButton\":\"KXbu0pfXjyXy62FmUfv4\",\"empty\":\"jDBgvTKwyAANo4rapDpm\",\"resultItems\":\"HGlu9WeHy4z6Deht2ChP\",\"isLoading\":\"GuBg_ZDxc_ylBMROWR03\",\"columns4\":\"nJdKoIC88FGcRc6FywqE\",\"resultItem\":\"LIcHfHbpYWkRqRwSjwVT\",\"avatar\":\"VVb3zBLX3x7yCMV5tJsO\",\"address\":\"PEI9mouBeWaLxA4Gvg8W\",\"price\":\"zQAQBP1_YXyc1VUmS1hs\",\"details\":\"_Pgg2QXtD5ojgyNZ6xvx\"};"],"names":["avatarUrl","name","className","src","alt","children","open","setOpen","width","dialogPanelRef","Root","show","as","Fragment","onClose","Child","enter","enterFrom","enterTo","leave","leaveFrom","leaveTo","Panel","ref","links","map","link","key","destination_url","href","label","other","index","selectedIndices","title","toggleIndex","handleClick","useCallback","itemContainer","selected","includes","type","button","onClick","item","preopen","preselectedItems","setSelectedIndices","useState","filter","e","accordion","cta","id","target","event","preventDefault","module","window","focus","location","StyledText","richText","dataReplacements","htmlSerializer","element","content","data","replaced","value","RichText","render","imageSrc","image","items","preselectedItem","Accordion","A","AccordionItem","srcSet","header","body","Cta","BlogItem","author","authorImageSrc","postImageSrc","cards","length","card","itemScope","itemProp","itemType","footer","Markdown","SectionContent","contentType","Faq","navItem","cardBackgroundColor","section","overflow","slug","options","wrapper","Intro","hero","navItems","useMemo","sections","reduce","intro","forwardRef","disabled","props","WISTIA_SCRIPT_ID","videoId","isLoaded","setIsLoaded","paddingTop","setPaddingTop","useEffect","document","getElementById","permScript","createElement","async","appendChild","vidScript","_wq","push","onReady","video","asset","media","assets","hashedId","height","bind","Wistia","api","remove","onLoad","wistiaVideo","style","reponsiveWrapper","embed","swatch","loaded","RealmLogo","selectedAeId","setSelectedAeId","events","selectedMode","setSelectedMode","selectedPackage","setSelectedPackage","selectedPrice","setSelectedPrice","selectedMarket","setSelectedMarket","success","state","customizingPrice","setCustomizingPrice","history","handleNext","handleClickMode","handleClickPackage","handleClickCustomizePrice","handleChangePrice","parseInt","valid","newSelectedPrice","packages","find","x","price_in_dollars","sales_events","findIndex","aes","CoreText","Headline","size","Info","CoreInput","Select","required","onChangeText","Paragraph","weight","CoreList","mode","Item","text","leftIcon","CheckCircle","RadioButtonUnchecked","pkg","right","Text","toString","CoreButton","kind","setUser","alert","setAlert","setCreatingPropertyToken","reset","signupType","selectedEvent","event_type","selectedAeName","handleSuccess","user","creatingPropertyToken","SignupForm","onSuccess","testMarketplace","multiple","project_types","projectType","windowHeight","ae","calendlyUrl","calendly_link","calendly_url","onEventScheduled","setTimeout","url","styles","prefill","email","full_name","customAnswers","a1","phone_number","utm","utmSource","loading","setLoading","propertyId","setPropertyId","error","setError","selectedAe","handleClickTryAgain","handleCreatingPropertySuccess","response","user_email","package_id","property_id","custom_price_in_cents","admin_user_id","isError","redirect_url","onReturnFromStripe","HandleURLQuery","query","onHandle","preserve","CreatingProperty","token","Loading","Inner","setProps","hideAdjustBanner","exact","path","component","Router","basename","colors","white","colorsToStyle","backgroundColor","color","transparent","IMG_WIDTH","computeImgHeight","dimensions","Math","round","primary","card_color","body1","slice","Card","background_color","title1","link_type","logo","i","blog_post_image","author_picture","author_name","author_role","blog_post_title","PresentRichText","blog_post_snippet","blog_post_url","subtitle","cta_title","cta_url","match","extractWistiaVideoIdFromUrl","WistiaVideo","StyledRichText","Default","onInputVisibleChange","autocompleteRedirectTarget","description","include_cta","override_button_label_long","override_button_label_short","onRequestHeaderHeight","Hero","AddressAutocompleteField","showButton","buttonLabelLong","buttonLabelShort","variant","positionLabel","scrollToFocus","ctaOr","contact","Homepage","titleIntro","strategies","Bullets","selectedStrategy","setSelectedStrategy","onStrategyClick","setShouldRotateStrategies","shouldRotateStrategies","rotateIndexRef","useRef","rotateStrategies","current","interval","setInterval","clearInterval","s","strategy","Strategy","active","descriptionBullets","onStrategyKeyPress","keyCode","strategyActive","onKeyPress","role","tabIndex","strategyBullet","strategyText","_a","quote","listCard","h2","subheader","h3","bullets","bulletsContainer","bullets_style","closing_text","closingText","cta_text","openRoles","role_url","role_name","source","picture","toLowerCase","replace","Navigation","slices","navTitles","nav_title","nav","navItemActive","navBullet","navText","introTitle","SliceContent","slice_type","FlippingCards","Slice","sectionSidebar","anchor","gridColumn","CustomEmbed","sliceTitle","sliceBody","get_started","nav_how_it_works","nav_why_realm","nav_resources","nav_about","nav_sign_in","nav_get_started","autocomplete_redirect_target","page_id_for_tracking","pageName","headerRef","heroInputVisible","setHeroInputVisible","campaignId","setCampaignId","pathname","URL","searchParams","has","get","encodeURIComponent","btoa","append","replaceState","handleRequestHeaderHeight","offsetHeight","Header","hideHowItWorksButton","hideWhyRealmButton","hideResourcesButton","hideAboutButton","hideSignInButton","hideSignupButton","AddressAutocomplete","search","sidebar","GetStarted","getStarted","Footer","AutocompleteRedirectTargetTypes","thumbnailUrl","maxHeight","ConvertAutocompleteRedirectTarget","ProjectPricing","RenovationPricing","HomeReport","CTAAdjustmentContext","createContext","useCTAAdjustment","isReferralCtaUrl","isUtmForwardCtaUrl","context","useContext","utmParams","slugToUse","referralCtaUrl","newUrl","set","utmForwardCtaUrl","Object","keys","forEach","Provider","containerClassName","onPredictionSelected","readOnly","placeholder","scrollCheck","setScrollCheck","renderSubmitButton","NikhilButton","renderPredictionDescription","prediction","mainText","secondaryText","renderIcon","observer","IntersectionObserver","entries","entry","isIntersecting","observe","disconnect","handleFocus","isMobile","request","cancel","lastPosition","lastHeight","lastCheck","scrollCheckFn","pageYOffset","innerHeight","headerHeight","scrollTo","getBoundingClientRect","top","clearTimeout","onFocus","isInfoGraphic","mediaContainer","infoGraphic","videoSubContainer","onVisibleChange","cta_referral_utm_params","cta_forward_utm_params","cta_relative_url","handleCtaClick","onAddressInputVisibleChange","onCtaVisibleChange","is_media_infographic","address_autocomplete_visible","show_autocomplete_button","address_label","show_cta","mainHero","titleBox","addressField","input","pre_title","post_title","reference_id","states","code","priority","visible","container","brand","linkGroup","rel","callToAction","qrCode","final","social","legal","copyright","Date","getFullYear","infoPoint","icon","gridTemplateColumns","columns","point","InfoPoint","ImageQuote","image_background_color","image_position","description_alt","socialProof","scroll","quotes","groups","acc","group","section_id","is_section_header","reference_text","tableOfContents","FoldingItem","info","referenceId","startExpanded","expanded","setExpanded","toggle","prev","expandButton","foldingItems","allow_collapsing","start_expanded","item_title","item_info","rows","column","ret","min","column_span","remainder","sum","content_alignment","infoTable","table","manyColumns","border_color","borderColor","row","ri","ci","_b","_c","_d","cell_color","cell_alt_color","text_color","cell","colSpan","notes","table_notes","infoPoints","browse_states","webview","placeholder_replacements","heroAddressInputVisible","setHeroAddressInputVisible","heroCtaVisible","setHeroCtaVisible","replacements","cmsPage","headerContainer","addressContainer","hide","show_get_started","ShowOrHideAdjustBanner","g","message","SignupError","Error","constructor","errors","super","this","captureStackTrace","stack","emailOptional","addressOptional","hideNotes","sandbox","successMessage","formData","setFormData","setErrors","fetching","setFetching","formKey","setFormKey","now","placeId","setPlaceId","loadingPlace","setLoadingPlace","marketplace","setMarketplace","handleSubmit","FormData","handleAddressChange","place_id","place","trackNewUser","$email","$name","address","entered_address","via","signupDate","created_at","is_marketplace","args","orderId","customerId","customerEmail","sha1_email","simulateNewUser","registerNewLead","rawErrors","jsonBody","newErrors","memo","join","pollable_job_token","registerNewUser","updateUser","console","timeout","formatEnteredAddress","addressIcon","Spinner","Check","titleAccess","Close","onSubmit","Address","hint","onChangePrediction","idField","formatValue","selectionStyle","TextArea","TermsConsentMessage","events_team_members","calendly_url_for_rebuilds","non_app_signup_type","skip_meeting_prompt","allow_start_over","setMode","eventScheduled","setEventScheduled","calendarType","setCalendarType","setNotes","eventName","setEventName","referrer","setReferrer","handleReset","URLSearchParams","handleClickRenovation","handleClickRebuild","handleSwitchMode","handleChangeNotes","handleSubmitNotes","handleGoBackHome","some","handleEventScheduled","flexGrow","utmMedium","onChange","allowBlank","teamMember","results","resultItems","isLoading","columns4","result","resultItem","avatar","image_url","backup","backup_image_url","display_address","price","details","bedroomscount","bathcount","arealotsf","homeownerSiteVisitCalendarState","default","calendar","SearchOff","advisor","Person","company_name","AvatarOrInitials","profile_pic_url","Email","ChevronRight","Phone","display_phone_number","EventBusy","handleClose","BaseModal","ChatBubble","onConfirm","CalendarToday","start_time","tz","property","time_zone","format","WatchLater","end_time","setRescheduling","reschedulingRequestSent","scheduleRequestCount","setScheduleRequestCount","alreadyRescheduledModalOpen","setAlreadyRescheduledModalOpen","tooCloseToEventModal","setTooCloseToEventModal","rescheduleWarningModalOpen","setRescheduleWarningModalOpen","rescheduleWarningConfirmed","setRescheduleWarningConfirmed","tooCloseToEvent","diff","status","handleRescheduleClick","oldScheduleRequestCount","handleRescheduleWarningConfirmed","EventRepeat","EventAvailable","LocationOn","delivery_line_1","city","zip5","Boolean","postHomeownerRescheduleRequest","calendarId","eventId","setMark","marks","date","mark","startOf","toDate","getTime","getMark","Day","marked","onSelected","onCalculateValidDate","isValid","day","visibleWeeks","days","totalDays","firstOfMonth","start","theMonth","add","month","dayOfWeek","isSame","theWeek","week","initialView","allowViewChange","timezone","onSelectionChange","onTrackAttempt","view","setView","track","flexfield_1","handlePrevClicked","handleNextClicked","handleTodayClicked","option","handleDateSelected","handleShowMoreClicked","handleShowMonthClicked","defaultHandleCalculateValidDate","isAfter","djsSelected","controls","next","expandMore","Circle","block","adjustedNow","djsStartDate","djsEndDate","end","slot","selectedDate","availabilities","djsSelectedDate","startOfDay","endOfDay","todaysAvailabilities","iStartOfDay","iEndOfDay","all","max","allAvailabilities","Array","END_TIME","fill","_","newBlocks","taken","eStart","nbAll","newBlock","fromMatched","last","rest","handleSlotClick","slots","toUpperCase","timeSlots","setAvailabilities","sendingRescheduleRequest","setSendingRescheduleRequest","setSelectedDate","daysWithAvailability","numDays","d","iDay","existingDay","handleConfirm","handleTrackAttempted","family","screen","handleCalculateValidDate","daydate","sodNow","handleSlotsChanged","validThreeDays","validOneWeekday","validMinHours","a","number_of_vendors_to_schedule","CoreDivider","Full","reason","setReason","setGotReason","handleContinueClick","autoFocus","elementSize","maxLength","setReschedulingRequestSent","setCalendar","gotReason","incrementSize","event_duration","ceil","booking_lead_time","newAvail","origStart","time","origEnd","floor","controller","AbortController","homeowner_site_visit","signal","aborted","abort","HomeownerSiteVisit","rescheduling","impersonated","target_event_id","left","behavior","querySelector","setAttribute","csrf_param","csrf_token","OverlayMount","PageLoad","PageTitle","WrappedHomeownerSiteVisit","disclaimer","orientation","isLandscape","isPortrait","srcset","img","landscape","portrait","landscape_2x","portrait_2x","square_2x","def","Number","isNaN","MAX_ANIMATION_TIME","images","minSpeed","imgs","rand","t","imul","unitSize","startYs","sort","b","startZ","original","depth","distance","y","angle","animationTime","animationPlayState","translate","zIndex","animationDelay","animationDuration","part","cl","substring","spans","span","lastOption","setLastOption","curOption","setCurOption","intId","inc","renderOptions","opts","tmId","rotator","spin","optionText","headline","headlineRotationOptions","headlineRotationSpeed","subHeadline","xmlns","viewBox","targetUrl","targetRelativeUrl","targetId","trackingCode","trackingSection","trackingFeature","trackingFamily","trackClick","useTrackClick","feature","pInt","val","headline_rotation","headline_rotation_speed","sub_headline","nav_link_text","nav_link_url","nav_link_relative_url","nav_link_section_id","nav_link_tracking_code","nav_link_tracking_section","nav_link_tracking_feature","nav_link_tracking_family","background_images","background_images_rotation_velocity","background_images_rotation_drag","background","drag","minWidth","navLink","desktop_2x","link_text","link_url","link_relative_url","url_relative","link_tracking_code","link_tracking_section","link_tracking_feature","link_tracking_family","button_style","buttonStyle","navButton","header_body","navigation","subNavigation","l","downloadOption","download_qr_code","fillRule","clipRule","handleToggleOpen","delay","closing","setClosing","handleOpen","headerItems","mobile_display_location","hamburgerItems","mobile","download_text","download_url","download_tracking_code","download_tracking_section","download_tracking_feature","download_tracking_family","hamburger","openNavigation","close","mobileNavigation","navOptions","nav_id","cta_tracking_code","cta_tracking_section","cta_tracking_feature","cta_tracking_family","minHeight","subtitleContent","subtitleText","category","linkCategory","useAdjustLink","setUtmParams","sUtmParams","sessionStorage","getItem","JSON","parse","redirectUrl","utm_source","utm_campaign","utm_content","downloadLink","downloadCategory","desktop","footer_body","show_instagram","show_twitter","show_facebook","show_linkedin","categories","subfooter","srcsetDesktop","srcsetMobile","mobile_1x","mobile_2x","Container","click_action","case_study_uid","click_tracking_code","click_tracking_section","click_tracking_feature","click_tracking_family","showModal","setShowModal","stopPropagation","handleOnClose","CaseStudyViewer","showCta","testimonials","scrollRef","rTestimonials","scrollLock","setScrollRef","el","handleScrollLeft","scrollLeft","handleScrollRight","testimonial","scroll_tracking_code","scroll_tracking_section","scroll_tracking_family","customerSocialProof","gray","rightToLeft","image_placement","indexOf","imgTop","subtitle_desktop","subtitle_mobile","qr_code","big_phone","appPreview","bigPhone","previews","imgSlot","mediaSocialProof","imageQuotes","ListCardItem","bulletDescription","listCardOuter","bullet","bullet_name","bullet_description","number","TrackContext","tracking_page_id","homepage","call_background_images","call_to_action","activeNavItem","Learn","PageContent","Meet","Content","print","paddingLeft","listStyleType","textDecoration","page","project","small","handleChange","htmlFor","Checkbox","checkbox","checked","cost","cost_estimate_low","cost_estimate_high","ExternalSvg","uri","icon_svg","projects","allProjects","selectedProjects","setSearch","projectId","newProjects","concat","selProjId","matchFn","position","projectList","redirectQR","handleDownloadClick","totalMin","totalMax","stroke","project_templates","projectTemplates","setSelectedProjects","handleSelectedProjectsChange","selectedIds","selProject","renderQRCode","QRCode","state_code","state_name","stats","top_projects","state_description","cities","listings","internal_links","IntroCopy","HomeSearchListings","Section","Statistics","Projects","FindPropertyCTA","PopularCities","stateCode","InternalLinks","GetRealmScoreCTA","introCopy","popularCity","city_param","project_template","icon_url","anchorId","ChartContainer","AverageHomeValue","values","avm_25th","avm_avg","avm_75th","AverageHomeValuePotentialIncrease","potential_value_25th","potential_value_avg","potential_value_75th","AverageBuildableSquareFeet","buildable_sqft_avg","AverageSalePrice","sale_price_avg","StatPill","PercentialBarGraph","lowValue","highValue","pageBreakBefore","display","rowSpan","smallButton","setSmallButton","watchScroll","scrollY","addEventListener","removeEventListener","docusignBaseUrl","fields","toLocaleString","year","FancyButton","headlineText","subheadText","pageHeader","subhead","clipPath","SUPPORTED_STATES","vendorNavItems","vendorsSignIn","forHomeOwners","VendorSignupInner","cbsa_codes","companyName","setCompanyName","setState","licenseNumber","setLicenseNumber","heardOfUs","setHeardOfUs","cbsaCodes","setCbsaCodes","fullName","setFullName","setEmail","phoneNumber","setPhoneNumber","website","setWebsite","submitted","setSubmitted","useRailsFlash","emailErrors","companyNameError","licenseError","websiteError","handleGoHome","handleCbsaCodeChange","newCodes","vendor","licenses_attributes","heard_of_us","business_units_attributes","vendor_contacts_attributes","handleClickGetStarted","GlobalAlert","business","schedulerMethodJSON","method","onCalendarChange","attempt","retry","cResponse","newResponse","schedulerPatchJSON","useUpdateVendorSiteVisit","public_id","numberOfSteps","setInnerStatus","setVendorScreeningStepIndex","dataToSubmit","setDataToSubmit","clearError","patchVendorSiteVisit","reassign","assigned_vendor_contact","current_vendor_contact","decline","vendor_screening_responses","outcome","disqualify","oldVendorScreeningStepIndex","submitting","iconWrapper","static","InfoListItem","divider","Indent","handleEmailClick","handlePhoneClick","startsWith","placementControlClassName","Lightbox","blurredBackground","VSVLightbox","showCustomerDetails","setShowCustomerDetails","showScopeDetails","setShowScopeDetails","handleCustomerClick","handleCustomerDetailsClosed","handleAddressClick","addr","delivery_line_2","content_text","navigator","userAgent","test","MSStream","handleScopeClick","handleScopeDetailsClosed","scope","dangerouslySetInnerHTML","__html","helpMessage","PointOfContact","normalizeButton","to","form","assign","buttons","buttonsToUse","isShadowNeeded","setIsShadowNeeded","sectionRef","computeNeedForShadow","scrollHeight","clientHeight","MutationObserver","mutationsList","mutation","childList","subtree","modal","placementControl","withTopShadow","others","renderButtons","strokeWidth","eventDuration","firstAvailability","Calendar","period","Period","startTime","endTime","earlierDays","onTimeSelected","timer","setTime","timeError","setTimeError","confirmBookingModal","setConfirmBookingModal","ignoreEarlierTimesModal","setIgnoreEarlierTimesModal","handleTimeChanged","handleConfirmBookingConfirm","handleConfirmBookingClose","handleEarlierDaysAvailableClose","handleEarlierDaysAvailableConfirm","eventDurationSize","cutOff","vendor_forward_availability","blocks","lastStart","earlierTimeDays","timeDay","counts","availability","availabilityDay","availabilitySelection","trackError","setSubmitting","setTimer","scheduleError","setScheduleError","mismatchedModal","setMismatchedModal","declineModal","setDeclineModal","timeUnavailableModal","setTimeUnavailableModal","processSubmission","canceled","toISOString","schedulerPostJSON","errorType","handleTimeSelected","handleMismatchedClick","handleDeclineClick","handleDeclineModalConfirm","handleScheduleErrorClose","handleMismatchedModalClose","handleDeclineModalClose","handleTimeUnavailableModalClose","booking_due_date","unscheduled","householdDetails","availabilityTitle","availabilityContainer","onBack","cancelModal","setCancelModal","cancelling","setCancelling","cancelError","setCancelError","rescheduleError","setRescheduleError","handleCancelClick","handleCancelModalConfirm","handleCancelErrorClose","handleCancelModalClose","handleRescheduleErrorClose","handleRescheduleBack","scheduled","messageContent","bookingInfo","handleNewSiteVisitClick","reload","updated_at","toLocaleDateString","vendorContact","setVendorContact","vendorContacts","initialValue","ooo","backupContact","backup_vendor_contact_id","firstAvailableContact","computeInitialVendorContactEmail","handleChangeValue","newVendorContact","renderOption","backupName","payload","FancySelect","onChangeValue","step","stepIndex","vendorScreeningResponses","setVendorScreeningResponses","control","register","handleSubmitF","setValue","defaultValues","vendor_contact_id","field","vendorContactField","optionField","q","newVendorScreeningResponse","ok","negativeOutcome","why_not","newVendorScreeningResponses","newDataToSubmit","NewLayout","Radio","vendor_contacts","vendorScreeningStepIndex","vendorScreeningSteps","property_plan_files","potential_project_challenges","additional_notes","startStr","endStr","siteVisitsWindowStart","siteVisitsWindowEnd","days_for_bid_turnaround","computeVendorScreeningSteps","handleBack","stepTitle","OpenInNew","ForwardToInbox","HideSource","projectTypes","friendlyProjectTypes","adus","landscaping","hardscaping","kitchen_or_bathroom","initialCalendar","projectTypesWithInsufficientPhotos","vendor_insufficient_photos_block","vendor_project_types_with_insufficient_photos","innerStatus","site_visit_status","impersonation","vendorSiteVisit","ImageWithBackup","DefaultAvatar","areabuilding","LoadingState","ErrorState","contractor_label","project_label","contractor_type","contractors","initialContractors","initialProjects","setContractors","setProjects","projectCosts","setProjectCosts","setIsLoading","hasError","setHasError","hasAddress","setHasAddress","project_costs","projectLabelLowercase","projectCost","gap","contractor","propertyaddresscity","propertyaddressstate","barClassName","labelClassName","valueLabelClassName","totalLabelClassName","valueLabel","totalLabel","total","bar","labels","ctaHref","otherValue","otherTaxAssessor","publicProperty","propertyaddressfull","public_property","sample","isSample","unsupportedResponse","setUnsupportedResponse","handleModalClose","handlePredictionSelected","queryParams","queryString","unavailable","public_property_path","modalButtons","secondary","homeValuesNearMe","Compare","pageContent","addressAutocompleteFieldContainer","addressAutocompleteField","mutedIntro","sampleProperty","propertyHeader","cardHighlightHomeImg","cardsContainer","avm","estimatedvalue","potential","potential_value","attom_id","full_relative_stats","top_value","top_value_tax_assessor","value_position","barChartSimple","barChartSimpleBar","top_potential","top_potential_tax_assessor","potential_position","potentialValueLabel","blackTotalLabel","specialCard","rank","copy","highlightedProperties","highlightedProperty","backgroundImage","eventsSelectedPackageState","eventsSelectedPackagePriceInDollarsState","eventsAddedUserState","effects_UNSTABLE","eventAdditionalNotesState","eventsAeSelectedModeState","eventsSelectedModeState","eventsCreatingPropertyTokenState","eventsPropsState","eventsSelectedAeIdState","eventSelectedTeamMemberState","eventsSelectedAeSelector","eventsSelectedMarketState","purchasePackage","useResetEventOnboarding","resetAddedUser","resetSelectedMode","resetSelectedPackage","resetSelectedPrice"],"sourceRoot":""}