{"version":3,"file":"js/public-2bb15bd846ff1f5ea109.js","mappings":"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","sources":["webpack://realm_app/./app/javascript/components/Card.module.scss?c372","webpack://realm_app/./app/javascript/components/Card.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Blog/Home/HighlightedBlogPost.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Blog/Home/StandardBlogPost.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Blog/Home/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/HomeSearch/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Public/City/styles.module.scss?e3f1","webpack://realm_app/./app/javascript/pages/_serverRendered/Public/City/index.tsx","webpack://realm_app/./app/javascript/recoil/publicNeighborhood.ts","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/Intro/styles.module.scss?e999","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/Intro/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/Menu/styles.module.scss?7a06","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/Menu/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/Overview/styles.module.scss?4b39","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/Overview/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/Statistics/styles.module.scss?55b1","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/Statistics/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/TopProjects/ProjectsMap/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/TopProjects/ProjectsList/styles.module.scss?b2e8","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/TopProjects/ProjectsList/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/TopProjects/styles.module.scss?ac71","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/TopProjects/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/TopScoringHomes/styles.module.scss?208f","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/TopScoringHomes/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/styles.module.scss?dd1c","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicNeighborhood/index.tsx","webpack://realm_app/./app/javascript/recoil/publicProperty.ts","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicProperty/Section/styles.module.scss?7f88","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicProperty/Section/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicProperty/ComparableHomesNearby/styles.module.scss?8bae","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicProperty/ComparableHomesNearby/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicProperty/CurrentValue/styles.module.scss?dc72","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicProperty/CurrentValue/index.tsx","webpack://realm_app/./app/javascript/components/MarketingAndPropertyPages/Footer/BrowseStates.module.scss?cb90","webpack://realm_app/./app/javascript/components/MarketingAndPropertyPages/Footer/BrowseStates.tsx","webpack://realm_app/./app/javascript/components/MarketingAndPropertyPages/Footer/Breadcrumb.module.scss?cfd2","webpack://realm_app/./app/javascript/components/MarketingAndPropertyPages/Footer/Breadcrumb.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicProperty/Footer/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicProperty/FAQ/styles.module.scss?d721","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicProperty/FAQ/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicProperty/Hero/styles.module.scss?9d75","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicProperty/PropertyDetails/styles.module.scss?698c","webpack://realm_app/./app/javascript/svgs/property.tsx","webpack://realm_app/./app/javascript/svgs/projects.tsx","webpack://realm_app/./app/javascript/svgs/neighborhood.tsx","webpack://realm_app/./app/javascript/svgs/nearby-projects.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicProperty/PropertyDetails/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicProperty/Hero/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicProperty/ProjectCustomization/styles.module.scss?e940","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicProperty/ProjectCustomization/index.tsx","webpack://realm_app/./app/javascript/components/MarketingAndPropertyPages/YellowBubbleCta/ButtonCap/index.tsx","webpack://realm_app/./app/javascript/components/MarketingAndPropertyPages/YellowBubbleCta/styles.module.scss?98b3","webpack://realm_app/./app/javascript/components/MarketingAndPropertyPages/YellowBubbleCta/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicProperty/SaveThisProperty/styles.module.scss?5799","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicProperty/SaveThisProperty/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicProperty/ScoreAndLivableSpace/LivableSpace/styles.module.scss?6298","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicProperty/ScoreAndLivableSpace/LivableSpace/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicProperty/ScoreAndLivableSpace/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicProperty/Quotes/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicProperty/styles.module.scss?82fb","webpack://realm_app/./app/javascript/pages/_serverRendered/PublicProperty/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Unavailable/styles.module.scss?852d","webpack://realm_app/./app/javascript/pages/_serverRendered/Unavailable/index.tsx","webpack://realm_app/./app/javascript/packs/public.ts","webpack://realm_app/./app/javascript/pages/_serverRendered/Blog/shared/CtaButton.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Blog/shared/GetStarted.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Blog/shared/ImageCarousel.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Blog/shared/PdfEmbed.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Blog/BlogPost/BlogContent.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Blog/shared/BlogFooter.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Blog/shared/ShareThis.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Blog/BlogPost/index.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Blog/utils.ts","webpack://realm_app/./app/javascript/svgs/dropdown-arrow.tsx","webpack://realm_app/./app/javascript/pages/_serverRendered/Blog/styles.module.scss?fe22"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"card\":\"MKf19FvM9WvWdfjVir6a\"};","import React, { FC, PropsWithChildren } from 'react'\nimport classNames from 'classnames'\n\nimport styles from './Card.module.scss'\n\nexport interface CardProps {\n className?: string\n}\n\nconst Card: FC> = ({ children, className }) => (\n
{children}
\n)\n\nexport default Card\n","import { blogPostPath, formatDate } from 'pages/_serverRendered/Blog/utils'\nimport cx from 'classnames'\nimport { PrismicBlogPostResult } from 'pages/_serverRendered/Blog/types'\nimport React, { FC } from 'react'\nimport { RichText } from 'prismic-reactjs'\nimport styles from '../styles.module.scss'\n\ninterface HighlightedBlogPostProps {\n blogPost: PrismicBlogPostResult\n}\n\nconst HighlightedBlogPost: FC = ({ blogPost }) => {\n return (\n
\n
\n
\n \n {blogPost.data.image.url && (\n \n )}\n \n
\n \n {blogPost.data.category1?.data && (\n
{blogPost.data.category1.data.display_name}
\n )}\n

\n \n {blogPost.data.title[0].text}\n \n

\n
\n \n
\n
\n {'By '}\n {blogPost.data.author}\n {' on '}\n \n
\n \n {'Read more'}\n \n \n
\n
\n )\n}\n\nexport default HighlightedBlogPost\n","import { blogPostPath, formatDate } from 'pages/_serverRendered/Blog/utils'\nimport { PrismicBlogPostResult } from 'pages/_serverRendered/Blog/types'\nimport React, { FC } from 'react'\nimport { RichText } from 'prismic-reactjs'\n\ninterface StandardBlogPostProps {\n blogPost: PrismicBlogPostResult\n}\n\nconst StandardBlogPost: FC = ({ blogPost }) => {\n return (\n \n )\n}\n\nexport default StandardBlogPost\n","import React, { FC, useCallback, useState } from 'react'\nimport { blogPostsByCategoryPath, requestMoreBlogPosts } from 'pages/_serverRendered/Blog/utils'\n\nimport PageLoad from 'non-rendering/PageLoad'\nimport Button from 'components/Button2'\nimport cx from 'classnames'\nimport Footer from 'components/MarketingSite/Footer'\nimport GetStarted from 'pages/_serverRendered/Homepage/GetStarted'\nimport Header from 'components/MarketingSite/Header'\nimport HighlightedBlogPost from 'pages/_serverRendered/Blog/Home/HighlightedBlogPost'\nimport { PrismicBlogPostResult, PrismicBlogCategoryResult } from 'pages/_serverRendered/Blog/types'\nimport StandardBlogPost from 'pages/_serverRendered/Blog/Home/StandardBlogPost'\n\nimport styles from '../styles.module.scss'\n\ninterface HomeProps {\n categories: PrismicBlogCategoryResult[]\n active_category: PrismicBlogCategoryResult | null\n highlighted_result: PrismicBlogPostResult | null\n results: PrismicBlogPostResult[]\n has_more: boolean\n params: Record\n}\n\nconst Home: FC = ({ categories, active_category, highlighted_result, results, params, has_more }) => {\n const [hasMore, setHasMore] = useState(has_more)\n const [blogPosts, setBlogPosts] = useState(results)\n const [isLoading, setIsLoading] = useState(false)\n const [page, setPage] = useState(1)\n\n const handleLoadMore = useCallback(async () => {\n const nextPage = page + 1\n setPage(nextPage)\n setIsLoading(true)\n try {\n const json = await requestMoreBlogPosts({ ...params, page: String(nextPage) })\n if (json) {\n setBlogPosts([...blogPosts, ...json.results])\n setHasMore(json.has_more)\n }\n } catch (e) {\n const win = window as any\n win.Sentry ? win.Sentry.captureException(e) : console.error(e)\n } finally {\n setIsLoading(false)\n }\n }, [blogPosts, page, params, setPage])\n\n return (\n
\n \n
\n
\n
\n {highlighted_result && }\n {categories.length > 0 && (\n
\n
\n {categories.map((category) => (\n \n {category.data.display_name}\n \n ))}\n
\n
\n )}\n
\n
\n {blogPosts.map((blogPost) => (\n \n ))}\n {blogPosts.length === 0 && 'No blog posts found.'}\n
\n
\n {hasMore && (\n \n )}\n
\n
\n \n
\n
\n )\n}\n\nexport default Home\n","import React, { useState, useCallback, useEffect, useRef, useMemo } from 'react'\n\nimport cx from 'classnames'\nimport DropdownArrow from 'svgs/dropdown-arrow'\nimport Sparkle from 'components/Sparkle'\n\nimport styles from './styles.module.scss'\nimport HomeSearchListings, { HomeSearchResultItem } from 'pages/_serverRendered/HomeSearch/HomeSearchListings'\n\nconst MAX_SOLD_YEARS_TO_SHOW = 50\nconst DEFAULT_PAGE_SIZE = 10\nconst MAX_SHOW_PAGES = 5\n\ninterface Props {\n baseUrl: string\n className?: string\n columns?: 2 | 4\n pageSize?: number\n}\n\nconst HomeSearch: React.FC = ({ baseUrl, className, columns, pageSize = DEFAULT_PAGE_SIZE }) => {\n const [bedrooms, setBedrooms] = useState('all')\n const [bathrooms, setBathrooms] = useState('all')\n const [lotSize, setLotSize] = useState('all')\n const [lastSoldDate, setLastSoldDate] = useState('all')\n const [offset, setOffset] = useState(0)\n\n const [loading, setLoading] = useState(true)\n const [pagesCount, setPagesCount] = useState(null)\n const [more, setMore] = useState(null)\n const [results, setResults] = useState>([])\n\n const componentRef = useRef(null)\n const [visible, setVisible] = useState(false)\n\n const handleBedroomsChange = useCallback((e) => {\n setBedrooms(e.target.value)\n setOffset(0)\n }, [])\n\n const handleBathroomsChange = useCallback((e) => {\n setBathrooms(e.target.value)\n setOffset(0)\n }, [])\n\n const handleLotSizeChange = useCallback((e) => {\n setLotSize(e.target.value)\n setOffset(0)\n }, [])\n\n const handleLastSoldDateChange = useCallback((e) => {\n setLastSoldDate(e.target.value)\n setOffset(0)\n }, [])\n\n const handleOffsetChange = useCallback(\n (offset) => () => {\n setOffset(offset)\n },\n []\n )\n\n useEffect(() => {\n if (visible) return\n if (!componentRef || !componentRef.current) return\n\n const target = componentRef.current\n\n const observer = new IntersectionObserver(\n (entries: Array) => {\n if (entries.length > 0) {\n setVisible(entries[0].isIntersecting)\n }\n },\n {\n root: null,\n rootMargin: '0px',\n threshold: 0,\n }\n )\n\n observer.observe(target)\n\n return () => {\n if (observer && target) {\n observer.unobserve(target)\n }\n }\n }, [visible])\n\n useEffect(() => {\n // Don't load if we're not visible\n if (!visible) return\n\n const loadRequests = async () => {\n setLoading(true)\n const url =\n `${baseUrl}?limit=${pageSize}&offset=${offset * pageSize}` +\n (bedrooms != 'all' ? `&bedrooms=${encodeURIComponent(bedrooms)}` : '') +\n (bathrooms != 'all' ? `&bathrooms=${encodeURIComponent(bathrooms)}` : '') +\n (lotSize != 'all' ? `&lotsize=${encodeURIComponent(lotSize)}` : '') +\n (lastSoldDate != 'all' ? `&lastsolddate=${encodeURIComponent(lastSoldDate)}` : '')\n\n const response = await fetch(url, {\n headers: { Accept: 'application/json', 'X-Requested-With': 'XMLHttpRequest' },\n })\n if (response.ok) {\n const body = await response.json()\n\n if (body.count != null) {\n setPagesCount(Math.ceil(body.count / pageSize))\n setMore(null)\n } else {\n setPagesCount(null)\n setMore(body.more)\n }\n\n const results = body.tax_assessors\n setResults(results)\n }\n setLoading(false)\n }\n loadRequests()\n }, [visible, baseUrl, bedrooms, bathrooms, lotSize, lastSoldDate, offset, pageSize])\n\n const enableNext = useMemo(() => {\n if (more) return true\n if (pagesCount && offset < pagesCount - 1) return true\n\n return false\n }, [more, pagesCount, offset])\n\n const pages = useMemo(() => {\n if (!pagesCount) return []\n\n let pageStart = Math.max(0, offset - Math.floor(MAX_SHOW_PAGES / 2))\n let pageEnd = pageStart + MAX_SHOW_PAGES\n if (pageEnd >= pagesCount) {\n const shift = pageEnd - pagesCount\n pageStart = Math.max(0, pageStart - shift)\n pageEnd = pageEnd - shift\n }\n const pages: Array = []\n for (let x = pageStart; x < pageEnd; x++) {\n pages.push(x)\n }\n return pages\n }, [pagesCount, offset])\n\n return (\n
\n
    \n
  • \n \n
    \n \n \n
    \n
  • \n
  • \n \n
    \n \n \n
    \n
  • \n
  • \n \n
    \n \n \n
    \n
  • \n
  • \n \n
    \n \n \n
    \n
  • \n
\n
\n \n
\n \n {'Previous'}\n \n
\n {pages.map((page) => (\n \n {page + 1}\n \n ))}\n
\n \n {'Next'}\n \n
\n {loading ? (\n
\n \n
\n ) : results.length == 0 ? (\n
{'No items found.'}
\n ) : null}\n
\n
\n )\n}\n\nexport default HomeSearch\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"OYBdDq2x2geWgCZVIREB\",\"container\":\"J0vsXyIa_8neq0IolzPT\",\"breadcrumb\":\"WHMw86sTK83yU3mnxVyk\",\"separator\":\"clnrhT3qaoeVYv2djqwH\",\"findPropertyCta\":\"ATi7D9anwc5bUPvvAaIq\",\"transparent\":\"iVHK7CtiUVHjLZb2QjBZ\",\"popularProjects\":\"j1QM0MZ0L2RouittXdLA\",\"sectionDescription\":\"cg__x4H1BpmmMGCkRzO8\"};","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 CityProps {\n state_code: string\n state_name: string\n city: string\n city_description: RichTextBlock[]\n popular_cities: PopularCity[]\n top_projects: TopProject[]\n stats: AggregateStats\n listings: HomeSearchResultItem[]\n internal_links?: InternalLink[]\n}\n\nconst City: FC = ({\n city,\n city_description,\n popular_cities,\n state_code,\n state_name,\n top_projects,\n stats,\n listings,\n internal_links,\n}) => {\n return (\n
\n \n
\n \n
\n
\n
\n
\n \n
\n
\n
\n

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

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

{`Popular Projects in ${city}`}

\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 {city_description != null && (\n
\n

{city}

\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 City\n","import { atom } from 'recoil'\nimport { ProjectTemplate } from './projectTemplates'\n\nexport interface PopularCity {\n city: string\n city_param: string\n competition: string\n cpc: string\n search_volume: string\n state: string\n}\n\nexport interface TopProject {\n project_template: ProjectTemplate\n icon_url: string\n}\n\nexport interface AggregateStats {\n avm_25th: number\n avm_avg: number\n avm_75th: number\n potential_value_25th: number\n potential_value_avg: number\n potential_value_75th: number\n buildable_sqft_avg: number\n sale_price_avg: number\n}\n\nexport interface PublicNeighborhoodTopProject extends TopProject {\n latitude: number\n longitude: number\n icon_marker_url?: string\n}\n\nexport interface PublicNeighborhood extends AggregateStats {\n id: string\n name: string\n full_name: string\n state: string\n statename: string\n\n geo: {\n center_latitude: string\n center_longitude: string\n\n max_latitude: string\n max_longitude: string\n\n min_latitude: string\n min_longitude: string\n }\n\n total_properties: number\n percent_for_sale: number\n percent_sold_last_year: number\n\n top_projects: Array\n}\n\nexport const publicNeighborhoodState = atom({\n key: 'PublicNeighborhoodState',\n default: null,\n})\n","// extracted by mini-css-extract-plugin\nexport default {\"intro\":\"xjKOp8U0GYpOhSy3j3bv\"};","import React from 'react'\nimport { useRecoilValue } from 'recoil'\n\nimport { publicNeighborhoodState } from 'recoil/publicNeighborhood'\n\nimport styles from './styles.module.scss'\n\nconst Intro: React.FC = () => {\n const publicNeighborhood = useRecoilValue(publicNeighborhoodState)\n\n return (\n
\n

{`${publicNeighborhood?.name} Homes`}

\n

\n {`Realm's neighborhood real estate analysis helps you understand how your home compares. We estimate the current value of single-family homes and what they could be worth after various upgrades. Uunderstand how much potential is still untapped in ${publicNeighborhood?.name}.`}\n

\n {'Learn more about Realm'}\n
\n )\n}\n\nexport default Intro\n","// extracted by mini-css-extract-plugin\nexport default {\"menu\":\"jKXuq_xRY1eg3KvuwwDX\",\"item\":\"o0Kq7rs3EwpGxN4xVaEH\",\"arrow\":\"R6CeOV4pRTu4Jkn9T_1o\",\"text\":\"MUif87Cgbc4wHw7_xyfy\",\"selected\":\"W8qLczhtQonLNPponl1F\"};","import React, { useEffect, useState } from 'react'\nimport { useRecoilValue } from 'recoil'\nimport classNames from 'classnames'\n\nimport { publicNeighborhoodState } from 'recoil/publicNeighborhood'\n\nimport styles from './styles.module.scss'\n\nconst TARGETS = [\n { id: 'overview', ratio: 0.5 },\n { id: 'statistics', ratio: 0.3 },\n { id: 'projects', ratio: 0.5 },\n { id: 'nearbyHomes', ratio: 0.1 },\n]\n\ninterface Props {\n className?: string\n}\n\nconst Menu: React.FC = ({ className }) => {\n const publicNeighborhood = useRecoilValue(publicNeighborhoodState)\n const [selectedIds, setSelectedIds] = useState<{ [id: string]: boolean }>(\n TARGETS.reduce((prev, target) => ({ ...prev, [target.id]: false }), {} as { [id: string]: boolean })\n )\n\n useEffect(() => {\n const observer = new IntersectionObserver(\n (entries: Array) => {\n // Check each entry against a target. if the intersectionRatio is above the\n // desired target ratio, it should be selected. Otherwise, it shouldn't be.\n const newSelectedIds = entries.reduce((prev, e) => {\n const target = TARGETS.find((t) => t.id == e.target.id)\n if (!target) return prev\n return { ...prev, [target.id]: target.ratio <= e.intersectionRatio }\n }, {} as { [id: string]: boolean })\n setSelectedIds((prev) => ({ ...prev, ...newSelectedIds }))\n },\n {\n root: null,\n rootMargin: '0px',\n threshold: TARGETS.map((t) => t.ratio),\n }\n )\n\n TARGETS.forEach((t) => {\n const element = document.getElementById(t.id)\n if (element) {\n observer.observe(element)\n }\n })\n\n return () => {\n TARGETS.forEach((t) => {\n const element = document.getElementById(t.id)\n if (element) {\n observer.unobserve(element)\n }\n })\n }\n }, [])\n\n return (\n \n )\n}\n\nexport default Menu\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"vEc8WivJJK0nbo_SUWNk\",\"satellite\":\"XHDqrYe19HINpFF4NodI\",\"title\":\"oI35O8U15tKjaL8_aXZ0\",\"stats\":\"yzpxsSoXHak2weZzQRVq\",\"stat\":\"FCrHYJZ7OFdBlWUF8t8c\",\"value\":\"qwMIGpngHiTEEbvblhYM\",\"description\":\"ZAdHQCORlSXgjgLnbutZ\"};","import * as React from 'react'\nimport { useRecoilValue } from 'recoil'\n\nimport { formatNumber, formatPercentage } from 'utils/formatting'\n\nimport Section from '../Section'\nimport { publicNeighborhoodState } from 'recoil/publicNeighborhood'\nimport styles from './styles.module.scss'\n\nconst Overview: React.FC = () => {\n const publicNeighborhood = useRecoilValue(publicNeighborhoodState)\n\n if (!publicNeighborhood) return null\n\n const mapUrl = `https://api.mapbox.com/styles/v1/mapbox/satellite-v9/static/[${publicNeighborhood.geo.min_longitude},${publicNeighborhood.geo.min_latitude},${publicNeighborhood.geo.max_longitude},${publicNeighborhood.geo.max_latitude}]/1000x350@2x?access_token=${process.env.MAPBOXGL_ACCESS_TOKEN}`\n\n return (\n
\n
\n

{`${publicNeighborhood.name}, ${publicNeighborhood.statename}`}

\n
    \n
  • \n
    {formatNumber(publicNeighborhood.total_properties)}
    \n
    {'Homes in the neighborhood'}
    \n
  • \n
  • \n
    {formatPercentage(publicNeighborhood.percent_for_sale * 100, 1)}
    \n
    {'Homes currently for sale'}
    \n
  • \n
  • \n
    {formatPercentage(publicNeighborhood.percent_sold_last_year * 100, 1)}
    \n
    {'Homes sold in the last 12 months'}
    \n
  • \n
\n
\n )\n}\nexport default Overview\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"twG7opfdpXyCUlXJHzeO\",\"title\":\"dat7qJtjc5sVWFgurt5J\",\"centerStatsContainer\":\"EEkctIOWWxNzdeX1zD8k\",\"centerStats\":\"bCjMxaggSJvyJowyR6BH\",\"footerStats\":\"_0cD2jzIxEcbyKkb7MXED\"};","import * as React from 'react'\nimport { useRecoilValue } from 'recoil'\n\nimport { publicNeighborhoodState } from 'recoil/publicNeighborhood'\n\nimport Section from '../Section'\nimport AverageHomeValue from './AverageHomeValue'\nimport AverageHomeValuePotentialIncrease from './AverageHomeValuePotentialIncrease'\nimport AverageBuildableSquareFeet from './AverageBuildableSquareFeet'\nimport AverageSalePrice from './AverageSalePrice'\nimport ChartContainer from '../ChartContainer'\n\nimport styles from './styles.module.scss'\n\nconst Statistics: React.FC = () => {\n const publicNeighborhood = useRecoilValue(publicNeighborhoodState)\n\n if (!publicNeighborhood) return null\n\n return (\n
\n

{`${publicNeighborhood.name} By The Numbers`}

\n \n
\n \n \n
\n
\n
\n \n \n
\n
\n )\n}\nexport default Statistics\n","import * as React from 'react'\nimport { useRecoilValue } from 'recoil'\n\nimport ImgPlant from 'images/gm/plan.png'\n\nimport { publicNeighborhoodState } from 'recoil/publicNeighborhood'\n\ninterface MapStyle {\n feature?: string\n element: string\n color?: string\n invert_lightness?: boolean\n}\n\nfunction formatStylesUrlPart(styles: Array): string {\n return styles\n .map((style) => {\n let ret = `&style=element:${style.element}`\n if (style.feature) ret += `|feature:${style.feature}`\n if (style.color) ret += `|color:${style.color}`\n if (typeof style.invert_lightness === 'boolean') ret += `|invert_lightness:${style.invert_lightness}`\n return ret\n })\n .join('')\n}\n\ninterface Marker {\n icon?: string\n color?: string\n label?: string\n anchor?: 'top' | 'bottom' | 'left' | 'right' | 'center' | 'topleft' | 'topright' | 'bottomleft' | 'bottomright'\n locations: Array<{\n long: number\n lat: number\n }>\n size?: 'tiny' | 'mid' | 'small'\n scale?: 1 | 2 | 4\n}\n\nfunction formatPublicURL(path: string): string {\n // If it is relative, add the host. Otherwise\n // Assume it is on a CDN, and don't.\n if (path.startsWith('https://') || path.startsWith('http://')) return path\n\n return `${process.env.HOST_ROOT}${path}`\n}\n\nfunction formatMarkersUrlPart(markers: Array): string {\n return markers\n .map((marker) => {\n let ret = ''\n if (marker.icon) ret += `${ret ? '|' : ''}icon:${marker.icon}`\n if (marker.color) ret += `${ret ? '|' : ''}color:${marker.color}`\n if (marker.label) ret += `${ret ? '|' : ''}label:${marker.label}`\n if (marker.anchor) ret += `${ret ? '|' : ''}anchor:${marker.anchor}`\n if (marker.size) ret += `${ret ? '|' : ''}size:${marker.size}`\n if (marker.scale) ret += `${ret ? '|' : ''}scale:${marker.scale}`\n // Add locations last.\n ret += '|' + marker.locations.map((loc) => `${loc.lat},${loc.long}`).join('|')\n return `&markers=${ret}`\n })\n .join('')\n}\n\ninterface Props {\n className?: string\n}\n\nconst ProjectsMap: React.FC = ({ className }) => {\n const publicNeighborhood = useRecoilValue(publicNeighborhoodState)\n\n const mapStyles: Array = [\n {\n feature: 'road',\n element: 'geometry.fill',\n color: '0xffffff',\n },\n {\n feature: 'road',\n element: 'geometry.stroke',\n color: '0xe9e1cc',\n },\n {\n feature: 'road.local',\n element: 'geometry.fill',\n color: '0xf7f4ec',\n },\n {\n feature: 'road.local',\n element: 'geometry.stroke',\n color: '0xe9e1cc',\n },\n {\n feature: 'landscape',\n element: 'geometry.fill',\n color: '0xe9e1cc',\n },\n {\n feature: 'landscape.natural.landcover',\n element: 'geometry.fill',\n color: '0xcbdc9c',\n },\n {\n feature: 'administrative',\n element: 'labels.text.fill',\n color: '0x505050',\n },\n {\n feature: 'poi',\n element: 'geometry.fill',\n color: '0xdcd0af',\n },\n {\n feature: 'poi.park',\n element: 'geometry.fill',\n color: '0xcbdc9c',\n },\n {\n feature: 'road',\n element: 'labels.text.fill',\n color: '0x9e8953',\n },\n {\n feature: 'poi',\n element: 'labels.text.fill',\n color: '0xa7602e',\n },\n {\n feature: 'poi',\n element: 'labels.icon',\n color: '0xa7602e',\n },\n ]\n\n if (!publicNeighborhood) return null\n\n const markerStyles: Array = publicNeighborhood.top_projects.map((proj) => ({\n icon: formatPublicURL(proj.icon_marker_url || ImgPlant),\n scale: 2,\n locations: [{ lat: proj.latitude, long: proj.longitude }],\n }))\n const mapUrl =\n `https://maps.googleapis.com/maps/api/staticmap?center=${encodeURI(\n `${publicNeighborhood.geo.center_latitude},${publicNeighborhood.geo.center_longitude}`\n )}${encodeURI(formatStylesUrlPart(mapStyles))}${encodeURI(formatMarkersUrlPart(markerStyles))}` +\n `&visible=${publicNeighborhood.geo.min_latitude},${publicNeighborhood.geo.min_longitude}|${publicNeighborhood.geo.max_latitude},${publicNeighborhood?.geo.max_longitude}` +\n `&maptype=roadmap&scale=2&size=512x200&key=${process.env.GOOGLE_MAPS_API_KEY}`\n\n return
\n}\nexport default ProjectsMap\n","// extracted by mini-css-extract-plugin\nexport default {\"section\":\"FTVhodzKP3Imi_KhTjJi\",\"project\":\"jVLGGG4RRB7ypnM11_ov\",\"details\":\"H_NLiG38fv1QPsoFcw0A\",\"icon\":\"CFtiETol5uVG1ZBlt2Cm\",\"permit\":\"qzWarSsOL4fvFbtQd3ex\",\"vendor\":\"DNNm3m7SCc48LA84QSiH\",\"name\":\"tyIEiDp3g7yBcOnql8RO\",\"cost\":\"SxhGy2_5DoKfwqLqbM3g\",\"start\":\"Dr1FdEMSNWpMfA7rJDZC\",\"mainDetails\":\"D1iQ7vPZi69csCo6AQ0_\"};","import * as React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport classNames from 'classnames'\n\nimport { publicNeighborhoodState } from 'recoil/publicNeighborhood'\n\nimport ImgPlant from 'images/projectPlan/plant.png'\n\nimport Cta from 'components/MarketingAndPropertyPages/Cta'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n className?: string\n}\n\nconst ProjectsList: React.FC = ({ className }) => {\n const publicNeighborhood = useRecoilValue(publicNeighborhoodState)\n\n return (\n
    \n {publicNeighborhood?.top_projects.map((project) => (\n
  • \n
    \n {project.project_template.kind}\n
    \n
    \n
    \n

    {project.project_template.name}

    \n
    \n \n {'Sign Up to see Costs'}\n \n
    \n
  • \n ))}\n
\n )\n}\nexport default ProjectsList\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"BK99bHP2FPrBhnBZDowL\",\"map\":\"uRT0EaWh7k5fYKIwWWPf\",\"information\":\"lxW0fJ6DvdT3TUndCMqx\",\"title\":\"i7MmrK9XvuqXKi487fNw\",\"note\":\"d4P_XJNy_uIntw8eA2sq\",\"list\":\"BQ4e4FwFblc_vuxy8c5C\"};","import * as React from 'react'\nimport { useRecoilValue } from 'recoil'\n\nimport { publicNeighborhoodState } from 'recoil/publicNeighborhood'\n\nimport Section from '../Section'\nimport ProjectsMap from './ProjectsMap'\nimport ProjectsList from './ProjectsList'\n\nimport styles from './styles.module.scss'\n\nconst TopProjects: React.FC = () => {\n const publicNeighborhood = useRecoilValue(publicNeighborhoodState)\n\n return (\n
\n \n
\n

{`Popular Projects in ${publicNeighborhood?.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. We'll also calculate specific cost recoup estimates for your property.\"\n }\n

\n \n
\n
\n )\n}\nexport default TopProjects\n","// extracted by mini-css-extract-plugin\nexport default {\"topScoringHomes\":\"NFNyldMpLu4kUWI0mzoE\",\"title\":\"VVkmBFKEwP2pJCeJ5a3y\"};","import React, { FC } from 'react'\nimport { useRecoilValue } from 'recoil'\n\nimport { publicNeighborhoodState } from 'recoil/publicNeighborhood'\n\nimport Section from '../Section'\nimport HomeSearch from 'pages/_serverRendered/HomeSearch'\n\nimport styles from './styles.module.scss'\n\nconst TopScoringHomes: FC = () => {\n const publicNeighborhood = useRecoilValue(publicNeighborhoodState)\n\n return (\n
\n

{`Browse Nearby Homes With Potential In ${publicNeighborhood?.name}`}

\n \n
\n )\n}\n\nexport default TopScoringHomes\n","// extracted by mini-css-extract-plugin\nexport default {\"publicNeighborhood\":\"QA26qQKxZPsjyYnsJVfM\",\"wrapper\":\"Yryfu9jMp2azVSQYc7er\",\"container\":\"xvmwetAVMRux38EPQTmK\",\"primaryColumn\":\"KhR8guZ2v9Gq1SQO3w4L\",\"mobileTitle\":\"IzYeEZNP8FNUKjbS338i\",\"menu\":\"rqGFvma8alYcQ2OkaCje\",\"sidebar\":\"bxcbPBQQRTp9Uovfyzf2\",\"realmScoreDescription\":\"UdszskpnOw98b0gNrC9Y\"};","import React, { FC, useCallback } from 'react'\nimport { RecoilRoot } from 'recoil'\nimport type { MutableSnapshot } from 'recoil'\n\nimport { PublicNeighborhood, publicNeighborhoodState } from 'recoil/publicNeighborhood'\n\nimport PageLoad from 'non-rendering/PageLoad'\n\nimport Header from 'components/MarketingSite/Header'\nimport Footer from 'components/MarketingSite/Footer'\nimport AddressAutocomplete from 'components/MarketingSite/Header/AddressAutocomplete'\n\nimport Intro from './Intro'\nimport Menu from './Menu'\nimport Overview from './Overview'\nimport Statistics from './Statistics'\nimport FindPropertyCTA from './FindPropertyCTA'\nimport TopProjects from './TopProjects'\nimport TopScoringHomes from './TopScoringHomes'\nimport GetRealmScoreCTA from './GetRealmScoreCTA'\n\nimport styles from './styles.module.scss'\n\nconst PublicNeighborhood: FC = () => (\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 interface PublicNeighborhoodRecoilContainerProps {\n public_neighborhood: PublicNeighborhood\n}\n\n// Container that just sets the initial recoil state\n// I know, I know...one component per file, but this is just a little baby wrapper for Recoil :)\nconst PublicNeighborhoodRecoilContainer: FC = ({ public_neighborhood }) => {\n const initializeState = useCallback(\n ({ set }: MutableSnapshot): void => {\n set(publicNeighborhoodState, public_neighborhood)\n },\n [public_neighborhood]\n )\n\n return (\n \n \n \n \n )\n}\n\nexport default PublicNeighborhoodRecoilContainer\n","import { Slice } from 'pages/_serverRendered/CmsPage/types'\nimport { RichTextBlock } from 'prismic-reactjs'\nimport { atom } from 'recoil'\n\nexport interface PublicPropertyPotential {\n potential_value?: number\n}\n\nexport interface BuildableArea {\n remaining_square_footage: number | null\n allowed_floors: Array | null\n}\n\nexport interface PublicPropertyEnriched {\n bedrooms: number\n bathrooms: number\n half_bathrooms: number\n total_bathrooms: number\n square_footage: number\n lot_size: number\n city_param: string\n\n building_area: number\n elevation_maximum: number\n elevation_minimum: number\n flood_zone: string\n footprint_slope_average: number\n footprint_slope_maximum: number\n mowable_area: number\n ocean_distance: number\n park_distance: number\n pool_area: number\n private_school_distance: number\n railway_adjacent: string\n road_distance: number\n water_body_distance: number\n\n nearby_projects: {\n address: string\n attom_id: string\n latitude: number\n longitude: number\n project: {\n name: string\n date: string\n }\n }[]\n}\n\nexport interface PublicPropertyPrismicData {\n title: RichTextBlock[]\n description: RichTextBlock[]\n body: Slice[]\n}\n\nexport interface PublicPropertyLightRelativeStats {\n top_value: number | null\n top_value_tax_assessor: AttomTaxAssessor\n value_position: number | null\n}\n\nexport interface PublicPropertyFullRelativeStats {\n potential_position: number | null\n top_potential: number | null\n top_potential_attom_id: number | null\n top_potential_tax_assessor: AttomTaxAssessor\n top_value: number | null\n top_value_attom_id: number | null\n top_value_tax_assessor: AttomTaxAssessor\n value_position: number | null\n}\n\nexport const publicPropertyState = atom({\n key: 'PublicProperty',\n default: null,\n})\n\nexport const publicPropertyEnrichedState = atom({\n key: 'PublicPropertyEnriched',\n default: null,\n})\n\nexport const publicPropertyAvmState = atom({\n key: 'PublicPropertyAvm',\n default: null,\n})\n\nexport const publicPropertyPotentialState = atom({\n key: 'PublicPropertyPotential',\n default: null,\n})\n\nexport const publicPropertyPrismicDataState = atom({\n key: 'publicPropertyPrismicData',\n default: null,\n})\n\nexport const publicPropertyBuildableAreaState = atom({\n key: 'PublicPropertyBuildableArea',\n default: null,\n})\n\nexport const publicPropertyRelativeStatsState = atom({\n key: 'PublicPropertyRelativeStats',\n default: null,\n})\n","// extracted by mini-css-extract-plugin\nexport default {\"section\":\"qh7RsChf4fyEZpfrIgMO\",\"sectionHeader\":\"FCYy7Ftr2M_04Pb6aLdx\",\"titleRow\":\"Cgq7vecw8wefNPEWRNwo\",\"action\":\"iBkr4fDUnx4Rnrlfw8KZ\",\"title\":\"sY0REtP8PN85SbV0BjJR\",\"subtitle\":\"aXVPFexQROdhX4vn7KDY\"};","import classnames from 'classnames'\nimport React, { FC } from 'react'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n action?: React.ReactNode\n children: React.ReactNode\n className?: string\n headerClassName?: string\n title?: string\n subtitle?: string\n itemScope?: boolean\n itemType?: string\n}\n\nconst Section: FC = ({ action, children, className, headerClassName, itemScope, itemType, title, subtitle }) => (\n
\n {(action || title) && (\n
\n
\n {title != null && (\n \n {title}\n \n )}\n
{action}
\n
\n {subtitle != null &&

{subtitle}

}\n
\n )}\n {children}\n
\n)\n\nexport default Section\n","// extracted by mini-css-extract-plugin\nexport default {\"comparableHomesNearby\":\"vNHLMttkEMzWj7cLD6p_\"};","import HomeSearch from 'pages/_serverRendered/HomeSearch'\nimport Section from 'pages/_serverRendered/PublicProperty/Section'\nimport React, { FC } from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { publicPropertyState } from 'recoil/publicProperty'\n\nimport styles from './styles.module.scss'\n\nconst ComparableHomesNearby: FC = () => {\n const publicProperty = useRecoilValue(publicPropertyState)\n\n return (\n
\n \n
\n )\n}\n\nexport default ComparableHomesNearby\n","// extracted by mini-css-extract-plugin\nexport default {\"card\":\"lYCE2zw98h4W_5VhT2f2\",\"ctaContainer\":\"dcVQsr746ls11UA3LJHR\",\"cardSubheader\":\"DqpmqJDA6b22tE6XIrqi\",\"cardHighlight\":\"HVMBjWLINrCe_o1OvBij\",\"cardHighlightHome\":\"uCAuHLuj6d9yn0eqezV4\",\"cardHighlightHomeImg\":\"qURVfBiHoIe5XAtaCN1k\",\"cardHeader\":\"rCiME6ceSrXlz1o7EtQI\",\"valueLabel\":\"CXU25FMgttTn4xMAZQZF\",\"scoreLabel\":\"W8PsaEHFcBEOPe7KipvN\"};","import ArrowCircleDown from 'svgs/arrow-circle-down'\nimport { formatAddressCasing, formatCurrency, formatOrdinal, formatPublicPropertyAddress2nd } from 'utils/formatting'\nimport { generateIndexedUrlPathForPublicProperty } from 'utils/publicProperty'\nimport { publicPropertyRelativeStatsState, publicPropertyState } from 'recoil/publicProperty'\nimport React, { FC } from 'react'\nimport { useRecoilValue } from 'recoil'\nimport Section from '../Section'\n\nimport styles from './styles.module.scss'\nimport { PublicPropertyAvatar } from 'components/PropertyAvatar'\n\nconst CurrentValue: FC = () => {\n const taxAssessor = useRecoilValue(publicPropertyState)\n const relativeStats = useRecoilValue(publicPropertyRelativeStatsState)\n\n if (!relativeStats || !relativeStats.top_value) {\n return null\n }\n\n return (\n
\n
\n
\n

{'How does your home value compare to your neighbors?'}

\n
\n {formatOrdinal(relativeStats.value_position || 0)}\n {' out of '}\n {'100'}\n {' homes'}\n
\n
\n
\n \n {relativeStats.value_position !== 0 && (\n
\n
\n
{`Top Value Nearby`}
\n
{'1st'}
\n
\n

{'This comparison is based off the 100 homes nearest to you.'}

\n \n \n
\n
{formatCurrency(relativeStats.top_value)}
\n
{formatAddressCasing(relativeStats.top_value_tax_assessor.propertyaddressfull)}
\n

{formatPublicPropertyAddress2nd(relativeStats.top_value_tax_assessor)}

\n
\n \n
\n )}\n
\n )\n}\n\nexport default CurrentValue\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"fTpKpneuxgk60r0bKXEo\",\"linksContainer\":\"dJTxqTV34xlGfY_ZGK81\",\"boldLink\":\"JPWiWCTdkr2sDcCoZlF4\"};","import React, { FC } from 'react'\nimport cx from 'classnames'\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\nimport styles from './BrowseStates.module.scss'\n\nconst BrowseStates: FC = () => {\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 {\"breadcrumb\":\"onrhbVYnmFZ76XI6c8hj\",\"separator\":\"QXDPRUAhAr1gSSsdPYPt\"};","import { states } from './BrowseStates'\nimport React, { FC } from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { publicPropertyEnrichedState, publicPropertyState } from 'recoil/publicProperty'\nimport { formatAddressCasing, titleCase } from 'utils/formatting'\n\nimport styles from './Breadcrumb.module.scss'\n\nconst Breadcrumb: FC = () => {\n const property = useRecoilValue(publicPropertyState)\n const propertyEnriched = useRecoilValue(publicPropertyEnrichedState)\n\n const stateParam = property?.propertyaddressstate.toLowerCase()\n\n return (\n
\n {states.find((s) => s.code === property?.propertyaddressstate)?.name}\n {'→'}\n {titleCase(property?.propertyaddresscity || '')}\n {'→'}\n {formatAddressCasing(property?.propertyaddressfull || '')}\n
\n )\n}\n\nexport default Breadcrumb\n","import React, { FC } from 'react'\nimport { FooterContainer, Hr, SocialLinks } from 'components/MarketingAndPropertyPages/Footer'\nimport BrowseStates from 'components/MarketingAndPropertyPages/Footer/BrowseStates'\nimport HomepageLinks from 'components/MarketingAndPropertyPages/Footer/HomepageLinks'\nimport Breadcrumb from 'components/MarketingAndPropertyPages/Footer/Breadcrumb'\n\nconst Footer: FC = () => (\n \n
\n \n \n
\n \n \n
\n)\n\nexport default Footer\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"vqRT0k1AUuu7OswuFquQ\"};","import React from 'react'\nimport { useRecoilValue } from 'recoil'\n\nimport { publicPropertyState, publicPropertyAvmState } from 'recoil/publicProperty'\nimport { formatAddressCasing, formatCurrency } from 'utils/formatting'\n\nimport styles from './styles.module.scss'\n\nconst FAQ: React.FC = () => {\n const publicProperty = useRecoilValue(publicPropertyState)\n const publicPropertyAvm = useRecoilValue(publicPropertyAvmState)\n\n let estimatedCurrentValue\n if (publicPropertyAvm != null && publicPropertyAvm.estimatedvalue != null) {\n estimatedCurrentValue = formatCurrency(publicPropertyAvm.estimatedvalue)\n }\n\n return (\n
\n
\n

{'What is Realm and how does it estimate the value of my home?'}

\n
\n
\n {\n 'Realm is a free, centralized data hub for homeowners. We analyze hundreds of data points about each home including size, layout, quality, and amenities and compare to neighboring homes to estimate current market value. We highlight opportunities to increase property value through square-foot add-ons, renovations, new amenities, and more, helping families to enjoy their home more in the present while getting more value from it down the road.'\n }\n
\n
\n
\n {estimatedCurrentValue && (\n
\n

{'How much is this house worth and is your estimate accurate?'}

\n
\n
\n {`Based on publicly available real estate data, Realm estimates your house is currently worth ${estimatedCurrentValue}. We will refresh our estimate if you share information on recent renovations or changes you’ve made to your home to ensure it's as accurate as possible.`}\n
\n
\n
\n )}\n
\n

{`How does Realm estimate the potential home value for ${formatAddressCasing(\n publicProperty?.propertyaddressfull || ''\n )}?`}

\n
\n
\n {\n 'Our potential value calculation looks at your home compared to the optimal home in your neighborhood. First, we review hundreds of attributes about your home, including categorical and numeric data. Then, we analyze the attributes of high value homes in your area to determine the optimal characteristic for each attribute. Finally, we compare your house as it is to what your house would be with all the optimal attributes.'\n }\n
\n
\n
\n
\n

{`How can I increase the home value for ${formatAddressCasing(\n publicProperty?.propertyaddressfull || ''\n )}?`}

\n
\n
\n {\n 'There are 3 types of projects that have the potential to increase your home value: increasing space, updating existing spaces, or adding amenities. With your free Realm account, you can see what projects are allowed on your property, how much each will cost, and what impact they’ll have on home value.'\n }\n
\n
\n
\n
\n

{'How does Realm know which home projects to recommend to me?'}

\n
\n
\n {\n 'We start by reviewing the current state of your home, based on data we’ve collected from a variety of sources and input that you’ve given us. From there, we figure out what is possible given your local zoning rules & regulations and what is optimal based on what home remodeling projects are trending in your neighborhood.'\n }\n
\n
\n
\n
\n

{`How much more space am I allowed to add to ${formatAddressCasing(\n publicProperty?.propertyaddressfull || ''\n )}?`}

\n
\n
\n {\n 'Each neighborhood has different types of restrictions in place that dictate how much of your lot you can develop and where you can build. We’ve reviewed setbacks, lot coverage, and FAR limits for your property to analyze how many additional square feet you can add.'\n }\n
\n
\n
\n
\n )\n}\n\nexport default FAQ\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"U4jjc3aOVjqCnPkllFgJ\",\"header\":\"vxFOrrqwDdG5S0XvB_KI\",\"streetViewWrapper\":\"CXlVIoTr62iSJIHelO0I\",\"streetViewImage\":\"G32PX2OKuMjkPpGztcWS\",\"save\":\"tkjAf2BzOVNWmgubQARU\",\"addressEdit\":\"uqRp4Kf1E7yWuZnIo5ES\",\"propertySectionTitle\":\"TbZ1a10wNAEyhsM5HJBq\",\"stats\":\"Wnj2qK5Yaz8Ak2iP_Ukg\",\"stat\":\"ZRRJCtsDSYMJPxgFBoe5\",\"edit\":\"kcxAv2tN8gXtssCl_TAw\",\"satellite\":\"MWuEG_Y_F40ouVoFTmia\"};","// extracted by mini-css-extract-plugin\nexport default {\"propertyDetails\":\"XEHLediSwgxjECAKpx_7\",\"fullWidth\":\"KcJLUfkMP9aurlMW05vB\",\"signupLink\":\"l9bYn0nqM5aApr_pBP1W\"};","import cx from 'classnames'\nimport React, { FC } from 'react'\n\ninterface PropertyProps {\n className?: string\n}\n\nconst Property: FC = ({ className }) => (\n \n \n \n \n \n \n)\n\nexport default Property\n","import cx from 'classnames'\nimport React, { FC } from 'react'\n\ninterface ProjectsProps {\n className?: string\n}\n\nconst Projects: FC = ({ className }) => (\n \n \n \n \n \n \n)\n\nexport default Projects\n","import cx from 'classnames'\nimport React, { FC } from 'react'\n\ninterface NeighborhoodProps {\n className?: string\n}\n\nconst Neighborhood: FC = ({ className }) => (\n \n \n \n \n \n \n)\n\nexport default Neighborhood\n","import cx from 'classnames'\nimport React, { FC } from 'react'\n\ninterface NearbyProjectsProps {\n className?: string\n}\n\nconst NearbyProjects: FC = ({ className }) => (\n \n \n \n \n \n \n \n)\n\nexport default NearbyProjects\n","import cx from 'classnames'\nimport React, { FC, useCallback } from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { publicPropertyState, publicPropertyEnrichedState } from 'recoil/publicProperty'\nimport { formatNumber, numberWithCommas } from 'utils/formatting'\nimport styles from './styles.module.scss'\nimport distance from '@turf/distance'\nimport Property from 'svgs/property'\nimport Projects from 'svgs/projects'\nimport Neighborhood from 'svgs/neighborhood'\nimport NearbyProjects from 'svgs/nearby-projects'\nimport { track } from 'utils/analytics'\nimport { onboardingPathWithPublicProperty } from 'utils/publicProperty'\n\nconst renderedDistanceFromPoints = (lat1: number, lon1: number, lat2: number, lon2: number) => {\n const distanceInMiles = distance(\n {\n type: 'Point',\n coordinates: [lat1, lon1],\n },\n {\n type: 'Point',\n coordinates: [lat2, lon2],\n },\n {\n units: 'miles',\n }\n )\n return distanceInMiles >= 0.3\n ? `${numberWithCommas(Math.round(distanceInMiles * 10) / 10)} mi`\n : `${numberWithCommas(Math.round(distanceInMiles * 5280))}` + ' ft'\n}\n\nconst renderedDistanceFromFeet = (distance: number) =>\n distance >= 5280 * 0.3\n ? `${numberWithCommas(Math.round((distance / 5280) * 10) / 10)} mi`\n : `${numberWithCommas(Math.round(distance))} ft`\n\nexport const renderedDate = (date: string): string => {\n return new Intl.DateTimeFormat('en-US', { month: 'short', year: 'numeric', timeZone: 'UTC' }).format(new Date(date))\n}\n\nconst PropertyDetails: FC = () => {\n const publicProperty = useRecoilValue(publicPropertyState)\n const publicPropertyEnriched = useRecoilValue(publicPropertyEnrichedState)\n const handleUnlockProjects = useCallback(() => {\n track('unlockProjects')\n }, [])\n\n if (!publicProperty) return null\n\n return (\n
\n \n \n \n {publicPropertyEnriched?.pool_area != null && (\n \n \n \n \n )}\n {publicPropertyEnriched?.elevation_minimum != null && (\n \n \n \n \n )}\n {publicPropertyEnriched?.elevation_maximum != null && (\n \n \n \n \n )}\n {publicPropertyEnriched?.flood_zone != null &&\n publicPropertyEnriched?.flood_zone.toLowerCase() !== 'not applicable' && (\n \n \n \n \n )}\n {publicPropertyEnriched?.mowable_area != null && (\n \n \n \n \n )}\n {publicPropertyEnriched?.building_area != null && (\n \n \n \n \n )}\n {publicPropertyEnriched?.footprint_slope_average != null && (\n \n \n \n \n )}\n {publicPropertyEnriched?.footprint_slope_maximum != null && (\n \n \n \n \n )}\n \n
\n \n {`Property details`}\n
{'Pool area'}{`${publicPropertyEnriched?.pool_area} sqft`}
{'Elevation minimum'}{`${formatNumber(publicPropertyEnriched?.elevation_minimum)} ft`}
{'Elevation maximum'}{`${formatNumber(publicPropertyEnriched?.elevation_maximum)} ft`}
{'Is my home in a flood zone?'}{publicPropertyEnriched?.flood_zone}
{'Mowable area'}{`${publicPropertyEnriched?.mowable_area} sqft`}
{'Building area'}\n {publicPropertyEnriched?.building_area}\n {' sqft'}\n
{'Building footprint slope average'}{publicPropertyEnriched?.footprint_slope_average}
{'Building footprint slope maximum'}{publicPropertyEnriched?.footprint_slope_maximum}
\n \n \n \n {publicPropertyEnriched?.park_distance != null && (\n \n \n \n \n )}\n {publicPropertyEnriched?.ocean_distance != null && (\n \n \n \n \n )}\n {publicPropertyEnriched?.private_school_distance != null && (\n \n \n \n \n )}\n {publicPropertyEnriched?.water_body_distance != null && (\n \n \n \n \n )}\n {publicPropertyEnriched?.road_distance != null && (\n \n \n \n \n )}\n \n \n \n \n \n
\n \n {'What’s nearby'}\n
{'Nearest park'}{renderedDistanceFromFeet(publicPropertyEnriched?.park_distance)}
{'Distance to ocean'}{renderedDistanceFromFeet(publicPropertyEnriched?.ocean_distance)}
{'Distance to private school'}{renderedDistanceFromFeet(publicPropertyEnriched?.private_school_distance)}
{'Distance to nearest water body'}{renderedDistanceFromFeet(publicPropertyEnriched?.water_body_distance)}
{'Distance to the road'}{renderedDistanceFromFeet(publicPropertyEnriched?.road_distance)}
{'Adjacent to railway'}{publicPropertyEnriched?.railway_adjacent === 't' ? 'Yes' : 'No'}
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n {'Projects for you'}\n
{'Project'}{'Home value'}{'Cost'}{'Recoup %'}
\n \n {'Unlock with a free account'}\n \n
\n {(publicPropertyEnriched?.nearby_projects?.length ?? 0) > 0 && (\n <>\n \n \n \n \n \n \n \n \n \n \n \n {publicPropertyEnriched?.nearby_projects.map((home) => {\n return (\n \n \n \n \n \n \n )\n })}\n \n
\n \n {'Projects'}\n
{'Address'}{'Recent project'}{'Date'}{'Distance'}
{home.address}{home.project.name}{renderedDate(home.project.date)}\n {renderedDistanceFromPoints(\n Number(publicProperty.propertylatitude),\n Number(publicProperty.propertylongitude),\n home.latitude,\n home.longitude\n )}\n {' away'}\n
\n \n )}\n
\n )\n}\n\nexport default PropertyDetails\n","import React, { useCallback } from 'react'\n\nimport { formatLotSize, formatPublicPropertyAddress, numberWithCommas } from 'utils/formatting'\n\nimport { trackSync as track } from 'utils/analytics'\n\nimport Section from 'pages/_serverRendered/PublicProperty/Section'\nimport { publicPropertyEnrichedState, publicPropertyState } from 'recoil/publicProperty'\nimport { onboardingPathWithPublicProperty } from 'utils/publicProperty'\nimport styles from './styles.module.scss'\nimport { useRecoilValue } from 'recoil'\nimport Bed from 'svgs/bed'\nimport Bath from 'svgs/bath'\nimport PropertyDetails from 'pages/_serverRendered/PublicProperty/PropertyDetails'\nimport { PublicPropertyAvatar } from 'components/PropertyAvatar'\n\ninterface HeroProps {\n ctaCopy?: string\n}\n\nconst Hero: React.FC = ({ ctaCopy }) => {\n const publicProperty = useRecoilValue(publicPropertyState)\n const publicPropertyEnriched = useRecoilValue(publicPropertyEnrichedState)\n\n const hasBedrooms = publicPropertyEnriched && publicPropertyEnriched.bedrooms > 0\n const hasBathrooms = publicPropertyEnriched && publicPropertyEnriched.total_bathrooms > 0\n\n const hasBuildingSquareFeet = publicPropertyEnriched && publicPropertyEnriched.square_footage != null\n const buildingSquareFeet = hasBuildingSquareFeet\n ? numberWithCommas(publicPropertyEnriched?.square_footage || 0)\n : null\n\n const handleCtaClick = useCallback(() => {\n track('hero')\n }, [])\n\n const handleExploreCtaClick = useCallback(() => {\n track('explore')\n }, [])\n\n if (!publicProperty) return null\n\n // Mapbox static image API doesn't support searching by address. We don't want to geocode ourselves because $$, but google maps supports it at no additional cost\n const hasLatLng =\n publicProperty.propertylatitude != null &&\n publicProperty.propertylatitude != '' &&\n publicProperty.propertylongitude != null &&\n publicProperty.propertylongitude != ''\n const mapboxUrl = `https://api.mapbox.com/styles/v1/mapbox/satellite-v9/static/${publicProperty.propertylongitude},${publicProperty.propertylatitude},19,0/1000x350@2x?access_token=pk.eyJ1Ijoicm9od2VpZ2VsIiwiYSI6ImNrYmg1YWh2YzAyMjkyem5yN2RsMmRpZXkifQ.STA87m4W37moWj2evrjymw`\n const googleMapsUrls = `https://maps.googleapis.com/maps/api/staticmap?center=${encodeURI(\n formatPublicPropertyAddress(publicProperty)\n )}&zoom=18&scale=2&maptype=satellite&size=1000x350&key=AIzaSyDIABYI0DmyZHUfhoJxVXKDXJ_4znAEE8E`\n const mapUrl = hasLatLng ? mapboxUrl : googleMapsUrls\n\n const saveButton = (\n \n {ctaCopy || 'Explore'}\n \n )\n\n return (\n \n
\n
\n
\n \n
\n
\n
{'Property overview'}
\n
\n {hasBedrooms && (\n
\n

\n {publicPropertyEnriched?.bedrooms}\n \n

\n
{'Bedrooms'}
\n
\n )}\n {hasBathrooms && (\n
\n

\n {publicPropertyEnriched?.total_bathrooms}\n \n

\n
{'Bathrooms'}
\n
\n )}\n {publicProperty.yearbuilt && (\n
\n

{publicProperty.yearbuilt}

\n
{'Built'}
\n
\n )}\n {publicPropertyEnriched?.lot_size && (\n
\n

{formatLotSize(publicPropertyEnriched.lot_size)}

\n
{'Lot'}
\n
\n )}\n {buildingSquareFeet && (\n
\n

\n {buildingSquareFeet}\n {' sqft'}\n

\n
{'Area'}
\n
\n )}\n
\n
\n \n
\n \n \n )\n}\nexport default Hero\n","// extracted by mini-css-extract-plugin\nexport default {\"projectCustomization\":\"J2I9dH7q89fAFdmRwyGE\",\"intro\":\"UisxwDijItWKNSlkwqmC\",\"image\":\"kLdd99010iSehqnVl4CE\",\"ctaContainer\":\"NclZa_Vjgic5KTzJ6cwb\",\"ctaButton\":\"kjTEDRYtvLtrtYNAgLCW\",\"unlockProjectsTy\":\"HAWIWl3iTEnKL7rqfbZz\",\"unlockProjectsSm\":\"LpeeXJhhHIhpMC1ayprK\",\"unlockProjectsLg\":\"qz8nW1WuOP7Qbo_Rq3YO\"};","import cx from 'classnames'\nimport ImgBackyardHome from 'images/property/project-customization.png'\nimport ImgBackyardHome2x from 'images/property/project-customization@2x.png'\nimport { publicPropertyState } from 'recoil/publicProperty'\nimport React, { FC, useCallback } from 'react'\nimport Section from 'pages/_serverRendered/PublicProperty/Section'\nimport { onboardingPathWithPublicProperty } from 'utils/publicProperty'\nimport { useRecoilValue } from 'recoil'\nimport { trackSync as track } from 'utils/analytics'\n\nimport styles from './styles.module.scss'\n\nconst ProjectCustomization: FC = () => {\n const publicProperty = useRecoilValue(publicPropertyState)\n\n const handleUnlockProjects = useCallback(() => {\n track('unlockProjects')\n }, [])\n\n if (!publicProperty) return null\n\n return (\n
\n

\n {\n 'With your free Realm Project Planner, you can create customized cost & value recoup estimates for 10+ projects.'\n }\n

\n \n
\n \n {'Unlock projects for free'}\n \n \n {'Unlock projects with a free account'}\n \n \n {'Unlock more projects with a free account'}\n \n
\n
\n )\n}\n\nexport default ProjectCustomization\n","import React, { FC } from 'react'\n\nconst ButtonCap: FC = (props) => (\n \n \n \n)\n\nexport default ButtonCap\n","// extracted by mini-css-extract-plugin\nexport default {\"placeholderButton\":\"p9XIYlNGylcgrfIhEIzZ\",\"placeholderButtonLabel\":\"sl2275nNm6Y5ITLZAB_z\",\"placeholderButtonCap\":\"hweVuvIxPHHvKtoK_dRy\",\"placeholderButtonArrow\":\"_SRSfBtoPUgJXbeXtBeM\"};","import classnames from 'classnames'\nimport React, { FC, ReactNode } from 'react'\n\nimport ButtonCap from './ButtonCap'\n\nimport styles from './styles.module.scss'\n\ninterface Props {\n children: ReactNode\n className?: string\n href?: string\n id?: string\n type?: 'button' | 'submit' | 'reset'\n fullWidth?: boolean\n onClick?: () => void\n}\n\nconst YellowBubbleCta: FC = ({ children, className, fullWidth, id, href, type, onClick }) => {\n if (type) {\n return (\n \n \n {children}\n \n \n \n {'→'}\n \n \n )\n }\n return (\n \n \n {children}\n \n \n \n {'→'}\n \n \n )\n}\n\nexport default YellowBubbleCta\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"yNLogcxHS1G6l1mipdk8\",\"subcontainer\":\"ObFwmKbMcdusehOvqZh1\",\"save\":\"bB2qyHfFH_Z8tuc3djlA\",\"small\":\"Ki_gv5eRIWMF_4tdjRxm\",\"large\":\"ireoBO1cO2EYxaUB82Lk\"};","import React, { FC, useCallback } from 'react'\nimport YellowBubbleCta from 'components/MarketingAndPropertyPages/YellowBubbleCta'\nimport classnames from 'classnames'\nimport { publicPropertyState } from 'recoil/publicProperty'\nimport { onboardingPathWithPublicProperty } from 'utils/publicProperty'\nimport styles from './styles.module.scss'\nimport { useRecoilValue } from 'recoil'\nimport { trackSync as track } from 'utils/analytics'\n\ninterface SaveThisPropertyProps {\n title?: string\n}\n\nconst SaveThisProperty: FC = ({ title }) => {\n const publicProperty = useRecoilValue(publicPropertyState)\n\n const handleExploreCtaClick = useCallback(() => {\n track('explore')\n }, [])\n\n if (!publicProperty) return null\n\n return (\n
\n
\n

{title || 'Never miss an opportunity'}

\n

\n {\n 'Enter an address and answer a few questions about a property to get a full breakdown of its current value and potential future value.'\n }\n

\n
\n \n {'Explore this property'}\n \n \n {'Explore'}\n \n
\n )\n}\n\nexport default SaveThisProperty\n","// extracted by mini-css-extract-plugin\nexport default {\"livableSpace\":\"wkngY7FNFqa6zwTjD8iX\",\"title\":\"vZprgDdoNTw_9_JkewBq\",\"container\":\"mc6KZoWHibH3j0lpUDRF\",\"chart\":\"SLsEXPztGFvA9aFEWj_C\",\"potentialArea\":\"MA5EvsgT4whbSIN9ibMv\",\"currentArea\":\"JSs7SKDP7SZaIPdCLC0G\",\"amount\":\"l3FPGeQfUxyut5R6CIqK\",\"currentAreaLabel\":\"Q8lIyVOHeaRj56AgoQxc\",\"potentialAreaLabel\":\"eq4rajG0lqxHYHJQYBlr\",\"fakeAccordionTitle\":\"rpgZDKmGwA1WY4fjo4zK\"};","import { publicPropertyBuildableAreaState, publicPropertyEnrichedState } from 'recoil/publicProperty'\nimport React, { FC } from 'react'\nimport { useRecoilValue } from 'recoil'\n\nimport styles from './styles.module.scss'\n\nconst LivableSpace: FC = () => {\n const publicProperyBuildableArea = useRecoilValue(publicPropertyBuildableAreaState)\n const publicPropertyEnriched = useRecoilValue(publicPropertyEnrichedState)\n\n let currentAreaValue: number | null = null\n if (publicPropertyEnriched && publicPropertyEnriched.square_footage != null) {\n currentAreaValue = publicPropertyEnriched.square_footage\n }\n\n let potentialAreaValue: number | null = null\n if (\n publicProperyBuildableArea != null &&\n publicProperyBuildableArea.remaining_square_footage != null &&\n publicProperyBuildableArea.remaining_square_footage > 0\n ) {\n potentialAreaValue = publicProperyBuildableArea.remaining_square_footage\n }\n\n let currentPercent = 0.65\n if (currentAreaValue != null && potentialAreaValue != null) {\n currentPercent = currentAreaValue / (currentAreaValue + potentialAreaValue)\n // don't show more than 100% full\n currentPercent = currentPercent > 1 ? 1 : currentPercent\n }\n\n return (\n
\n

{'Livable Space'}

\n
\n {potentialAreaValue && (\n

\n {'This property is zoned for '}\n {potentialAreaValue.toLocaleString()}\n {' additional square feet'}\n

\n )}\n
\n
\n
\n {currentAreaValue && (\n
\n {currentAreaValue.toLocaleString()}\n {'sqft'}\n
\n )}\n {currentAreaValue && potentialAreaValue && (\n
\n {(currentAreaValue + potentialAreaValue).toLocaleString()}\n {'sqft'}\n
\n )}\n
\n
\n

{'Learn More About Buildable Square Feet'}

\n

\n {\n 'It’s not always up to you where and what you can build on your property. Realm has collected information on your zoning rules to calculate the number of buildable square feet available on your property given zoning rules such as setbacks, floor area ratio (FAR), and lot coverage.'\n }\n

\n
\n
\n )\n}\n\nexport default LivableSpace\n","import LivableSpace from './LivableSpace'\nimport React, { FC } from 'react'\nimport Section from 'pages/_serverRendered/PublicProperty/Section'\n\nconst ScoreAndLivableSpace: FC = () => {\n return (\n
\n \n
\n )\n}\n\nexport default ScoreAndLivableSpace\n","import React, { FC } from 'react'\nimport FlippingCards from 'pages/_serverRendered/CmsPage/Section/FlippingCards'\nimport { SliceFlippingCards } from 'pages/_serverRendered/CmsPage/types'\nimport { publicPropertyPrismicDataState } from 'recoil/publicProperty'\nimport { useRecoilValue } from 'recoil'\n\nconst Quotes: FC = () => {\n const publicPropertyPrismicData = useRecoilValue(publicPropertyPrismicDataState)\n if (!publicPropertyPrismicData) return null\n\n const sliceFlippingCards = publicPropertyPrismicData.body.find(\n (e) => e.slice_type === 'flipping_cards'\n ) as SliceFlippingCards\n\n return \n}\n\nexport default Quotes\n","// extracted by mini-css-extract-plugin\nexport default {\"publicProperty\":\"Bl4uUtB2Dbf0lxq4ZkvA\",\"wrapper\":\"yUwWjqOaAtjnZT0bPBcC\",\"container\":\"QXHJk5NDRj3gpEfK3_vb\",\"primaryColumn\":\"qe3xLVWCnklMQXIi0UCL\",\"mobileTitle\":\"B8__vMg2Gv7BT_FP8IBA\",\"sidebar\":\"N5Sahiq4Zy9KNQSIVgwF\",\"ctaContainer\":\"NTluujfsQuxuDfS_BICN\",\"ctaButton\":\"U2njR6pp8aWM4ffF3Yiu\",\"internalLinks\":\"zLWuh1hpHxMXZ1bE_2M1\"};","import React, { FC, useCallback } from 'react'\nimport { RecoilRoot, useRecoilValue } from 'recoil'\nimport type { MutableSnapshot } from 'recoil'\n\nimport {\n BuildableArea,\n publicPropertyAvmState,\n PublicPropertyPotential,\n publicPropertyPotentialState,\n publicPropertyState,\n publicPropertyBuildableAreaState,\n publicPropertyEnrichedState,\n PublicPropertyEnriched,\n publicPropertyPrismicDataState,\n PublicPropertyPrismicData,\n publicPropertyRelativeStatsState,\n PublicPropertyLightRelativeStats,\n} from 'recoil/publicProperty'\nimport { formatPublicPropertyAddress } from 'utils/formatting'\nimport { onboardingPathWithPublicProperty } from 'utils/publicProperty'\nimport { trackSync as track } from 'utils/analytics'\n\nimport PageLoad from 'non-rendering/PageLoad'\n\nimport Header from 'components/MarketingSite/Header'\nimport AddressAutocomplete from 'components/MarketingSite/Header/AddressAutocomplete'\n\nimport ComparableHomesNearby from './ComparableHomesNearby'\nimport CurrentValue from './CurrentValue'\nimport Footer from './Footer'\nimport FAQ from './FAQ'\nimport Hero from './Hero'\nimport ProjectCustomization from './ProjectCustomization'\nimport SaveThisProperty from './SaveThisProperty'\nimport ScoreAndLivableSpace from './ScoreAndLivableSpace'\nimport Quotes from './Quotes'\n\nimport styles from './styles.module.scss'\nimport InternalLinks, { InternalLink } from 'components/InternalLinks'\nimport cx from 'classnames'\n\ninterface PublicPropertyProps {\n internal_links?: InternalLink[]\n}\n\nconst PublicProperty: FC = ({ internal_links }) => {\n const publicProperty = useRecoilValue(publicPropertyState)\n const publicPropertyPrismicData = useRecoilValue(publicPropertyPrismicDataState)\n\n const handleGetStartedClick = useCallback(() => {\n track('getStarted')\n }, [])\n\n if (!publicProperty || !publicPropertyPrismicData) return null\n\n return (\n
\n \n
\n \n
\n
\n
\n
\n

{formatPublicPropertyAddress(publicProperty)}

\n
\n

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

\n {publicPropertyPrismicData.description?.map((e, i) =>

{e.text}

)}\n
\n
\n
\n \n
\n
\n
\n
\n
\n

{'Start building a plan for your property with a free account'}

\n \n {'Get started' /* note this is using a no-break space */}\n \n
\n
\n
\n \n \n \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\nexport interface PublicPropertyRecoilContainerProps {\n avm: AttomAvm\n buildable_area: BuildableArea\n potential: PublicPropertyPotential\n prismic_data: { data: PublicPropertyPrismicData }\n public_property: AttomTaxAssessor\n enriched: PublicPropertyEnriched\n light_relative_stats: PublicPropertyLightRelativeStats | null\n internal_links?: InternalLink[]\n}\n\n// Container that just sets the initial recoil state\n// I know, I know...one component per file, but this is just a little baby wrapper for Recoil :)\nconst PublicPropertyRecoilContainer: React.FC = ({\n avm,\n buildable_area,\n potential,\n prismic_data,\n public_property,\n enriched,\n light_relative_stats,\n internal_links,\n}) => {\n const initializeState = useCallback(\n ({ set }: MutableSnapshot): void => {\n set(publicPropertyAvmState, avm)\n set(publicPropertyState, public_property)\n set(publicPropertyPotentialState, potential)\n set(publicPropertyPrismicDataState, prismic_data.data)\n set(publicPropertyBuildableAreaState, buildable_area)\n set(publicPropertyEnrichedState, enriched)\n set(publicPropertyRelativeStatsState, light_relative_stats)\n },\n [avm, buildable_area, potential, prismic_data, public_property, enriched, light_relative_stats]\n )\n\n return (\n \n \n \n )\n}\n\nexport default PublicPropertyRecoilContainer\n","// extracted by mini-css-extract-plugin\nexport default {\"unavailable\":\"vRBmBX4sx3oLV2cGeu2U\",\"wrapper\":\"wVsU7pEj660ZKhaWHfzk\",\"card\":\"os2kW6frrZJdQBHJhDkv\",\"submit\":\"IzPIRGraXVnsSIK0s72W\",\"big\":\"dW0mjgCIwckW2_KHIbwN\",\"success\":\"gWxGoM_tPHxqcVVyoHTh\",\"sparkles\":\"wBEgU9et_ozDKHFaWPhQ\",\"email\":\"JLt4j81AGyFZoBMbpE5p\",\"didYouMeanSection\":\"z3hHM_LKFQqxdEfampAZ\",\"suggestion\":\"HZb9rPbC0Is7vyWJk_Xu\",\"small\":\"Ap2j_aAIz0fvbC1sBrxH\"};","import React, { useState, useEffect, FC } from 'react'\nimport { formatPublicPropertyAddress } from 'utils/formatting'\nimport Header from 'components/MarketingSite/Header'\nimport Footer from 'components/MarketingSite/Footer'\nimport AddressAutocomplete from 'components/MarketingSite/Header/AddressAutocomplete'\nimport Card from 'components/Card'\n\nimport styles from './styles.module.scss'\n\ninterface UnavailableProps {\n address: string\n suggestions?: {\n attom_id: string\n propertyaddressfull: string\n propertyaddresscity: string\n propertyaddressstate: string\n propertyaddresszip: string\n public_property_path: string\n }[]\n}\n\nconst Unavailable: FC = ({ address, suggestions }) => {\n const [campaignId, setCampaignId] = useState()\n\n useEffect(() => {\n if (!campaignId) {\n const searchParams = new URLSearchParams(window.location.search)\n if (searchParams.has('mc')) {\n // If this was a marketing campaign, grab the campaign\n const newCampaignId = searchParams.get('mc') as string\n setCampaignId(newCampaignId)\n }\n }\n }, [campaignId])\n\n return (\n
\n
\n \n
\n
\n \n

{address}

\n

{'This property is not covered.... yet!'}

\n {(suggestions?.length || 0) > 0 && (\n
\n

{'Did you mean?'}

\n
\n {suggestions?.map((suggestion) => {\n let linkPath = `/onboarding?attom_id=${suggestion.attom_id}`\n // If they're here as part of a marketing campaign, we need to send them\n // to sign_up with these links.\n if (campaignId) {\n linkPath = `/onboarding?attom_id=${suggestion.attom_id}&mc=${campaignId}`\n }\n return (\n \n )\n })}\n
\n
\n )}\n

\n {'Realm offers coverage of detached single family homes in '}\n \n {'certain geographies'}\n \n {\n '. We are actively adding new geographies each week and plan to expand to multi-family homes and condos later this year.'\n }\n

\n
\n
\n
\n
\n )\n}\n\nexport default Unavailable\n","import 'stylesheets/application.scss'\nimport 'utils/sentry'\n\nimport ReactOnRails from 'react-on-rails'\n\nimport BlogHome from 'pages/_serverRendered/Blog/Home'\nimport BlogPost from 'pages/_serverRendered/Blog/BlogPost'\nimport CmsPage from 'pages/_serverRendered/CmsPage'\nimport CmsPageV2 from 'pages/_serverRendered/CmsPageV2'\nimport ContractorsNearMe from 'pages/_serverRendered/landing/ContractorsNearMe'\nimport Homepage from 'pages/_serverRendered/Homepage'\nimport HomepageV2212 from 'pages/_serverRendered/HomepageV2212'\nimport HomeSearch from 'pages/_serverRendered/HomeSearch'\nimport HomeValuesNearMe from 'pages/_serverRendered/landing/HomeValuesNearMe'\nimport Learn from 'pages/_serverRendered/Learn'\nimport Meet from 'pages/_serverRendered/Meet'\nimport Privacy from 'pages/_serverRendered/Privacy'\nimport ProjectCaseStudy from 'pages/_serverRendered/ProjectCaseStudy'\nimport ProjectPricing from 'pages/_serverRendered/ProjectPricing'\nimport PropertyPotential from 'pages/_serverRendered/landing/PropertyPotential'\nimport PublicCity from 'pages/_serverRendered/Public/City'\nimport PublicNeighborhood from 'pages/_serverRendered/PublicNeighborhood'\nimport PublicProperty from 'pages/_serverRendered/PublicProperty'\nimport PublicState from 'pages/_serverRendered/Public/State'\nimport RateTable from 'pages/_serverRendered/RateTable'\nimport Terms from 'pages/_serverRendered/Terms'\nimport Unavailable from 'pages/_serverRendered/Unavailable'\nimport VendorContract from 'pages/_serverRendered/VendorContract'\nimport VendorSignup from 'pages/_serverRendered/VendorSignup'\nimport EventSignup from 'pages/_serverRendered/EventSignup'\nimport AeEventSignup from 'pages/_serverRendered/AeEventSignup'\nimport VendorSiteVisit from 'pages/_serverRendered/VendorSiteVisit'\nimport HomeownerSiteVisit from 'pages/_serverRendered/HomeownerSiteVisit'\n\nReactOnRails.register({\n BlogHome,\n BlogPost,\n CmsPage,\n CmsPageV2,\n ContractorsNearMe,\n Homepage,\n HomepageV2212,\n HomeSearch,\n HomeValuesNearMe,\n Learn,\n Meet,\n Privacy,\n ProjectCaseStudy,\n ProjectPricing,\n PropertyPotential,\n PublicCity,\n PublicNeighborhood,\n PublicProperty,\n PublicState,\n RateTable,\n Terms,\n Unavailable,\n VendorContract,\n VendorSignup,\n VendorSiteVisit,\n HomeownerSiteVisit,\n EventSignup,\n AeEventSignup,\n})\n","import React, { FC } from 'react'\n\nimport { CtaButtonSlice } from 'pages/_serverRendered/Blog/types'\n\ninterface CtaButtonProps {\n slice: CtaButtonSlice\n}\n\nconst CtaButton: FC = ({ slice }) => {\n return (\n
\n \n {slice.primary.cta_text}\n \n
\n )\n}\n\nexport default CtaButton\n","import React, { FC, useCallback, useEffect, useRef, useState } from 'react'\nimport { GetStartedSlice } from 'pages/_serverRendered/Blog/types'\nimport FullAddressInput, { Prediction } from 'components/FullAddressInput'\nimport { hasTextPresent } from 'pages/_serverRendered/CmsPage/Section/Components/PresentRichText'\nimport { track } from 'utils/analytics'\n\nimport styles from '../styles.module.scss'\n\ninterface GetStartedProps {\n slice: GetStartedSlice\n}\n\nconst GetStarted: FC = ({ slice }) => {\n const [inputValue, setInputValue] = useState('')\n\n const handlePredictionSelected = useCallback((prediction: Prediction | null) => {\n if (!prediction) return\n const queryParams = {\n place_id: prediction.placeId,\n }\n if (new URLSearchParams(window.location.search).has('mc')) {\n // Forward on marketing campaign id.\n queryParams['mc'] = new URLSearchParams(window.location.search).get('mc')\n }\n // No variant param for this component to check first.\n if (window.location.pathname == '/l/giveaway') {\n queryParams['variant'] = 'sign_up'\n } else if (window.location.pathname !== '/l/project_max' && queryParams['variant'] !== 'compare') {\n queryParams['variant'] = 'onboarding-2-0'\n }\n const queryString = new URLSearchParams(queryParams).toString()\n window.location.href = `/google_places/search?${queryString}`\n }, [])\n\n const isDone = useRef(false)\n useEffect(() => {\n if (inputValue.length > 0 && !isDone.current) {\n isDone.current = true\n track('address start typing', { position: 'get-started' })\n }\n }, [inputValue])\n\n return (\n
\n
\n {hasTextPresent(slice.primary.title1) &&

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

}\n {hasTextPresent(slice.primary.text) &&

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

}\n
\n \n
\n )\n}\n\nexport default GetStarted\n","import React, { FC } from 'react'\n\nimport Carousel from 'react-slick'\nimport { ImageCarouselSlice } from 'pages/_serverRendered/Blog/types'\n\ninterface ImageCarouselProps {\n slice: ImageCarouselSlice\n}\n\nconst IMG_WIDTH = 770\n\nconst ImageCarousel: FC = ({ slice }) => {\n return (\n \n {slice.items.map((e) => (\n
\n {e.image.url && (\n \n )}\n
\n ))}\n
\n )\n}\n\nexport default ImageCarousel\n","import React, { FC } from 'react'\nimport { PdfEmbedSlice } from 'pages/_serverRendered/Blog/types'\n\ninterface PdfEmbedProps {\n slice: PdfEmbedSlice\n}\n\nconst PdfEmbed: FC = ({ slice }) => {\n if (slice.primary.file.link_type !== 'Media' || slice.primary.file.kind !== 'document') return null\n\n return (\n
\n