{"version":3,"file":"Marketing-BA5BI45p.js","sources":["../../../node_modules/@turf/circle/dist/esm/index.js","../../../app/javascript/components/public-suitability-tool/components/basic.jsx","../../../app/javascript/components/public-suitability-tool/constants.jsx","../../../node_modules/p-cancelable/index.js","../../../app/javascript/components/public-suitability-tool/helpers.js","../../../app/javascript/components/public-suitability-tool/components/LandBoundariesLayer.jsx","../../../app/javascript/components/public-suitability-tool/components/CTAPanel.jsx","../../../app/javascript/utils/loadTilesetsMetadata.js","../../../app/javascript/utils/webgl/suitability-calculations/suitabilityAcrossLayers.js","../../../app/javascript/components/public-suitability-tool/hooks.js","../../../app/javascript/components/public-suitability-tool/components/GreenButton.jsx","../../../app/javascript/components/public-suitability-tool/components/CropInfo.jsx","../../../app/javascript/components/public-suitability-tool/components/InfoPanel.jsx","../../../app/javascript/components/public-suitability-tool/components/PostSubmit.jsx","../../../app/javascript/utils/submitMarketingInbound.js","../../../app/javascript/hooks/useAsSequentialAsync.js","../../../app/javascript/components/public-suitability-tool/PublicSuitabilityTool.jsx","../../../app/javascript/routes/MarketingRoutes.tsx","../../../app/javascript/entrypoints/Marketing.jsx"],"sourcesContent":["// index.ts\nimport { destination } from \"@turf/destination\";\nimport { polygon } from \"@turf/helpers\";\nfunction circle(center, radius, options = {}) {\n const steps = options.steps || 64;\n const properties = options.properties ? options.properties : !Array.isArray(center) && center.type === \"Feature\" && center.properties ? center.properties : {};\n const coordinates = [];\n for (let i = 0; i < steps; i++) {\n coordinates.push(\n destination(center, radius, i * -360 / steps, options).geometry.coordinates\n );\n }\n coordinates.push(coordinates[0]);\n return polygon([coordinates], properties);\n}\nvar turf_circle_default = circle;\nexport {\n circle,\n turf_circle_default as default\n};\n//# sourceMappingURL=index.js.map","import styled from 'styled-components';\nimport { Button } from 'reactstrap';\n\nimport { BREAKPOINTS, useBreakpointSize } from '../../../utils/responsive';\n\nconst DROP_SHADOW = 'box-shadow: 2px 2px 4px 2px rgb(0 0 0 / 20%);';\n\nexport const MainContainer = styled.div`\n position: relative;\n\n height: 100vh; // fallback\n height: 100dvh;\n\n width: 100vw;\n max-width: 1800px;\n\n margin: 0 auto;\n overflow: hidden;\n\n display: flex;\n\n flex-direction: column;\n @media (min-width: ${BREAKPOINTS.lg}) {\n flex-direction: row;\n max-height: 1200px;\n }\n\n background-color: white;\n\n /* class for buttons on map to make them match the cards better */\n .map-button {\n ${DROP_SHADOW}\n background-color: #fff !important;\n font-size: 15.6px;\n\n width: fit-content;\n }\n`;\n\nexport const FullOverlay = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(64, 64, 64, 0.75);\n z-index: 1001;\n\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\n// styles to match reactstrap buttons, plus drop shadow + more padding\nconst CardBase = styled.div`\n color: #212529;\n background-color: #fff;\n border-color: var(--border-color);\n border-radius: 3px;\n\n padding: 16px;\n\n ${DROP_SHADOW}\n`;\n\nexport const LoadingCard = styled(CardBase)`\n display: flex;\n flex-direction: column;\n max-width: calc(100vw - 32px);\n text-align: center;\n\n width: 300px;\n padding: 16px;\n font-size: 15.6px;\n\n @media (min-width: ${BREAKPOINTS.md}) {\n width: 420px;\n padding: 24px;\n font-size: 20px;\n }\n`;\n\nexport const PromptCard = styled(CardBase)`\n max-width: calc(100vw - 32px);\n text-align: center;\n\n width: 380px;\n padding: 16px;\n font-size: 15.6px;\n\n @media (min-width: ${BREAKPOINTS.md}) {\n width: 480px;\n padding: 24px;\n font-size: 20px;\n }\n`;\n\nexport const InfoCard = styled(CardBase)`\n font-size: 15.6px;\n`;\n\nexport const InfoText = styled.div`\n color: white;\n text-shadow: 0 0 16px rgb(0 0 0 / 50%);\n text-align: center;\n\n font-size: 18px;\n padding: 0 16px 12px;\n @media (min-width: ${BREAKPOINTS.md}) {\n font-size: 20px;\n padding: 0 16px 16px;\n }\n @media (min-width: ${BREAKPOINTS.lg}) {\n font-size: 26px;\n }\n`;\n\n// Add xs size to reactstrap Button\nconst ButtonWithXs = styled(Button)`\n &.btn-xs {\n padding: 2px 6px;\n font-size: 12px;\n\n @media (min-width: ${BREAKPOINTS.xs}) {\n font-size: 13px;\n }\n }\n`;\n\n/**\n * Extension of reactstrap Button with responsive sizing.\n *\n * Pass `sizes`, an array of strings, e.g. ['xs', 'sm', 'md', 'lg'], to specify\n * which sizes can be used.\n */\nexport const ResponsiveButton = ({ sizes = ['sm', 'md', 'lg'], ...props }) => {\n const size = useBreakpointSize(sizes);\n return