{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/0ZSF8VJcL5AhXebKiUw3/nbsZGufHZBGrLw7CNirb/Mailchimp.js"],
  "sourcesContent": ["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { addPropertyControls, ControlType, RenderTarget, withCSS } from \"framer\";\nimport { motion } from \"framer-motion\";\nimport { containerStyles, usePadding, useRadius, paddingControl, borderRadiusControl, fontControls, useFontControls } from \"https://framer.com/m/framer/default-utils.js@^0.45.0\";\nconst emailRegex = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\nconst mailchimpRegex = /^https?:\\/\\/([^\\/]+)[^\\?]+\\??(.+)$/;\nconst validateEmail = email => {\n  return emailRegex.test(String(email).toLowerCase());\n};\nconst parseMailChimpUrl = url => {\n  var ref;\n  const [, domain, parameters] = (ref = url.replace(\"&amp;\", \"&\").match(mailchimpRegex)) !== null && ref !== void 0 ? ref : [null, null, null];\n  return [domain, new URLSearchParams(parameters)];\n}; /**\n   * MAILCHIMP\n   *\n   * @framerIntrinsicWidth 430\n   * @framerIntrinsicHeight 52\n   *\n   * @framerSupportedLayoutWidth fixed\n   * @framerSupportedLayoutHeight auto\n   */\nconst Mailchimp = withCSS(function Mailchimp({\n  url,\n  input,\n  button,\n  layout,\n  style,\n  gap,\n  onSubmit,\n  ...props\n}) {\n  const [email1, setEmail] = useState(input.value);\n  const [isError, setError] = useState(false);\n  const [isLoading, setLoading] = useState(false);\n  const [isSuccess, setSuccess] = useState(false);\n  const isCanvas = useMemo(() => {\n    return RenderTarget.current() === RenderTarget.canvas;\n  }, []);\n  const {\n    fontFamily,\n    fontSize,\n    fontWeight\n  } = useFontControls(props);\n  const borderRadius = useRadius(props);\n  const paddingValue = usePadding(props);\n  const validateForm = useCallback(email => {\n    if (email === \"\" || !validateEmail(email)) {\n      setError(true);\n      return false;\n    }\n    return true;\n  }, []);\n  const handleChange = useCallback(event => {\n    setError(false);\n    setEmail(event.target.value);\n  }, []);\n  const handleSubmit = useCallback(() => {\n    event.preventDefault();\n    const [domain, parameters] = parseMailChimpUrl(url);\n    if (!validateForm(email1) || !domain || !parameters) {\n      setLoading(false);\n    } else {\n      parameters.set(\"MERGE0\", email1) // MERGE0 being Mailchimp's email field name\n      ;\n      fetch(`https://${domain}/subscribe/post`, {\n        method: \"POST\",\n        mode: \"no-cors\",\n        headers: {\n          \"Content-Type\": \"application/x-www-form-urlencoded;charset=UTF-8\"\n        },\n        body: parameters.toString()\n      }).then(response => {\n        setSuccess(true);\n        onSubmit();\n      }).catch(() => {\n        setLoading(false);\n      });\n    }\n  }, [url, email1]);\n  const handleClick = useCallback(() => {\n    setLoading(true);\n  }, []);\n  return /*#__PURE__*/_jsx(motion.div, {\n    style: {\n      ...style,\n      ...containerStyles,\n      \"--framer-mailchimp-placeholder-color\": input.placeholderColor\n    },\n    children: isSuccess ? /*#__PURE__*/_jsx(motion.div, {\n      style: {\n        height: \"60px\",\n        width: \"60px\",\n        background: button.fill,\n        color: button.color,\n        borderRadius: \"50%\",\n        display: \"flex\",\n        justifyContent: \"center\",\n        alignItems: \"center\"\n      },\n      initial: {\n        scale: 0\n      },\n      animate: {\n        scale: 1\n      },\n      transition: {\n        duration: 0.3\n      },\n      children: /*#__PURE__*/_jsx(\"svg\", {\n        xmlns: \"http://www.w3.org/2000/svg\",\n        width: \"28\",\n        height: \"28\",\n        children: /*#__PURE__*/_jsx(\"path\", {\n          d: \"M 2 14 L 10 22 L 26 6\",\n          fill: \"transparent\",\n          strokeWidth: \"4\",\n          stroke: \"currentColor\",\n          strokeLinecap: \"round\"\n        })\n      })\n    }) : /*#__PURE__*/_jsxs(\"form\", {\n      style: {\n        width: \"100%\",\n        display: \"grid\",\n        gap,\n        gridTemplateColumns: layout === \"vertical\" ? \"1fr\" : \"1fr max-content\",\n        gridTemplateRows: layout === \"vertical\" ? \"1fr 1fr\" : \"1fr\"\n      },\n      onSubmit: handleSubmit,\n      method: \"POST\",\n      children: [/*#__PURE__*/_jsx(\"div\", {\n        style: {\n          position: \"absolute\",\n          visibility: \"hidden\"\n        },\n        \"aria-hidden\": \"true\",\n        children: /*#__PURE__*/_jsx(\"input\", {\n          type: \"text\",\n          name: \"b_1487cc549a49109c00fe60a80_93cd7be172\",\n          tabIndex: -1\n        })\n      }), /*#__PURE__*/_jsx(\"input\", {\n        type: \"email\",\n        name: \"email\",\n        placeholder: input.placeholder,\n        value: isCanvas ? input.value : email1,\n        className: \"framer-mailchimp-input\",\n        onChange: handleChange,\n        style: {\n          ...defaultStyle,\n          padding: paddingValue,\n          borderRadius,\n          fontFamily,\n          fontWeight,\n          fontSize,\n          background: input.fill,\n          color: input.color,\n          boxShadow: `inset 0 0 0 1px ${isError ? input.error : \"transparent\"}`\n        }\n      }), /*#__PURE__*/_jsxs(\"div\", {\n        style: {\n          position: \"relative\"\n        },\n        children: [/*#__PURE__*/_jsx(motion.input, {\n          type: \"submit\",\n          value: button.label,\n          onClick: handleClick,\n          style: {\n            ...defaultStyle,\n            cursor: \"pointer\",\n            borderRadius,\n            padding: paddingValue,\n            fontFamily,\n            fontWeight: button.fontWeight,\n            fontSize,\n            background: button.fill,\n            color: button.color,\n            zIndex: 1\n          },\n          transition: {\n            type: \"ease\",\n            duration: 0.3\n          },\n          whileHover: {\n            opacity: 0.8\n          }\n        }), isLoading && /*#__PURE__*/_jsx(\"div\", {\n          style: {\n            borderRadius,\n            position: \"absolute\",\n            display: \"flex\",\n            justifyContent: \"center\",\n            alignItems: \"center\",\n            width: \"100%\",\n            height: \"100%\",\n            left: 0,\n            top: 0,\n            zIndex: 2,\n            color: button.color,\n            background: button.fill\n          },\n          children: /*#__PURE__*/_jsx(motion.div, {\n            style: {\n              height: 16,\n              width: 16\n            },\n            initial: {\n              rotate: 0\n            },\n            animate: {\n              rotate: 360\n            },\n            transition: {\n              duration: 2,\n              repeat: Infinity\n            },\n            children: /*#__PURE__*/_jsxs(\"svg\", {\n              xmlns: \"http://www.w3.org/2000/svg\",\n              width: \"16\",\n              height: \"16\",\n              children: [/*#__PURE__*/_jsx(\"path\", {\n                d: \"M 8 0 C 3.582 0 0 3.582 0 8 C 0 12.419 3.582 16 8 16 C 12.418 16 16 12.419 16 8 C 15.999 3.582 12.418 0 8 0 Z M 8 14 C 4.687 14 2 11.314 2 8 C 2 4.687 4.687 2 8 2 C 11.314 2 14 4.687 14 8 C 14 11.314 11.314 14 8 14 Z\",\n                fill: \"currentColor\",\n                opacity: \"0.2\"\n              }), /*#__PURE__*/_jsx(\"path\", {\n                d: \"M 8 0 C 12.418 0 15.999 3.582 16 8 C 16 8 16 9 15 9 C 14 9 14 8 14 8 C 14 4.687 11.314 2 8 2 C 4.687 2 2 4.687 2 8 C 2 8 2 9 1 9 C 0 9 0 8 0 8 C 0 3.582 3.582 0 8 0 Z\",\n                fill: \"currentColor\"\n              })]\n            })\n          })\n        })]\n      })]\n    })\n  });\n}, [\".framer-mailchimp-input::placeholder { color: var(--framer-mailchimp-placeholder-color) !important; }\"]);\nMailchimp.defaultProps = {\n  fontSize: 16,\n  fontFamily: \"Inter\",\n  fontWeight: 400,\n  padding: 15,\n  paddingTop: 15,\n  paddingBottom: 15,\n  paddingLeft: 15,\n  paddingRight: 15,\n  borderRadius: 8,\n  topLeftRadius: 8,\n  topRightRadius: 8,\n  bottomRightRadius: 8,\n  bottomLeftRadius: 8,\n  gap: 15\n};\naddPropertyControls(Mailchimp, {\n  url: {\n    title: \"URL\",\n    placeholder: \"https://***.us6.list-manage.com/subscribe/post?u=***\",\n    type: ControlType.String,\n    description: \"Create a [Mailchimp](https://mailchimp.com/) account and copy your embedded form URL. [Learn more\u2026](https://www.framer.com/sites/integrations/mailchimp/)\"\n  },\n  layout: {\n    title: \"Layout\",\n    type: ControlType.Enum,\n    options: [\"horizontal\", \"vertical\"],\n    displaySegmentedControl: true\n  },\n  input: {\n    title: \"Input\",\n    type: ControlType.Object,\n    controls: {\n      placeholder: {\n        title: \"Placeholder\",\n        type: ControlType.String,\n        defaultValue: \"email@framer.com\"\n      },\n      placeholderColor: {\n        title: \" \",\n        type: ControlType.Color,\n        defaultValue: \"rgba(0, 0, 0, 0.3)\"\n      },\n      value: {\n        title: \"Value\",\n        type: ControlType.String\n      },\n      fill: {\n        title: \"Fill\",\n        type: ControlType.Color,\n        defaultValue: \"#EBEBEB\"\n      },\n      color: {\n        title: \"Text\",\n        type: ControlType.Color,\n        defaultValue: \"#000\"\n      },\n      error: {\n        title: \"Error\",\n        type: ControlType.Color,\n        defaultValue: \"#EE4444\"\n      }\n    }\n  },\n  button: {\n    title: \"Button\",\n    type: ControlType.Object,\n    controls: {\n      label: {\n        title: \"Label\",\n        type: ControlType.String,\n        defaultValue: \"Sign Up\"\n      },\n      fontWeight: {\n        ...fontControls.fontWeight,\n        defaultValue: 600\n      },\n      fill: {\n        title: \"Fill\",\n        type: ControlType.Color,\n        defaultValue: \"#000\"\n      },\n      color: {\n        title: \"Text\",\n        type: ControlType.Color,\n        defaultValue: \"#FFF\"\n      }\n    }\n  },\n  ...fontControls,\n  fontSize: {\n    title: \"Font Size\",\n    type: ControlType.Number,\n    displayStepper: true,\n    defaultValue: 16\n  },\n  ...paddingControl,\n  ...borderRadiusControl,\n  gap: {\n    title: \"Gap\",\n    type: ControlType.Number,\n    displayStepper: true,\n    min: 0\n  },\n  onSubmit: {\n    type: ControlType.EventHandler\n  }\n});\nconst defaultStyle = {\n  WebkitAppearance: \"none\",\n  width: \"100%\",\n  lineHeight: \"1.4em\",\n  outline: \"none\",\n  border: \"none\"\n};\nexport default Mailchimp;\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"default\": {\n      \"type\": \"reactComponent\",\n      \"name\": \"Mailchimp\",\n      \"slots\": [],\n      \"annotations\": {\n        \"framerIntrinsicHeight\": \"52\",\n        \"framerIntrinsicWidth\": \"430\",\n        \"framerContractVersion\": \"1\",\n        \"framerSupportedLayoutHeight\": \"auto\",\n        \"framerSupportedLayoutWidth\": \"fixed\"\n      }\n    },\n    \"__FramerMetadata__\": {\n      \"type\": \"variable\"\n    }\n  }\n};\n//# sourceMappingURL=./Mailchimp.map"],
  "mappings": "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",
  "names": ["emailRegex", "mailchimpRegex", "validateEmail", "email", "parseMailChimpUrl", "url", "ref", "domain", "parameters", "Mailchimp", "withCSS", "input", "button", "layout", "style", "gap", "onSubmit", "props", "email1", "setEmail", "ye", "isError", "setError", "isLoading", "setLoading", "isSuccess", "setSuccess", "isCanvas", "se", "RenderTarget", "fontFamily", "fontSize", "fontWeight", "useFontControls", "borderRadius", "useRadius", "paddingValue", "usePadding", "validateForm", "te", "handleChange", "event", "handleSubmit", "response", "handleClick", "p", "motion", "containerStyles", "u", "defaultStyle", "addPropertyControls", "ControlType", "fontControls", "paddingControl", "borderRadiusControl", "Mailchimp_default"]
}
