{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/B2xAlJLcN0gOnt11mSPw/nFAy8p4fOASsyhPbo192/Ticker.js", "ssg:https://framerusercontent.com/modules/vkHAj2Yk0mTnbM6ZdN5c/PlLMu0V3HsBupvdXeFrH/FormSpark.js"],
  "sourcesContent": ["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Children, useEffect, useState, useRef, useMemo, createRef, useCallback, cloneElement } from \"react\";\nimport { addPropertyControls, ControlType, RenderTarget } from \"framer\";\nimport { useAnimationFrame, useReducedMotion, LayoutGroup, useInView, useMotionValue, useTransform, motion, wrap } from \"framer-motion\";\nimport { resize } from \"@motionone/dom\";\nconst directionTransformers = {\n  left: offset => `translateX(-${offset}px)`,\n  right: offset => `translateX(${offset}px)`,\n  top: offset => `translateY(-${offset}px)`,\n  bottom: offset => `translateY(${offset}px)`\n};\nconst supportsAcceleratedAnimations = typeof Animation !== \"undefined\" && typeof Animation.prototype.updatePlaybackRate === \"function\"; /**\n                                                                                                                                        *\n                                                                                                                                        * @framerIntrinsicWidth 400\n                                                                                                                                        * @framerIntrinsicHeight 200\n                                                                                                                                        *\n                                                                                                                                        * @framerDisableUnlink\n                                                                                                                                        *\n                                                                                                                                        * @framerSupportedLayoutWidth fixed\n                                                                                                                                        * @framerSupportedLayoutHeight fixed\n                                                                                                                                        */\nexport default function Ticker(props) {\n  /* Props */let {\n    slots,\n    gap,\n    padding,\n    paddingPerSide,\n    paddingTop,\n    paddingRight,\n    paddingBottom,\n    paddingLeft,\n    speed,\n    hoverFactor,\n    direction,\n    alignment,\n    sizingOptions,\n    fadeOptions,\n    style\n  } = props;\n  const {\n    fadeContent,\n    overflow,\n    fadeWidth,\n    fadeInset,\n    fadeAlpha\n  } = fadeOptions;\n  const {\n    widthType,\n    heightType\n  } = sizingOptions;\n  const paddingValue = paddingPerSide ? `${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px` : `${padding}px`; /* Checks */\n  const isCanvas = RenderTarget.current() === RenderTarget.canvas;\n  const numChildren = Children.count(slots);\n  const hasChildren = numChildren > 0;\n  if (direction === true) {\n    direction = \"left\";\n  }\n  const isHorizontal = direction === \"left\" || direction === \"right\";\n  const offset = useMotionValue(0);\n  const transformer = directionTransformers[direction];\n  const transform = useTransform(offset, transformer); /* Refs and State */\n  const parentRef = useRef(null);\n  const childrenRef = useMemo(() => {\n    return [/*#__PURE__*/createRef(), /*#__PURE__*/createRef()];\n  }, []);\n  const [size, setSize] = useState({\n    parent: null,\n    children: null\n  }); /* Arrays */\n  let clonedChildren = [];\n  let dupedChildren = []; /* Duplicate value */\n  let duplicateBy = 0;\n  let opacity = 0;\n  if (isCanvas) {\n    // duplicateBy = 10\n    duplicateBy = numChildren ? Math.floor(10 / numChildren) : 0;\n    opacity = 1;\n  }\n  if (!isCanvas && hasChildren && size.parent) {\n    duplicateBy = Math.round(size.parent / size.children * 2) + 1;\n    opacity = 1;\n  } /* Measure parent and child */\n  const measure = useCallback(() => {\n    if (hasChildren && parentRef.current) {\n      const parentLength = isHorizontal ? parentRef.current.offsetWidth : parentRef.current.offsetHeight;\n      const start = childrenRef[0].current ? isHorizontal ? childrenRef[0].current.offsetLeft : childrenRef[0].current.offsetTop : 0;\n      const end = childrenRef[1].current ? isHorizontal ? childrenRef[1].current.offsetLeft + childrenRef[1].current.offsetWidth : childrenRef[1].current.offsetTop + childrenRef[1].current.offsetHeight : 0;\n      const childrenLength = end - start + gap;\n      setSize({\n        parent: parentLength,\n        children: childrenLength\n      });\n    }\n  }, []);\n  const childrenStyles = isCanvas ? {\n    contentVisibility: \"auto\"\n  } : {}; /* Add refs to first and last child */\n  if (hasChildren) {\n    // TODO: These conditional hooks will be unsafe if hasChildren ever changes outside the canvas.\n    if (!isCanvas) {\n      /**\n      * Track whether this is the initial resize event. By default this will fire on mount,\n      * which we do in the useEffect. We should only fire it on subsequent resizes.\n      */\n      let initialResize = useRef(true);\n      useEffect(() => {\n        measure();\n        return resize(parentRef.current, ({\n          contentSize\n        }) => {\n          if (!initialResize.current && (contentSize.width || contentSize.height)) {\n            measure();\n          }\n          initialResize.current = false;\n        });\n      }, []);\n    }\n    clonedChildren = Children.map(slots, (child, index) => {\n      var ref, ref1, ref2, ref3;\n      let ref4;\n      if (index === 0) {\n        ref4 = childrenRef[0];\n      }\n      if (index === slots.length - 1) {\n        ref4 = childrenRef[1];\n      }\n      const size = {\n        width: widthType ? (ref = child.props) === null || ref === void 0 ? void 0 : ref.width : \"100%\",\n        height: heightType ? (ref1 = child.props) === null || ref1 === void 0 ? void 0 : ref1.height : \"100%\"\n      };\n      return /*#__PURE__*/_jsx(LayoutGroup, {\n        inherit: \"id\",\n        children: /*#__PURE__*/_jsx(\"li\", {\n          ref: ref4,\n          style: size,\n          children: /*#__PURE__*/cloneElement(child, {\n            style: {\n              ...((ref2 = child.props) === null || ref2 === void 0 ? void 0 : ref2.style),\n              ...size,\n              flexShrink: 0,\n              ...childrenStyles\n            },\n            layoutId: child.props.layoutId ? child.props.layoutId + \"-original-\" + index : undefined\n          }, (ref3 = child.props) === null || ref3 === void 0 ? void 0 : ref3.children)\n        })\n      });\n    });\n  }\n  if (!isCanvas) {\n    for (let i = 0; i < duplicateBy; i++) {\n      dupedChildren = [...dupedChildren, ...Children.map(slots, (child, childIndex) => {\n        var ref, ref1, ref2, ref3;\n        return /*#__PURE__*/_jsx(LayoutGroup, {\n          inherit: \"id\",\n          children: /*#__PURE__*/_jsx(\"li\", {\n            style: {\n              display: \"contents\"\n            },\n            \"aria-hidden\": true,\n            children: /*#__PURE__*/cloneElement(child, {\n              key: i + \" \" + childIndex,\n              style: {\n                ...((ref = child.props) === null || ref === void 0 ? void 0 : ref.style),\n                width: widthType ? (ref1 = child.props) === null || ref1 === void 0 ? void 0 : ref1.width : \"100%\",\n                height: heightType ? (ref2 = child.props) === null || ref2 === void 0 ? void 0 : ref2.height : \"100%\",\n                flexShrink: 0,\n                ...childrenStyles\n              },\n              layoutId: child.props.layoutId ? child.props.layoutId + \"-dupe-\" + i : undefined\n            }, (ref3 = child.props) === null || ref3 === void 0 ? void 0 : ref3.children)\n          }, i + \"li\" + childIndex)\n        }, i + \"lg\" + childIndex);\n      })];\n    }\n  }\n  const animateToValue = size.children + size.children * Math.round(size.parent / size.children);\n  const initialTime = useRef(null);\n  const prevTime = useRef(null);\n  const xOrY = useRef(0);\n  const isHover = useRef(false);\n  const isInView = useInView(parentRef);\n  const isReducedMotion = useReducedMotion();\n  const listRef = useRef(null);\n  const animationRef = useRef(null); /**\n                                     * Setup animations\n                                     */\n  if (!isCanvas) {\n    /**\n    * If this is an animation we can hardware accelerate, animate with WAAPI\n    */\n    if (supportsAcceleratedAnimations) {\n      useEffect(() => {\n        if (isReducedMotion || !animateToValue || !speed) {\n          return;\n        }\n        animationRef.current = listRef.current.animate({\n          transform: [transformer(0), transformer(animateToValue)]\n        }, {\n          duration: Math.abs(animateToValue) / speed * 1e3,\n          iterations: Infinity,\n          easing: \"linear\"\n        });\n        return () => animationRef.current.cancel();\n      }, [hoverFactor, animateToValue, speed]);\n    } else {\n      /**\n      * If we can't accelerate this animation because we have a hoverFactor defined\n      * animate with a rAF loop.\n      */\n      useAnimationFrame(t => {\n        if (!animateToValue || isReducedMotion || supportsAcceleratedAnimations) {\n          return;\n        } /**\n          * In case this animation is delayed from starting because we're running a bunch\n          * of other work, we want to set an initial time rather than counting from 0.\n          * That ensures that if the animation is delayed, it starts from the first frame\n          * rather than jumping.\n          */\n        if (initialTime.current === null) {\n          initialTime.current = t;\n        }\n        t = t - initialTime.current;\n        const timeSince = prevTime.current === null ? 0 : t - prevTime.current;\n        let delta = timeSince * (speed / 1e3);\n        if (isHover.current) {\n          delta *= hoverFactor;\n        }\n        xOrY.current += delta;\n        xOrY.current = wrap(0, animateToValue, xOrY.current);\n        prevTime.current = t;\n        if (!isInView) return;\n        offset.set(xOrY.current);\n      });\n    }\n  } /* Fades */\n  const fadeDirection = isHorizontal ? \"to right\" : \"to bottom\";\n  const fadeWidthStart = fadeWidth / 2;\n  const fadeWidthEnd = 100 - fadeWidth / 2;\n  const fadeInsetStart = clamp(fadeInset, 0, fadeWidthStart);\n  const fadeInsetEnd = 100 - fadeInset;\n  const fadeMask = `linear-gradient(${fadeDirection}, rgba(0, 0, 0, ${fadeAlpha}) ${fadeInsetStart}%, rgba(0, 0, 0, 1) ${fadeWidthStart}%, rgba(0, 0, 0, 1) ${fadeWidthEnd}%, rgba(0, 0, 0, ${fadeAlpha}) ${fadeInsetEnd}%)`; /* Empty state */\n  if (!hasChildren) {\n    return /*#__PURE__*/_jsxs(\"section\", {\n      style: placeholderStyles,\n      children: [/*#__PURE__*/_jsx(\"div\", {\n        style: emojiStyles,\n        children: \"\u2728\"\n      }), /*#__PURE__*/_jsx(\"p\", {\n        style: titleStyles,\n        children: \"Connect to Content\"\n      }), /*#__PURE__*/_jsx(\"p\", {\n        style: subtitleStyles,\n        children: \"Add layers or components to infinitely loop on your page.\"\n      })]\n    });\n  }\n  return /*#__PURE__*/_jsx(\"section\", {\n    style: {\n      ...containerStyle,\n      opacity: opacity,\n      WebkitMaskImage: fadeContent ? fadeMask : undefined,\n      MozMaskImage: fadeContent ? fadeMask : undefined,\n      maskImage: fadeContent ? fadeMask : undefined,\n      overflow: overflow ? \"visible\" : \"hidden\",\n      padding: paddingValue\n    },\n    ref: parentRef,\n    children: /*#__PURE__*/_jsxs(motion.ul, {\n      ref: listRef,\n      style: {\n        ...containerStyle,\n        gap: gap,\n        top: direction === \"bottom\" && isValidNumber(animateToValue) ? -animateToValue : undefined,\n        left: direction === \"right\" && isValidNumber(animateToValue) ? -animateToValue : undefined,\n        placeItems: alignment,\n        position: \"relative\",\n        flexDirection: isHorizontal ? \"row\" : \"column\",\n        ...style,\n        transform: supportsAcceleratedAnimations ? undefined : transform,\n        willChange: \"transform\"\n      },\n      onMouseEnter: () => {\n        isHover.current = true;\n        if (animationRef.current) {\n          animationRef.current.updatePlaybackRate(hoverFactor);\n        }\n      },\n      onMouseLeave: () => {\n        isHover.current = false;\n        if (animationRef.current) {\n          animationRef.current.updatePlaybackRate(1);\n        }\n      },\n      children: [clonedChildren, dupedChildren]\n    })\n  });\n}\n; /* Default Properties */\nTicker.defaultProps = {\n  gap: 10,\n  padding: 10,\n  sizingOptions: {\n    widthType: true,\n    heightType: true\n  },\n  fadeOptions: {\n    fadeContent: true,\n    overflow: false,\n    fadeWidth: 25,\n    fadeAlpha: 0,\n    fadeInset: 0\n  },\n  direction: true\n}; /* Property Controls */\naddPropertyControls(Ticker, {\n  slots: {\n    type: ControlType.Array,\n    title: \"Children\",\n    control: {\n      type: ControlType.ComponentInstance\n    }\n  },\n  speed: {\n    type: ControlType.Number,\n    title: \"Speed\",\n    min: 0,\n    max: 1e3,\n    defaultValue: 100,\n    unit: \"%\",\n    displayStepper: true,\n    step: 5\n  },\n  direction: {\n    type: ControlType.Enum,\n    title: \"Direction\",\n    options: [\"left\", \"right\", \"top\", \"bottom\"],\n    optionIcons: [\"direction-left\", \"direction-right\", \"direction-up\", \"direction-down\"],\n    optionTitles: [\"Left\", \"Right\", \"Top\", \"Bottom\"],\n    defaultValue: \"left\",\n    displaySegmentedControl: true\n  },\n  alignment: {\n    type: ControlType.Enum,\n    title: \"Align\",\n    options: [\"flex-start\", \"center\", \"flex-end\"],\n    optionIcons: {\n      direction: {\n        right: [\"align-top\", \"align-middle\", \"align-bottom\"],\n        left: [\"align-top\", \"align-middle\", \"align-bottom\"],\n        top: [\"align-left\", \"align-center\", \"align-right\"],\n        bottom: [\"align-left\", \"align-center\", \"align-right\"]\n      }\n    },\n    defaultValue: \"center\",\n    displaySegmentedControl: true\n  },\n  gap: {\n    type: ControlType.Number,\n    title: \"Gap\"\n  },\n  padding: {\n    title: \"Padding\",\n    type: ControlType.FusedNumber,\n    toggleKey: \"paddingPerSide\",\n    toggleTitles: [\"Padding\", \"Padding per side\"],\n    valueKeys: [\"paddingTop\", \"paddingRight\", \"paddingBottom\", \"paddingLeft\"],\n    valueLabels: [\"T\", \"R\", \"B\", \"L\"],\n    min: 0\n  },\n  sizingOptions: {\n    type: ControlType.Object,\n    title: \"Sizing\",\n    controls: {\n      widthType: {\n        type: ControlType.Boolean,\n        title: \"Width\",\n        enabledTitle: \"Auto\",\n        disabledTitle: \"Stretch\",\n        defaultValue: true\n      },\n      heightType: {\n        type: ControlType.Boolean,\n        title: \"Height\",\n        enabledTitle: \"Auto\",\n        disabledTitle: \"Stretch\",\n        defaultValue: true\n      }\n    }\n  },\n  fadeOptions: {\n    type: ControlType.Object,\n    title: \"Clipping\",\n    controls: {\n      fadeContent: {\n        type: ControlType.Boolean,\n        title: \"Fade\",\n        defaultValue: true\n      },\n      overflow: {\n        type: ControlType.Boolean,\n        title: \"Overflow\",\n        enabledTitle: \"Show\",\n        disabledTitle: \"Hide\",\n        defaultValue: false,\n        hidden(props) {\n          return props.fadeContent === true;\n        }\n      },\n      fadeWidth: {\n        type: ControlType.Number,\n        title: \"Width\",\n        defaultValue: 25,\n        min: 0,\n        max: 100,\n        unit: \"%\",\n        hidden(props) {\n          return props.fadeContent === false;\n        }\n      },\n      fadeInset: {\n        type: ControlType.Number,\n        title: \"Inset\",\n        defaultValue: 0,\n        min: 0,\n        max: 100,\n        unit: \"%\",\n        hidden(props) {\n          return props.fadeContent === false;\n        }\n      },\n      fadeAlpha: {\n        type: ControlType.Number,\n        title: \"Opacity\",\n        defaultValue: 0,\n        min: 0,\n        max: 1,\n        step: .05,\n        hidden(props) {\n          return props.fadeContent === false;\n        }\n      }\n    }\n  },\n  hoverFactor: {\n    type: ControlType.Number,\n    title: \"Hover\",\n    min: 0,\n    max: 1,\n    unit: \"x\",\n    defaultValue: 1,\n    step: .1,\n    displayStepper: true,\n    description: \"Slows down the speed while you are hovering.\"\n  }\n}); /* Placeholder Styles */\nconst containerStyle = {\n  display: \"flex\",\n  width: \"100%\",\n  height: \"100%\",\n  maxWidth: \"100%\",\n  maxHeight: \"100%\",\n  placeItems: \"center\",\n  margin: 0,\n  padding: 0,\n  listStyleType: \"none\",\n  textIndent: \"none\"\n}; /* Styles */\nconst placeholderStyles = {\n  display: \"flex\",\n  width: \"100%\",\n  height: \"100%\",\n  placeContent: \"center\",\n  placeItems: \"center\",\n  flexDirection: \"column\",\n  color: \"#96F\",\n  background: \"rgba(136, 85, 255, 0.1)\",\n  fontSize: 11,\n  overflow: \"hidden\",\n  padding: \"20px 20px 30px 20px\"\n};\nconst emojiStyles = {\n  fontSize: 32,\n  marginBottom: 10\n};\nconst titleStyles = {\n  margin: 0,\n  marginBottom: 10,\n  fontWeight: 600,\n  textAlign: \"center\"\n};\nconst subtitleStyles = {\n  margin: 0,\n  opacity: .7,\n  maxWidth: 150,\n  lineHeight: 1.5,\n  textAlign: \"center\"\n}; /* Clamp function, used for fadeInset */\nconst clamp = (num, min, max) => Math.min(Math.max(num, min), max);\nconst isValidNumber = value => typeof value === \"number\" && !isNaN(value);\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"default\": {\n      \"type\": \"reactComponent\",\n      \"name\": \"Ticker\",\n      \"slots\": [],\n      \"annotations\": {\n        \"framerSupportedLayoutHeight\": \"fixed\",\n        \"framerContractVersion\": \"1\",\n        \"framerIntrinsicWidth\": \"400\",\n        \"framerIntrinsicHeight\": \"200\",\n        \"framerDisableUnlink\": \"*\",\n        \"framerSupportedLayoutWidth\": \"fixed\"\n      }\n    },\n    \"__FramerMetadata__\": {\n      \"type\": \"variable\"\n    }\n  }\n};\n//# sourceMappingURL=./Ticker.map", "import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\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\";\nimport { useCallback, useMemo, useState } from \"react\";\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 validateEmail = email => {\n  return emailRegex.test(String(email).toLowerCase());\n}; /**\n   * FORMSPARK\n   *\n   * @framerIntrinsicWidth 550\n   * @framerIntrinsicHeight 290\n   *\n   * @framerSupportedLayoutWidth fixed\n   * @framerSupportedLayoutHeight fixed\n   */\nconst FormSpark = withCSS(function FormSpark({\n  formId,\n  withName,\n  nameField: name,\n  withEmail,\n  email,\n  withMessage,\n  message,\n  layout,\n  inputs,\n  button,\n  style,\n  gap,\n  onSubmit,\n  ...props\n}) {\n  const [nameValue, setName] = useState(name === null || name === void 0 ? void 0 : name.value);\n  const [emailValue, setEmail] = useState(email === null || email === void 0 ? void 0 : email.value);\n  const [messageValue, setMessage] = useState(message === null || message === void 0 ? void 0 : message.value);\n  const [isNameError, setNameError] = useState(false);\n  const [isEmailError, setEmailError] = useState(false);\n  const [isMessageError, setMessageError] = 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 gridTemplateRows = useMemo(() => {\n    const rows = [];\n    if (withName || withMessage) {\n      rows.push(\"max-content\");\n    }\n    if (withMessage) {\n      rows.push(\"1fr\");\n    }\n    return [...rows, \"max-content\"].join(\" \");\n  }, [withName, withEmail, withMessage]);\n  const gridTemplateColumns = useMemo(() => {\n    const cols = [];\n    if ((withName && !withEmail || withEmail && !withName) && !withMessage && layout === \"horizontal\") {\n      return \"1fr max-content\";\n    }\n    return \"1fr\";\n  }, [withName, withEmail, withMessage, layout]);\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(() => {\n    let error = false;\n    setNameError(false);\n    setEmailError(false);\n    setMessageError(false);\n    if (withName && !nameValue) {\n      setNameError(true);\n      error = true;\n    }\n    if (withEmail && (!emailValue || !validateEmail(emailValue))) {\n      setEmailError(true);\n      error = true;\n    }\n    if (withMessage && !messageValue) {\n      setMessageError(true);\n      error = true;\n    }\n    return error;\n  }, [validateEmail, withName, withEmail, withMessage, nameValue, emailValue, messageValue]);\n  const handleSubmit = useCallback(event => {\n    setLoading(true);\n    event.preventDefault();\n    if (validateForm()) {\n      setLoading(false);\n    } else {\n      const data = new FormData(event.target);\n      const entries = Object.fromEntries(data.entries());\n      fetch(`https://submit-form.com/${formId}`, {\n        method: \"POST\",\n        headers: {\n          \"Content-Type\": \"application/json\",\n          Accept: \"application/json\"\n        },\n        body: JSON.stringify(entries)\n      }).then(() => {\n        setSuccess(true);\n        onSubmit();\n      }).catch(() => setLoading(false));\n    }\n  }, [formId, onSubmit, validateForm]);\n  const handleNameChange = useCallback(event => {\n    setNameError(false);\n    setName(event.target.value);\n  }, []);\n  const handleEmailChange = useCallback(event => {\n    setEmailError(false);\n    setEmail(event.target.value);\n  }, []);\n  const handleMessageChange = useCallback(event => {\n    setMessageError(false);\n    setMessage(event.target.value);\n  }, []);\n  return /*#__PURE__*/_jsx(motion.div, {\n    style: {\n      ...style,\n      ...containerStyles,\n      flexDirection: \"column\",\n      \"--framer-formspark-placeholder-color\": inputs.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        display: \"grid\",\n        gridTemplateRows,\n        gridTemplateColumns,\n        gap,\n        width: \"100%\",\n        height: \"100%\"\n      },\n      onSubmit: handleSubmit,\n      method: \"POST\",\n      children: [(withName || withEmail) && /*#__PURE__*/_jsxs(\"div\", {\n        style: {\n          width: \"100%\",\n          display: \"grid\",\n          gridAutoFlow: layout === \"horizontal\" ? \"column\" : \"row\",\n          gap\n        },\n        children: [withName && /*#__PURE__*/_jsx(\"input\", {\n          className: \"framer-formspark-input\",\n          type: \"text\",\n          name: \"name\",\n          placeholder: name.placeholder,\n          value: isCanvas ? name.value : nameValue,\n          onChange: handleNameChange,\n          style: {\n            ...defaultStyle,\n            padding: paddingValue,\n            borderRadius,\n            fontFamily,\n            fontWeight,\n            fontSize,\n            background: inputs.fill,\n            color: inputs.color,\n            boxShadow: `inset 0 0 0 1px ${isNameError ? inputs.error : \"transparent\"}`\n          }\n        }), withEmail && /*#__PURE__*/_jsx(\"input\", {\n          className: \"framer-formspark-input\",\n          type: \"email\",\n          name: \"email\",\n          placeholder: email.placeholder,\n          value: isCanvas ? email.value : emailValue,\n          onChange: handleEmailChange,\n          style: {\n            ...defaultStyle,\n            padding: paddingValue,\n            borderRadius,\n            fontFamily,\n            fontWeight,\n            fontSize,\n            background: inputs.fill,\n            color: inputs.color,\n            boxShadow: `inset 0 0 0 1px ${isEmailError ? inputs.error : \"transparent\"}`\n          }\n        })]\n      }), withMessage && /*#__PURE__*/_jsx(\"textarea\", {\n        className: \"framer-formspark-input\",\n        placeholder: message.placeholder,\n        name: \"message\",\n        value: isCanvas ? message.value : messageValue,\n        onChange: handleMessageChange,\n        style: {\n          ...defaultStyle,\n          minHeight: 0,\n          padding: paddingValue,\n          resize: \"vertical\",\n          borderRadius,\n          background: inputs.fill,\n          fontFamily,\n          fontWeight,\n          fontSize,\n          color: inputs.color,\n          boxShadow: `inset 0 0 0 1px ${isMessageError ? inputs.error : \"transparent\"}`\n        }\n      }), /*#__PURE__*/_jsxs(\"div\", {\n        children: [/*#__PURE__*/_jsx(motion.input, {\n          type: \"submit\",\n          value: button.label,\n          style: {\n            ...defaultStyle,\n            borderRadius,\n            padding: paddingValue,\n            fontFamily,\n            fontWeight: button.fontWeight,\n            fontSize,\n            background: button.fill,\n            cursor: \"pointer\",\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-formspark-input::placeholder { color: var(--framer-formspark-placeholder-color) !important; }\"]);\nFormSpark.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  nameField: {\n    value: undefined,\n    placeholder: \"Name\"\n  },\n  email: {\n    value: undefined,\n    placeholder: \"Email\"\n  },\n  message: {\n    value: undefined,\n    placeholder: \"Message\"\n  },\n  inputs: {\n    fill: \"#EBEBEB\",\n    color: \"#000\",\n    placeholderColor: \"rgba(0, 0, 0, 0.5)\",\n    error: \"#EE4444\"\n  },\n  layout: {\n    fill: \"#EBEBEB\",\n    color: \"#000\",\n    placeholderColor: \"rgba(0, 0, 0, 0.5)\",\n    error: \"#EE4444\"\n  },\n  button: {\n    label: \"Sign Up\",\n    fontWeight: 600,\n    fill: \"#000\",\n    color: \"#FFF\"\n  }\n};\naddPropertyControls(FormSpark, {\n  formId: {\n    title: \"ID\",\n    placeholder: \"7PbPpGN3\",\n    type: ControlType.String,\n    description: \"Create a [FormSpark](https://formspark.io/) account, add a new form and copy its ID. [Learn more\u2026](https://www.framer.com/sites/integrations/formspark/)\"\n  },\n  withName: {\n    title: \"Name\",\n    type: ControlType.Boolean,\n    enabledTitle: \"Show\",\n    disabledTitle: \"Hide\",\n    defaultValue: true\n  },\n  nameField: {\n    title: \" \",\n    type: ControlType.Object,\n    controls: {\n      placeholder: {\n        title: \"Placeholder\",\n        type: ControlType.String,\n        defaultValue: \"Name\"\n      },\n      value: {\n        title: \"Value\",\n        type: ControlType.String,\n        defaultValue: \"\"\n      }\n    },\n    hidden: props => !props.withName\n  },\n  withEmail: {\n    title: \"Email\",\n    type: ControlType.Boolean,\n    enabledTitle: \"Show\",\n    disabledTitle: \"Hide\",\n    defaultValue: true\n  },\n  email: {\n    title: \" \",\n    type: ControlType.Object,\n    controls: {\n      placeholder: {\n        title: \"Placeholder\",\n        type: ControlType.String,\n        defaultValue: \"Email\"\n      },\n      value: {\n        title: \"Value\",\n        type: ControlType.String\n      }\n    },\n    hidden: props => !props.withEmail\n  },\n  withMessage: {\n    title: \"Message\",\n    type: ControlType.Boolean,\n    enabledTitle: \"Show\",\n    disabledTitle: \"Hide\",\n    defaultValue: true\n  },\n  message: {\n    title: \" \",\n    type: ControlType.Object,\n    controls: {\n      placeholder: {\n        title: \"Placeholder\",\n        type: ControlType.String,\n        defaultValue: \"Message\"\n      },\n      value: {\n        title: \"Value\",\n        type: ControlType.String\n      }\n    },\n    hidden: props => !props.withMessage\n  },\n  layout: {\n    title: \"Layout\",\n    type: ControlType.Enum,\n    options: [\"horizontal\", \"vertical\"],\n    displaySegmentedControl: true,\n    defaultValue: \"horizontal\"\n  },\n  inputs: {\n    title: \"Inputs\",\n    type: ControlType.Object,\n    controls: {\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      placeholderColor: {\n        title: \"Placeholder\",\n        type: ControlType.Color,\n        defaultValue: \"rgba(0, 0, 0, 0.5)\"\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  display: \"inline-block\",\n  width: \"100%\",\n  lineHeight: \"1.4em\",\n  outline: \"none\",\n  border: \"none\"\n};\nexport default FormSpark;\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"default\": {\n      \"type\": \"reactComponent\",\n      \"name\": \"FormSpark\",\n      \"slots\": [],\n      \"annotations\": {\n        \"framerIntrinsicHeight\": \"290\",\n        \"framerSupportedLayoutHeight\": \"fixed\",\n        \"framerSupportedLayoutWidth\": \"fixed\",\n        \"framerIntrinsicWidth\": \"550\",\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"__FramerMetadata__\": {\n      \"type\": \"variable\"\n    }\n  }\n};\n//# sourceMappingURL=./FormSpark.map"],
  "mappings": "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",
  "names": ["directionTransformers", "offset", "supportsAcceleratedAnimations", "Ticker", "props", "slots", "gap", "padding", "paddingPerSide", "paddingTop", "paddingRight", "paddingBottom", "paddingLeft", "speed", "hoverFactor", "direction", "alignment", "sizingOptions", "fadeOptions", "style", "fadeContent", "overflow", "fadeWidth", "fadeInset", "fadeAlpha", "widthType", "heightType", "paddingValue", "isCanvas", "RenderTarget", "numChildren", "j", "hasChildren", "isHorizontal", "useMotionValue", "transformer", "transform", "useTransform", "parentRef", "pe", "childrenRef", "se", "W", "size", "setSize", "ye", "clonedChildren", "dupedChildren", "duplicateBy", "opacity", "measure", "te", "parentLength", "start", "childrenLength", "childrenStyles", "initialResize", "ue", "resize", "contentSize", "child", "index", "ref", "ref1", "ref2", "ref3", "ref4", "p", "LayoutGroup", "q", "i", "childIndex", "animateToValue", "initialTime", "prevTime", "xOrY", "isHover", "isInView", "useInView", "isReducedMotion", "useReducedMotion", "listRef", "animationRef", "useAnimationFrame", "t", "delta", "wrap", "fadeDirection", "fadeWidthStart", "fadeWidthEnd", "fadeInsetStart", "clamp", "fadeInsetEnd", "fadeMask", "containerStyle", "u", "motion", "isValidNumber", "placeholderStyles", "emojiStyles", "titleStyles", "subtitleStyles", "addPropertyControls", "ControlType", "num", "min", "max", "value", "emailRegex", "validateEmail", "email", "FormSpark", "withCSS", "formId", "withName", "name", "withEmail", "withMessage", "message", "layout", "inputs", "button", "style", "gap", "onSubmit", "props", "nameValue", "setName", "ye", "emailValue", "setEmail", "messageValue", "setMessage", "isNameError", "setNameError", "isEmailError", "setEmailError", "isMessageError", "setMessageError", "isLoading", "setLoading", "isSuccess", "setSuccess", "isCanvas", "se", "RenderTarget", "gridTemplateRows", "rows", "gridTemplateColumns", "cols", "fontFamily", "fontSize", "fontWeight", "useFontControls", "borderRadius", "useRadius", "paddingValue", "usePadding", "validateForm", "te", "error", "handleSubmit", "event", "data", "entries", "handleNameChange", "handleEmailChange", "handleMessageChange", "p", "motion", "containerStyles", "u", "defaultStyle", "addPropertyControls", "ControlType", "fontControls", "paddingControl", "borderRadiusControl", "FormSpark_default"]
}
