{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/ON2ypojfRuGMzdeJUziu/CkBJbF7tuzl3qLvOtSdo/nOmv_S4Ew.js", "ssg:https://framerusercontent.com/modules/CCdPGexMDkvkUSnbp2z6/ehetqk3XbE9mc1fsE8pz/SiwdEaGVU.js", "ssg:https://framerusercontent.com/modules/hDqkcEuYpmfuswjKz0ms/Jr7rNxrrVXte00YAq1FX/YN7QedfjL.js", "ssg:https://framerusercontent.com/modules/lSQF0KXXhwrlBn2EQCqw/vppQ5qh4HNkLbKjM5etf/doeSO_6Tu.js", "ssg:https://framerusercontent.com/modules/WEqPkNdRLzNcVFVznKvT/OXUUDNW2qO7stMVcaYZl/Yyu3KC02p.js", "ssg:https://framerusercontent.com/modules/1SX57WyAyYx6j54gxkiN/BDEVk9Sck5InXj9KnKGH/PopupEA.js", "ssg:https://framer.com/m/framer/store.js@^1.0.0", "ssg:https://framerusercontent.com/modules/QrxdObBsqxAvUQxIlXEn/eB6rjpMkjsJQ73OIs1jg/wZFOzXRbo.js", "ssg:https://framerusercontent.com/modules/NcW24yTaLRbcxpTCdHCk/MyhMeVL4QgS38HJhE1ns/FormCustom.js", "ssg:https://cdn.jsdelivr.net/npm/react-hook-form@7.48.2/dist/index.esm.mjs", "ssg:https://framerusercontent.com/modules/oPnBam9GQ6klvej9TVvr/Ee2RFEMqm0ReelGkgUc0/wmotLxpIq.js"],
  "sourcesContent": ["// Generated by Framer (2c4b293)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"CUSTOM;Perfectly Nineties Regular\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Perfectly Nineties Regular\",source:\"custom\",url:\"https://framerusercontent.com/assets/eAGkdcx3nkE2Z5d8HZKsp36Q.ttf\"}]}];export const css=['.framer-XOiNe .framer-styles-preset-nx9obp:not(.rich-text-wrapper), .framer-XOiNe .framer-styles-preset-nx9obp.rich-text-wrapper h3 { --framer-font-family: \"Perfectly Nineties Regular\", \"Perfectly Nineties Regular Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 40px; --framer-font-style: normal; --framer-font-weight: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.1em; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: var(--token-0256ae5c-c574-434f-9e78-782c084720a3, #0e0e0e); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-XOiNe\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}", "import{fontStore}from\"framer\";fontStore.loadFonts([\"Inter\",\"Inter-Bold\",\"Inter-BoldItalic\",\"Inter-Italic\"]);export const fonts=[];export const css=['.framer-VERA0 .framer-styles-preset-1pef716:not(.rich-text-wrapper), .framer-VERA0 .framer-styles-preset-1pef716.rich-text-wrapper p { --framer-font-family: \"Inter\", sans-serif; --framer-font-family-bold: \"Inter-Bold\", \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter-BoldItalic\", \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter-Italic\", \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-size: 30px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: -0.02em; --framer-line-height: 1.6em; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: var(--token-e55e98c8-bda7-44eb-a081-1067ca7f9a39, #3a3a3a); --framer-text-decoration: none; --framer-text-transform: none; }'];export const className=\"framer-VERA0\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}", "import{fontStore as r}from\"framer\";r.loadWebFontsFromSelectors([\"Inter\",\"Inter-Bold\",\"Inter-BoldItalic\",\"Inter-Italic\"]);export const fonts=[];export const css=['.framer-Qq5YJ .framer-styles-preset-i4fher:not(.rich-text-wrapper), .framer-Qq5YJ .framer-styles-preset-i4fher.rich-text-wrapper p { --framer-font-family: \"Inter\", sans-serif; --framer-font-family-bold: \"Inter-Bold\", \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter-BoldItalic\", \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter-Italic\", \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-size: 18px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: -0.02em; --framer-line-height: 1.6em; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: var(--token-e55e98c8-bda7-44eb-a081-1067ca7f9a39, #3a3a3a); --framer-text-decoration: none; --framer-text-transform: none; }'];export const className=\"framer-Qq5YJ\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}", "import{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[];export const css=[\".framer-omNPg .framer-styles-preset-12zhyzj:not(.rich-text-wrapper), .framer-omNPg .framer-styles-preset-12zhyzj.rich-text-wrapper a { --framer-link-current-text-decoration: underline; --framer-link-hover-text-decoration: none; --framer-link-text-decoration: underline; }\"];export const className=\"framer-omNPg\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}", "import{fontStore as e}from\"framer\";e.loadWebFontsFromSelectors([\"CUSTOM;Perfectly Nineties Regular\"]);export const fonts=[{family:\"Perfectly Nineties Regular\",moduleAsset:{localModuleIdentifier:\"local-module:css/Yyu3KC02p:default\",url:\"https://framerusercontent.com/assets/eAGkdcx3nkE2Z5d8HZKsp36Q.ttf\"},url:\"https://framerusercontent.com/assets/eAGkdcx3nkE2Z5d8HZKsp36Q.ttf\"}];export const css=['.framer-LCX7f .framer-styles-preset-1254bws:not(.rich-text-wrapper), .framer-LCX7f .framer-styles-preset-1254bws.rich-text-wrapper h2 { --framer-font-family: \"Perfectly Nineties Regular\", \"Perfectly Nineties Regular Placeholder\", sans-serif; --framer-font-size: 64px; --framer-font-style: normal; --framer-font-weight: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.1em; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: var(--token-0256ae5c-c574-434f-9e78-782c084720a3, #0e0e0e); --framer-text-decoration: none; --framer-text-transform: none; }'];export const className=\"framer-LCX7f\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}", "import{jsx as e}from\"react/jsx-runtime\";import{useState as t,useEffect as r}from\"react\";import{createStore as n}from\"https://framer.com/m/framer/store.js@^1.0.0\";let i=n({state:void 0});export function withPopupCenter(t){return({style:r,...n})=>/*#__PURE__*/e(t,{...n,style:{...r,margin:\"auto\"}});}export function withVariant(t){return({variant:r,...n})=>{let[s,o]=i(),a=s.state;return /*#__PURE__*/e(t,{...n,variant:a||r});};}export function withSetSuccess(t){return r=>{let[n,o]=i(),a=s(\"(min-width: 1000px)\");return /*#__PURE__*/e(t,{...r,setSuccess:()=>o({state:a?\"Success\":\"Success (sm)\"})});};}function s(e){let n=e=>\"undefined\"!=typeof window&&window.matchMedia(e).matches,[i,s]=t(n(e));function o(){s(n(e));}return r(()=>{let t=window.matchMedia(e);return o(),t.addListener?t.addListener(o):t.addEventListener(\"change\",o),()=>{t.removeListener?t.removeListener(o):t.removeEventListener(\"change\",o);};},[e]),i;}\nexport const __FramerMetadata__ = {\"exports\":{\"withVariant\":{\"type\":\"reactHoc\",\"name\":\"withVariant\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withSetSuccess\":{\"type\":\"reactHoc\",\"name\":\"withSetSuccess\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withPopupCenter\":{\"type\":\"reactHoc\",\"name\":\"withPopupCenter\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PopupEA.map", "import{useState,useEffect}from\"react\";import{Data,useObserveData}from\"framer\";export function createStore(state1){// Use Data so that a Preview reload resets the state\nconst dataStore=Data({state:Object.freeze({...state1})});// Create a set function that updates the state\nconst setDataStore=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(dataStore.state);}dataStore.state=Object.freeze({...dataStore.state,...newState});};// Store the initial state, copy the object if it's an object\nlet storeState=typeof state1===\"object\"?Object.freeze({...state1}):state1;// Keep a list of all the listeners, in the form of React hook setters\nconst storeSetters=new Set();// Create a set function that updates all the listeners / setters\nconst setStoreState=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(storeState);}storeState=typeof newState===\"object\"?Object.freeze({...storeState,...newState}):newState;// Update all the listeners / setters with the new value\nstoreSetters.forEach(setter=>setter(storeState));};// Create the actual hook based on everything above\nfunction useStore(){// Create the hook we are going to use as a listener\nconst[state,setState]=useState(storeState);// If we unmount the component using this hook, we need to remove the listener\n// @ts-ignore\nuseEffect(()=>{// But right now, we need to add the listener\nstoreSetters.add(setState);return()=>storeSetters.delete(setState);},[]);// If Data context exists, use Data, otherwise use vanilla React state\nif(useObserveData()===true){useObserveData();return[dataStore.state,setDataStore];}else{// Return the state and a function to update the central store\nreturn[state,setStoreState];}}return useStore;}\nexport const __FramerMetadata__ = {\"exports\":{\"createStore\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./createStore.map", "// Generated by Framer (1a6990e)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getFonts,Link,RichText,SVG,useActiveVariantCallback,useConstant,useIsOnFramerCanvas,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import FormCustom from\"https://framerusercontent.com/modules/NcW24yTaLRbcxpTCdHCk/MyhMeVL4QgS38HJhE1ns/FormCustom.js\";import{withPopupCenter,withSetSuccess}from\"https://framerusercontent.com/modules/1SX57WyAyYx6j54gxkiN/BDEVk9Sck5InXj9KnKGH/PopupEA.js\";import*as sharedStyle5 from\"https://framerusercontent.com/modules/lSQF0KXXhwrlBn2EQCqw/vppQ5qh4HNkLbKjM5etf/doeSO_6Tu.js\";import*as sharedStyle2 from\"https://framerusercontent.com/modules/1uaaClDb3p4kZYK97qTy/xYUuQZgefMwzHs6FPQcy/gEEbxt3oO.js\";import*as sharedStyle7 from\"https://framerusercontent.com/modules/zhYMVyaqGRC54xT5lnoO/JpjgOAPL1JBJmfBuICV5/H8UGeQxMu.js\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/ON2ypojfRuGMzdeJUziu/CkBJbF7tuzl3qLvOtSdo/nOmv_S4Ew.js\";import*as sharedStyle6 from\"https://framerusercontent.com/modules/CCdPGexMDkvkUSnbp2z6/ehetqk3XbE9mc1fsE8pz/SiwdEaGVU.js\";import*as sharedStyle3 from\"https://framerusercontent.com/modules/oPnBam9GQ6klvej9TVvr/Ee2RFEMqm0ReelGkgUc0/wmotLxpIq.js\";import*as sharedStyle4 from\"https://framerusercontent.com/modules/hDqkcEuYpmfuswjKz0ms/Jr7rNxrrVXte00YAq1FX/YN7QedfjL.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/WEqPkNdRLzNcVFVznKvT/OXUUDNW2qO7stMVcaYZl/Yyu3KC02p.js\";const FormCustomFonts=getFonts(FormCustom);const FormCustomWithSetSuccess=withSetSuccess(FormCustom);const MotionDivWithPopupCenter=withPopupCenter(motion.div);const cycleOrder=[\"v9ySp8yPr\",\"a6tH2utGy\",\"gOqr5CL7P\",\"smD0McqMC\",\"ugt0DDxmw\",\"qBfJYdeRt\"];const serializationHash=\"framer-UFuCr\";const variantClassNames={a6tH2utGy:\"framer-v-ow149j\",gOqr5CL7P:\"framer-v-f10nqg\",qBfJYdeRt:\"framer-v-rz6azw\",smD0McqMC:\"framer-v-u5c90w\",ugt0DDxmw:\"framer-v-1ng03n6\",v9ySp8yPr:\"framer-v-arjnd7\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants===null||variants===void 0?void 0:variants.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transitions={default:{damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"}};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value!==null&&value!==void 0?value:config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={\"Default (sm) (without close)\":\"smD0McqMC\",\"Default (sm)\":\"gOqr5CL7P\",\"Default (without close)\":\"a6tH2utGy\",\"Success (sm)\":\"qBfJYdeRt\",Default:\"v9ySp8yPr\",Success:\"ugt0DDxmw\"};const getProps=({closePopup,height,id,width,...props})=>{var _humanReadableVariantMap_props_variant,_ref;return{...props,TuDuUFGJ4:closePopup!==null&&closePopup!==void 0?closePopup:props.TuDuUFGJ4,variant:(_ref=(_humanReadableVariantMap_props_variant=humanReadableVariantMap[props.variant])!==null&&_humanReadableVariantMap_props_variant!==void 0?_humanReadableVariantMap_props_variant:props.variant)!==null&&_ref!==void 0?_ref:\"v9ySp8yPr\"};};const createLayoutDependency=(props,variants)=>variants.join(\"-\")+props.layoutDependency;const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,TuDuUFGJ4,...restProps}=getProps(props);const{baseVariant,classNames,gestureVariant,setGestureState,setVariant,transition,variants}=useVariantState({cycleOrder,defaultVariant:\"v9ySp8yPr\",transitions,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTap5t73ml=activeVariantCallback(async(...args)=>{if(TuDuUFGJ4){const res=await TuDuUFGJ4(...args);if(res===false)return false;}});const isOnCanvas=useIsOnFramerCanvas();const initialVariant=useConstant(()=>variant);const ref1=React.useRef(null);const isDisplayed=()=>{if([\"ugt0DDxmw\",\"qBfJYdeRt\"].includes(baseVariant))return false;return true;};const isDisplayed1=()=>{if([\"ugt0DDxmw\",\"qBfJYdeRt\"].includes(baseVariant))return true;return false;};const isDisplayed2=()=>{if([\"a6tH2utGy\",\"smD0McqMC\",\"ugt0DDxmw\",\"qBfJYdeRt\"].includes(baseVariant))return false;return true;};const defaultLayoutId=React.useId();const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className,sharedStyle2.className,sharedStyle3.className,sharedStyle4.className,sharedStyle5.className,sharedStyle6.className,sharedStyle7.className];return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId!==null&&layoutId!==void 0?layoutId:defaultLayoutId,children:/*#__PURE__*/_jsx(Transition,{value:transition,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,animate:variants,className:cx(serializationHash,...sharedStyleClassNames,\"framer-arjnd7\",className,classNames),\"data-framer-name\":\"Default\",initial:isOnCanvas?variant:initialVariant,layoutDependency:layoutDependency,layoutId:\"v9ySp8yPr\",onHoverEnd:()=>setGestureState({isHovered:false}),onHoverStart:()=>setGestureState({isHovered:true}),onTap:()=>setGestureState({isPressed:false}),onTapCancel:()=>setGestureState({isPressed:false}),onTapStart:()=>setGestureState({isPressed:true}),ref:ref!==null&&ref!==void 0?ref:ref1,style:{...style},...addPropertyOverrides({a6tH2utGy:{\"data-framer-name\":\"Default (without close)\"},gOqr5CL7P:{\"data-framer-name\":\"Default (sm)\"},qBfJYdeRt:{\"data-framer-name\":\"Success (sm)\"},smD0McqMC:{\"data-framer-name\":\"Default (sm) (without close)\"},ugt0DDxmw:{\"data-framer-name\":\"Success\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-j0ram4\",\"data-framer-name\":\"backdrop\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"hh11qdkrz\",onTap:onTap5t73ml}),/*#__PURE__*/_jsxs(MotionDivWithPopupCenter,{className:\"framer-1044qh8\",layoutDependency:layoutDependency,layoutId:\"qRIBTHxG_\",style:{backgroundColor:\"rgb(255, 255, 255)\"},children:[isDisplayed()&&/*#__PURE__*/_jsxs(motion.div,{className:\"framer-102baym\",\"data-framer-name\":\"Heading\",layoutDependency:layoutDependency,layoutId:\"eJ5IUCnvn\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h2,{className:\"framer-styles-preset-1254bws\",\"data-styles-preset\":\"Yyu3KC02p\",style:{\"--framer-text-alignment\":\"center\"},children:\"Get early access\"})}),className:\"framer-56o4h2\",layoutDependency:layoutDependency,layoutId:\"j5QbIULkY\",style:{\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({gOqr5CL7P:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{className:\"framer-styles-preset-nx9obp\",\"data-styles-preset\":\"nOmv_S4Ew\",style:{\"--framer-text-alignment\":\"center\"},children:\"Get early access\"})})},smD0McqMC:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{className:\"framer-styles-preset-nx9obp\",\"data-styles-preset\":\"nOmv_S4Ew\",style:{\"--framer-text-alignment\":\"center\"},children:\"Get early access\"})})}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-3nefrs\",\"data-styles-preset\":\"gEEbxt3oO\",style:{\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-35bc8e00-be1f-407d-bf35-077c29f2e3f1, rgb(100, 100, 100)))\"},children:\"Let's discuss if General Folders is the right choice for your team.\"})}),className:\"framer-1t2w3e9\",layoutDependency:layoutDependency,layoutId:\"UltEkaOaO\",style:{\"--extracted-r6o4lv\":\"var(--token-35bc8e00-be1f-407d-bf35-077c29f2e3f1, rgb(100, 100, 100))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({a6tH2utGy:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsxs(motion.p,{className:\"framer-styles-preset-3nefrs\",\"data-styles-preset\":\"gEEbxt3oO\",style:{\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-35bc8e00-be1f-407d-bf35-077c29f2e3f1, rgb(100, 100, 100)))\"},children:[\"Let's discuss if \",/*#__PURE__*/_jsx(Link,{href:{webPageId:\"augiA20Il\"},openInNewTab:false,smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-4wxbki\",\"data-styles-preset\":\"wmotLxpIq\",children:\"General Folders\"})}),\" is the right choice for your team.\"]})})},gOqr5CL7P:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-i4fher\",\"data-styles-preset\":\"YN7QedfjL\",style:{\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-35bc8e00-be1f-407d-bf35-077c29f2e3f1, rgb(100, 100, 100)))\"},children:\"Let's discuss if General Folders is the right choice for your team.\"})})},smD0McqMC:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsxs(motion.p,{className:\"framer-styles-preset-i4fher\",\"data-styles-preset\":\"YN7QedfjL\",style:{\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-35bc8e00-be1f-407d-bf35-077c29f2e3f1, rgb(100, 100, 100)))\"},children:[\"Let's discuss if \",/*#__PURE__*/_jsx(Link,{href:{webPageId:\"augiA20Il\"},openInNewTab:false,smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-12zhyzj\",\"data-styles-preset\":\"doeSO_6Tu\",children:\"General Folders\"})}),\" is the right choice for your team.\"]})})}},baseVariant,gestureVariant)})]}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-c95srk\",layoutDependency:layoutDependency,layoutId:\"PnURerRiU\",children:[isDisplayed()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-1nuwwnv-container\",layoutDependency:layoutDependency,layoutId:\"R5Fo3q6P3-container\",children:/*#__PURE__*/_jsx(FormCustomWithSetSuccess,{fields:[{name:\"full name\",placeholder:\"Full name*\",required:true,type:\"text\",width:\"full\"},{name:\"email\",placeholder:\"Work email*\",required:true,type:\"email\",width:\"half\"},{name:\"linkedin\",placeholder:\"LinkedIn\",required:false,type:\"url\",width:\"half\"},{name:\"company\",placeholder:\"Company*\",required:true,type:\"text\",width:\"half\"},{name:\"department\",placeholder:\"Department*\",required:true,type:\"selectDepartment\",width:\"half\"},{name:\"message\",placeholder:\"Tell us about your data exchange needs*\",required:true,type:\"textarea\",width:\"full\"}],height:\"100%\",id:\"R5Fo3q6P3\",layoutId:\"R5Fo3q6P3\",style:{width:\"100%\"},url:\"https://submit-form.com/OySRTI5u\",width:\"100%\"})}),isDisplayed1()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-1w3hud0\",\"data-framer-name\":\"verified (1) 1\",fill:\"rgba(0,0,0,1)\",intrinsicHeight:120,intrinsicWidth:120,layoutDependency:layoutDependency,layoutId:\"BYR91x0rT\",svg:'<svg width=\"120\" height=\"120\" viewBox=\"0 0 120 120\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<path d=\"M60 117.422C91.7132 117.422 117.422 91.7132 117.422 60C117.422 28.2868 91.7132 2.57812 60 2.57812C28.2868 2.57812 2.57812 28.2868 2.57812 60C2.57812 91.7132 28.2868 117.422 60 117.422Z\" stroke=\"#2AA261\" stroke-width=\"2\" stroke-miterlimit=\"10\"/>\\n<path d=\"M32.7617 56.5582L51.3868 75.0445L85.0173 41.4141\" stroke=\"#2AA261\" stroke-width=\"2\" stroke-miterlimit=\"10\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\\n</svg>\\n',withExternalLayout:true}),isDisplayed1()&&/*#__PURE__*/_jsxs(motion.div,{className:\"framer-5xngwg\",\"data-framer-name\":\"text\",layoutDependency:layoutDependency,layoutId:\"vA7TKrzgA\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h2,{className:\"framer-styles-preset-1254bws\",\"data-styles-preset\":\"Yyu3KC02p\",style:{\"--framer-text-alignment\":\"center\"},children:\"You're on our list!\"})}),className:\"framer-12pldmi\",\"data-framer-name\":\"You're on our list!\",layoutDependency:layoutDependency,layoutId:\"htvYSTfzZ\",verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({qBfJYdeRt:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{className:\"framer-styles-preset-nx9obp\",\"data-styles-preset\":\"nOmv_S4Ew\",style:{\"--framer-text-alignment\":\"center\"},children:\"You're on our list!\"})})}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1pef716\",\"data-styles-preset\":\"SiwdEaGVU\",style:{\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-35bc8e00-be1f-407d-bf35-077c29f2e3f1, rgb(100, 100, 100)))\"},children:\"We will be in touch to let you know when General Folders is ready for your use cases. Thank you!\"})}),className:\"framer-1trdgjs\",\"data-framer-name\":\"We will be in touch to let you know when General Folders is ready for your use cases. Thank you!\",layoutDependency:layoutDependency,layoutId:\"KalPYqo3X\",style:{\"--extracted-r6o4lv\":\"var(--token-35bc8e00-be1f-407d-bf35-077c29f2e3f1, rgb(100, 100, 100))\"},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({qBfJYdeRt:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-t9yfv1\",\"data-styles-preset\":\"H8UGeQxMu\",style:{\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-35bc8e00-be1f-407d-bf35-077c29f2e3f1, rgb(100, 100, 100)))\"},children:\"We will be in touch to let you know when General Folders is ready for your use cases. Thank you!\"})})}},baseVariant,gestureVariant)})]})]}),isDisplayed2()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-1x7dr7o\",\"data-framer-name\":\"btn close\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"Q6DY7oHRx\",onTap:onTap5t73ml,children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-yocwg0\",\"data-framer-name\":\"atoms / icons / L / base / close\",layoutDependency:layoutDependency,layoutId:\"kmrDxlPnC\",children:/*#__PURE__*/_jsx(SVG,{className:\"framer-yml8a9\",\"data-framer-name\":\"icon_vector\",fill:\"rgba(0,0,0,1)\",intrinsicHeight:25,intrinsicWidth:24,layoutDependency:layoutDependency,layoutId:\"I20257:5011;14488:306\",svg:'<svg width=\"24\" height=\"25\" viewBox=\"0 0 24 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0.292893 22.3124C-0.0976311 22.7029 -0.0976311 23.3361 0.292893 23.7266C0.683418 24.1172 1.31658 24.1172 1.70711 23.7266L12 13.4337L22.2929 23.7266C22.6834 24.1172 23.3166 24.1172 23.7071 23.7266C24.0976 23.3361 24.0976 22.7029 23.7071 22.3124L13.4142 12.0195L23.7071 1.72664C24.0976 1.33611 24.0976 0.70295 23.7071 0.312425C23.3166 -0.0780989 22.6834 -0.0780989 22.2929 0.312425L12 10.6053L1.70711 0.312424C1.31658 -0.0780997 0.683418 -0.0780997 0.292894 0.312424C-0.0976308 0.702948 -0.0976308 1.33611 0.292894 1.72664L10.5858 12.0195L0.292893 22.3124Z\" fill=\"#0E0E0E\"/>\\n</svg>\\n',withExternalLayout:true})})})]})]})})});});const css=['.framer-UFuCr[data-border=\"true\"]::after, .framer-UFuCr [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; pointer-events: none; }',\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-UFuCr.framer-dnlgda, .framer-UFuCr .framer-dnlgda { display: block; }\",\".framer-UFuCr.framer-arjnd7 { align-content: center; align-items: center; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: auto; justify-content: flex-start; overflow: hidden; overflow-y: auto; overscroll-behavior: contain; padding: 24px 24px 24px 24px; position: relative; width: 900px; }\",\".framer-UFuCr .framer-j0ram4 { bottom: 0px; cursor: default; flex: none; left: 0px; overflow: hidden; position: absolute; right: 0px; top: 0px; }\",\".framer-UFuCr .framer-1044qh8 { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 40px; height: auto; justify-content: flex-start; max-width: 1104px; overflow: visible; padding: 48px 56px 48px 56px; position: relative; width: 100%; z-index: 1; }\",\".framer-UFuCr .framer-102baym { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 16px; height: auto; justify-content: center; overflow: visible; padding: 0px 0px 0px 0px; position: relative; width: 100%; }\",\".framer-UFuCr .framer-56o4h2, .framer-UFuCr .framer-1t2w3e9, .framer-UFuCr .framer-12pldmi, .framer-UFuCr .framer-1trdgjs { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-UFuCr .framer-c95srk { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: auto; justify-content: flex-start; overflow: visible; padding: 0px 0px 0px 0px; position: relative; width: 100%; }\",\".framer-UFuCr .framer-1nuwwnv-container { flex: none; height: auto; position: relative; width: 100%; }\",\".framer-UFuCr .framer-1w3hud0 { flex: none; height: 120px; position: relative; width: 120px; }\",\".framer-UFuCr .framer-5xngwg { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 32px; height: min-content; justify-content: center; overflow: visible; padding: 0px 0px 0px 0px; position: relative; width: 100%; }\",\".framer-UFuCr .framer-1x7dr7o { align-content: center; align-items: center; aspect-ratio: 1 / 1; cursor: pointer; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: var(--framer-aspect-ratio-supported, 32px); justify-content: center; overflow: visible; padding: 0px 0px 0px 0px; position: absolute; right: 24px; top: 24px; width: 32px; z-index: 1; }\",\".framer-UFuCr .framer-yocwg0 { flex: none; height: 32px; overflow: visible; position: relative; width: 32px; z-index: 1; }\",\".framer-UFuCr .framer-yml8a9 { flex: none; height: 25px; left: 4px; position: absolute; top: 4px; width: 24px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-UFuCr.framer-arjnd7, .framer-UFuCr .framer-1044qh8, .framer-UFuCr .framer-102baym, .framer-UFuCr .framer-c95srk, .framer-UFuCr .framer-5xngwg, .framer-UFuCr .framer-1x7dr7o { gap: 0px; } .framer-UFuCr.framer-arjnd7 > * { margin: 0px; margin-bottom: calc(0px / 2); margin-top: calc(0px / 2); } .framer-UFuCr.framer-arjnd7 > :first-child, .framer-UFuCr .framer-1044qh8 > :first-child, .framer-UFuCr .framer-102baym > :first-child, .framer-UFuCr .framer-c95srk > :first-child, .framer-UFuCr .framer-5xngwg > :first-child { margin-top: 0px; } .framer-UFuCr.framer-arjnd7 > :last-child, .framer-UFuCr .framer-1044qh8 > :last-child, .framer-UFuCr .framer-102baym > :last-child, .framer-UFuCr .framer-c95srk > :last-child, .framer-UFuCr .framer-5xngwg > :last-child { margin-bottom: 0px; } .framer-UFuCr .framer-1044qh8 > * { margin: 0px; margin-bottom: calc(40px / 2); margin-top: calc(40px / 2); } .framer-UFuCr .framer-102baym > * { margin: 0px; margin-bottom: calc(16px / 2); margin-top: calc(16px / 2); } .framer-UFuCr .framer-c95srk > * { margin: 0px; margin-bottom: calc(10px / 2); margin-top: calc(10px / 2); } .framer-UFuCr .framer-5xngwg > * { margin: 0px; margin-bottom: calc(32px / 2); margin-top: calc(32px / 2); } .framer-UFuCr .framer-1x7dr7o > * { margin: 0px; margin-left: calc(10px / 2); margin-right: calc(10px / 2); } .framer-UFuCr .framer-1x7dr7o > :first-child { margin-left: 0px; } .framer-UFuCr .framer-1x7dr7o > :last-child { margin-right: 0px; } }\",\".framer-UFuCr.framer-v-f10nqg .framer-1044qh8, .framer-UFuCr.framer-v-u5c90w .framer-1044qh8 { gap: 24px; padding: 48px 24px 32px 24px; }\",\".framer-UFuCr.framer-v-f10nqg .framer-1x7dr7o { right: 16px; top: 16px; }\",\".framer-UFuCr.framer-v-f10nqg .framer-yocwg0 { aspect-ratio: 1 / 1; height: var(--framer-aspect-ratio-supported, 32px); }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-UFuCr.framer-v-f10nqg .framer-1044qh8 { gap: 0px; } .framer-UFuCr.framer-v-f10nqg .framer-1044qh8 > * { margin: 0px; margin-bottom: calc(24px / 2); margin-top: calc(24px / 2); } .framer-UFuCr.framer-v-f10nqg .framer-1044qh8 > :first-child { margin-top: 0px; } .framer-UFuCr.framer-v-f10nqg .framer-1044qh8 > :last-child { margin-bottom: 0px; } }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-UFuCr.framer-v-u5c90w .framer-1044qh8 { gap: 0px; } .framer-UFuCr.framer-v-u5c90w .framer-1044qh8 > * { margin: 0px; margin-bottom: calc(24px / 2); margin-top: calc(24px / 2); } .framer-UFuCr.framer-v-u5c90w .framer-1044qh8 > :first-child { margin-top: 0px; } .framer-UFuCr.framer-v-u5c90w .framer-1044qh8 > :last-child { margin-bottom: 0px; } }\",\".framer-UFuCr.framer-v-1ng03n6 .framer-1044qh8 { padding: 144px 56px 144px 56px; }\",\".framer-UFuCr.framer-v-1ng03n6 .framer-c95srk { gap: 40px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-UFuCr.framer-v-1ng03n6 .framer-c95srk { gap: 0px; } .framer-UFuCr.framer-v-1ng03n6 .framer-c95srk > * { margin: 0px; margin-bottom: calc(40px / 2); margin-top: calc(40px / 2); } .framer-UFuCr.framer-v-1ng03n6 .framer-c95srk > :first-child { margin-top: 0px; } .framer-UFuCr.framer-v-1ng03n6 .framer-c95srk > :last-child { margin-bottom: 0px; } }\",\".framer-UFuCr.framer-v-rz6azw.framer-arjnd7 { width: 400px; }\",\".framer-UFuCr.framer-v-rz6azw .framer-1044qh8 { padding: 64px 24px 48px 24px; }\",\".framer-UFuCr.framer-v-rz6azw .framer-c95srk, .framer-UFuCr.framer-v-rz6azw .framer-5xngwg { gap: 24px; }\",\".framer-UFuCr.framer-v-rz6azw .framer-1w3hud0 { height: 80px; width: 80px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-UFuCr.framer-v-rz6azw .framer-c95srk, .framer-UFuCr.framer-v-rz6azw .framer-5xngwg { gap: 0px; } .framer-UFuCr.framer-v-rz6azw .framer-c95srk > *, .framer-UFuCr.framer-v-rz6azw .framer-5xngwg > * { margin: 0px; margin-bottom: calc(24px / 2); margin-top: calc(24px / 2); } .framer-UFuCr.framer-v-rz6azw .framer-c95srk > :first-child, .framer-UFuCr.framer-v-rz6azw .framer-5xngwg > :first-child { margin-top: 0px; } .framer-UFuCr.framer-v-rz6azw .framer-c95srk > :last-child, .framer-UFuCr.framer-v-rz6azw .framer-5xngwg > :last-child { margin-bottom: 0px; } }\",...sharedStyle.css,...sharedStyle1.css,...sharedStyle2.css,...sharedStyle3.css,...sharedStyle4.css,...sharedStyle5.css,...sharedStyle6.css,...sharedStyle7.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 745\n * @framerIntrinsicWidth 900\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"a6tH2utGy\":{\"layout\":[\"fixed\",\"auto\"]},\"gOqr5CL7P\":{\"layout\":[\"fixed\",\"auto\"]},\"smD0McqMC\":{\"layout\":[\"fixed\",\"auto\"]},\"ugt0DDxmw\":{\"layout\":[\"fixed\",\"auto\"]},\"qBfJYdeRt\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"TuDuUFGJ4\":\"closePopup\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n */const FramerwZFOzXRbo=withCSS(Component,css,\"framer-UFuCr\");export default FramerwZFOzXRbo;FramerwZFOzXRbo.displayName=\"PopupEarlyAccess\";FramerwZFOzXRbo.defaultProps={height:745,width:900};addPropertyControls(FramerwZFOzXRbo,{variant:{options:[\"v9ySp8yPr\",\"a6tH2utGy\",\"gOqr5CL7P\",\"smD0McqMC\",\"ugt0DDxmw\",\"qBfJYdeRt\"],optionTitles:[\"Default\",\"Default (without close)\",\"Default (sm)\",\"Default (sm) (without close)\",\"Success\",\"Success (sm)\"],title:\"Variant\",type:ControlType.Enum},TuDuUFGJ4:{title:\"Close Popup\",type:ControlType.EventHandler}});addFonts(FramerwZFOzXRbo,[...FormCustomFonts,...sharedStyle.fonts,...sharedStyle1.fonts,...sharedStyle2.fonts,...sharedStyle3.fonts,...sharedStyle4.fonts,...sharedStyle5.fonts,...sharedStyle6.fonts,...sharedStyle7.fonts]);\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerwZFOzXRbo\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"745\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"a6tH2utGy\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"gOqr5CL7P\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"smD0McqMC\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"ugt0DDxmw\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"qBfJYdeRt\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerVariables\":\"{\\\"TuDuUFGJ4\\\":\\\"closePopup\\\"}\",\"framerImmutableVariables\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicWidth\":\"900\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}", "import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import React from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{useForm}from\"https://cdn.jsdelivr.net/npm/react-hook-form@7.48.2/dist/index.esm.mjs\";const css=`\n    .my-form { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; font: 400 18px/1.5 \"Inter\", sans-serif; color: black; letter-spacing: -0.02em; }\n    .my-form-basic-styles { display: inline-block; vertical-align: top; width: 100%; border-radius: 4px; font: inherit; letter-spacing: inherit; color: #0e0e0e; }\n    .my-form-field { border: 1px solid #cdcdcd; height: 46px; padding: 0 16px; }\n    .my-form-field-area { border: 1px solid #cdcdcd; height: 74px; padding: 8px 16px; }\n    .my-form-field-select { border: 1px solid #cdcdcd; height: 46px; padding: 0 16px; -moz-appearance: none; -webkit-appearance: none; appearance: none; background: #fff url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADDSURBVHgB7dfbCcMwAENRjdgNrM0zQkZoE1pBCTa1Gz9BBwz5iMPVZwAzMzMzs5mE4+zH2T7PoxX3nC8+v87IEeHSsudc2i+XRo0IkY4t5yIjF3uPCImGR+4HiHEjUvFEIaL/iGrxQvQbUT1eiPYjmsUL0W5E83gh6o/oFi9EvRHd44W4P2JYvBD/jxgeL0T5iGnihcgfMV28EL9HTBsvRHrE9PFCxEOXiBdi4XghFo4XYuF4Of+eNrx/UQkzMzMzq+4FFunZzZcfv6oAAAAASUVORK5CYII=') no-repeat right 16px center / 24px 24px; }\n    .my-form-field-required { border-color: tomato; }\n    .my-form-grid-row { grid-column: span 2; }\n    .my-form-btn-submit { color: #fff; margin-top: 8px; border: 0; background: #2AA261; transition: all 0.2s ease; height: 56px; }\n    .my-form-btn-submit:enabled { cursor: pointer; }\n    .my-form-btn-submit:disabled { cursor: not-allowed; }\n    .my-form-btn-submit:hover:enabled { background: #38B571; }\n    @media (min-width: 1000px) {\n        .my-form { gap: 16px; font-size: 24px; }\n        .my-form-basic-styles {}\n        .my-form-grid-row.half { grid-column: span 1; }\n        .my-form-field { height: 64px; padding: 0 24px; }\n        .my-form-field-area { height: 100px; padding: 13px 24px; }\n        .my-form-field-select { height: 64px; padding: 0 24px; background-position: right 24px center; }\n        .my-form-btn-submit { margin-top: 16px; height: 64px; }\n    }\n`;export default function FormCustom(props){const{register,handleSubmit,formState:{errors}}=useForm();const[status,setStatus]=React.useState(\"idle\");const{url,fields=[],setSuccess}=props;// console.log(errors)\nconst onSubmit=formData=>{setStatus(\"pending\");fetch(url,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Accept:\"application/json\"},body:JSON.stringify(formData)}).then(r=>{if(r.ok){setStatus(\"successful\");if(setSuccess){setSuccess();}}else{setStatus(\"rejected\");alert(\"Something went wrong!\");}}).catch(err=>{setStatus(\"rejected\");alert(\"Something went wrong!\");});};return /*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"style\",{children:css}),/*#__PURE__*/_jsxs(\"form\",{onSubmit:handleSubmit(onSubmit),noValidate:true,className:\"my-form\",children:[fields.map(f=>{const{name,placeholder,required,type,width}=f;if(!name)return null;const basicProps=(props={})=>{const{className=\"\",colWidth}=props;const snakeName=snakeCase(name);return{className:`my-form-basic-styles my-form-grid-row ${className} ${errors[snakeName]?\"my-form-field-required\":\"\"} ${colWidth===\"half\"?\"half\":\"\"}`,...register(snakeName,{required,pattern:name===\"email\"?{value:/\\S+@\\S+\\.\\S+/}:{}})};};if(type===\"textarea\"){return /*#__PURE__*/_jsx(\"textarea\",{...basicProps({className:\"my-form-field-area\",colWidth:width}),placeholder:placeholder},name);}if(type===\"selectDepartment\"){const values=[\"Leadership\",\"Data\",\"Engineering and IT\",\"Sales and Partnerships\",\"Marketing\",\"Other\"];return /*#__PURE__*/_jsxs(\"select\",{...basicProps({className:\"my-form-field-select\",colWidth:width}),children:[/*#__PURE__*/_jsx(\"option\",{value:\"\",children:placeholder}),values.map(val=>/*#__PURE__*/_jsx(\"option\",{value:val,children:val}))]},name);}return /*#__PURE__*/_jsx(\"input\",{...basicProps({className:\"my-form-field\",colWidth:width}),placeholder:placeholder,type:type},name);}),/*#__PURE__*/_jsx(\"button\",{type:\"submit\",className:\"my-form-basic-styles my-form-btn-submit my-form-grid-row\",disabled:status===\"pending\",children:\"Submit\"})]})]});}const fieldTypes=[\"text\",\"textarea\",\"email\",\"number\",\"tel\",\"url\",\"selectDepartment\"];addPropertyControls(FormCustom,{url:{title:\"Action URL\",type:ControlType.String},fields:{type:ControlType.Array,control:{type:ControlType.Object,controls:{name:{type:ControlType.String,placeholder:\"email, phone, etc.\"},placeholder:{type:ControlType.String},type:{type:ControlType.Enum,defaultValue:\"text\",options:fieldTypes,optionTitles:fieldTypes},required:{type:ControlType.Boolean,defaultValue:false},width:{type:ControlType.Enum,defaultValue:\"full\",displaySegmentedControl:true,options:[\"full\",\"half\"],optionTitles:[\"Full\",\"Half\"]}}},defaultValue:[]}});const snakeCase=str=>str.toLowerCase().replace(/\\s+/g,\"_\")/*\nimport React from \"react\"\nimport { addPropertyControls, ControlType } from \"framer\"\nimport isFreeEmail from \"@withe/is-free-email\"\nimport { isValidEmail } from \"email-validator-dns-provider-rules\"\nimport { useForm } from \"https://cdn.jsdelivr.net/npm/react-hook-form@7.48.2/dist/index.esm.mjs\"\n\nconst css = `\n    .my-form { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; font: 400 20px/1.5 \"Inter\", sans-serif; color: black; letter-spacing: -0.02em; }\n    .my-form-basic-styles { display: inline-block; vertical-align: top; width: 100%; height: 56px; border-radius: 4px; font: inherit; letter-spacing: inherit; }\n    .my-form-select { border: 1px solid #cdcdcd; padding: 0 16px; }\n    .my-form-field { border: 1px solid #cdcdcd; padding: 0 16px 0 0; }\n    .my-form-field-area { border: 1px solid #cdcdcd; height: 128px; padding: 13px 16px; }\n    .my-form-field-required { border-color: tomato; }\n    .my-form-grid-row { grid-column: span 2; }\n    .my-form-btn-submit { color: #fff; margin-top: 8px; border: 0; background: #2AA261; transition: all 0.2s ease; }\n    .my-form-btn-submit:enabled { cursor: pointer; }\n    .my-form-btn-submit:disabled { cursor: not-allowed; }\n    .my-form-btn-submit:hover:enabled { background: #38B571; }\n    @media (min-width: 1000px) {\n        .my-form { gap: 16px; font-size: 24px; }\n        .my-form-basic-styles { height: 64px; }\n        .my-form-grid-row.half { grid-column: span 1; }\n        .my-form-field { padding: 0 24px; }\n        .my-form-field-area { height: 160px; padding: 20px 24px; }\n        .my-form-btn-submit { margin-top: 16px; }\n    }\n`\n\nexport default function FormCustom(props) {\n    const {\n        register,\n        handleSubmit,\n        formState: { errors },\n    } = useForm()\n    const [status, setStatus] = React.useState(\"idle\")\n    const [roleSelectOption, setRoleSelectOption] =\n        React.useState(\"data_engineering\")\n\n    const { url, fields = [], setSuccess } = props\n    const selectOptions = [\n        { value: \"executive\", label: \"Executive\" },\n        { value: \"data_science\", label: \"Data Science\" },\n        {\n            value: \"data_engineering\",\n            label: \"Data Engineering\",\n        },\n        { value: \"operations\", label: \"Operations\" },\n        { value: \"sales\", label: \"Sales\" },\n        { value: \"marketing\", label: \"Marketing\" },\n        { value: \"product\", label: \"Product\" },\n    ]\n    console.log(errors, \"errors\")\n\n    const handleRoleChange = (event) => {\n        console.log(event.target.value)\n        setRoleSelectOption(event.target.value)\n    }\n\n    const onSubmit = async (formData) => {\n        setStatus(\"pending\")\n        const is_free_mail = isFreeEmail(formData.email)\n        const is_valid_email = await isValidEmail(formData.email)\n        console.log({ is_free_mail, is_valid_email })\n        if (!is_valid_email || is_free_mail) {\n            console.log(\"Invalid email\")\n            return\n        }\n        console.log(\"valid Email\")\n\n        fetch(url, {\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                Accept: \"application/json\",\n            },\n            body: JSON.stringify(formData),\n        })\n            .then((r) => {\n                if (r.ok) {\n                    setStatus(\"successful\")\n                    if (setSuccess) {\n                        setSuccess()\n                    }\n                } else {\n                    setStatus(\"rejected\")\n                    alert(\"Something went wrong!\")\n                }\n            })\n            .catch((err) => {\n                setStatus(\"rejected\")\n                alert(\"Something went wrong!\")\n            })\n    }\n\n    return (\n        <div>\n            <style>{css}</style>\n            <form\n                onSubmit={handleSubmit(onSubmit)}\n                noValidate\n                className=\"my-form\"\n            >\n                {fields.map((f) => {\n                    const { name, placeholder, required, type, width } = f\n\n                    if (!name) return null\n\n                    const basicProps = (props = {}) => {\n                        const { className = \"\", colWidth } = props\n                        const snakeName = snakeCase(name)\n                        let pattern = {}\n\n                        if (name === \"full name\") {\n                            pattern = { value: /^.{3,20}$/ }\n                        }\n                        if (name === \"email\") {\n                            pattern = { value: /\\S+@\\S+\\.\\S+/ }\n                        }\n                        if (name === \"linkedin\") {\n                            pattern = {\n                                value: /linkedin\\.com\\/in\\/[a-zA-Z0-9_-]+/,\n                            }\n                        }\n\n                        return {\n                            className: `my-form-basic-styles my-form-grid-row ${className} ${\n                                errors[snakeName]\n                                    ? \"my-form-field-required\"\n                                    : \"\"\n                            } ${colWidth === \"half\" ? \"half\" : \"\"}`,\n                            ...register(snakeName, {\n                                required,\n                                pattern,\n                            }),\n                        }\n                    }\n\n                    if (type === \"textarea\") {\n                        return (\n                            <textarea\n                                key={name}\n                                {...basicProps({\n                                    className: \"my-form-field-area\",\n                                    colWidth: width,\n                                })}\n                                placeholder={placeholder}\n                            />\n                        )\n                    }\n\n                    if (type === \"select\") {\n                        return (\n                            <select\n                                onChange={handleRoleChange}\n                                key={name}\n                                {...basicProps({\n                                    className: \"my-form-select\",\n                                    colWidth: width,\n                                })}\n                            >\n                                {selectOptions.map((option) => (\n                                    <option\n                                        key={option.value}\n                                        value={option.value}\n                                    >\n                                        {option.label}\n                                    </option>\n                                ))}\n                            </select>\n                        )\n                    }\n\n                    return (\n                        <input\n                            key={name}\n                            {...basicProps({\n                                className: \"my-form-field\",\n                                colWidth: width,\n                            })}\n                            placeholder={placeholder}\n                            type={type}\n                        />\n                    )\n                })}\n                <button\n                    type=\"submit\"\n                    className=\"my-form-basic-styles my-form-btn-submit my-form-grid-row\"\n                    disabled={status === \"pending\"}\n                >\n                    Submit\n                </button>\n            </form>\n        </div>\n    )\n}\n\nconst fieldTypes = [\n    \"text\",\n    \"textarea\",\n    \"email\",\n    \"number\",\n    \"tel\",\n    \"url\",\n    \"select\",\n]\naddPropertyControls(FormCustom, {\n    url: {\n        title: \"Action URL\",\n        type: ControlType.String,\n    },\n\n    fields: {\n        type: ControlType.Array,\n        control: {\n            type: ControlType.Object,\n            controls: {\n                name: {\n                    type: ControlType.String,\n                    placeholder: \"email, phone, etc.\",\n                },\n                placeholder: { type: ControlType.String },\n                type: {\n                    type: ControlType.Enum,\n                    defaultValue: \"text\",\n                    options: fieldTypes,\n                    optionTitles: fieldTypes,\n                },\n                required: { type: ControlType.Boolean, defaultValue: false },\n                width: {\n                    type: ControlType.Enum,\n                    defaultValue: \"full\",\n                    displaySegmentedControl: true,\n                    options: [\"full\", \"half\"],\n                    optionTitles: [\"Full\", \"Half\"],\n                },\n            },\n        },\n        defaultValue: [],\n    },\n})\n\nconst snakeCase = (str) => str.toLowerCase().replace(/\\s+/g, \"_\")\n*/;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FormCustom\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FormCustom.map", "import React from 'react';\n\nvar isCheckBoxInput = (element) => element.type === 'checkbox';\n\nvar isDateObject = (value) => value instanceof Date;\n\nvar isNullOrUndefined = (value) => value == null;\n\nconst isObjectType = (value) => typeof value === 'object';\nvar isObject = (value) => !isNullOrUndefined(value) &&\n    !Array.isArray(value) &&\n    isObjectType(value) &&\n    !isDateObject(value);\n\nvar getEventValue = (event) => isObject(event) && event.target\n    ? isCheckBoxInput(event.target)\n        ? event.target.checked\n        : event.target.value\n    : event;\n\nvar getNodeParentName = (name) => name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n\nvar isNameInFieldArray = (names, name) => names.has(getNodeParentName(name));\n\nvar isPlainObject = (tempObject) => {\n    const prototypeCopy = tempObject.constructor && tempObject.constructor.prototype;\n    return (isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf'));\n};\n\nvar isWeb = typeof window !== 'undefined' &&\n    typeof window.HTMLElement !== 'undefined' &&\n    typeof document !== 'undefined';\n\nfunction cloneObject(data) {\n    let copy;\n    const isArray = Array.isArray(data);\n    if (data instanceof Date) {\n        copy = new Date(data);\n    }\n    else if (data instanceof Set) {\n        copy = new Set(data);\n    }\n    else if (!(isWeb && (data instanceof Blob || data instanceof FileList)) &&\n        (isArray || isObject(data))) {\n        copy = isArray ? [] : {};\n        if (!isArray && !isPlainObject(data)) {\n            copy = data;\n        }\n        else {\n            for (const key in data) {\n                if (data.hasOwnProperty(key)) {\n                    copy[key] = cloneObject(data[key]);\n                }\n            }\n        }\n    }\n    else {\n        return data;\n    }\n    return copy;\n}\n\nvar compact = (value) => Array.isArray(value) ? value.filter(Boolean) : [];\n\nvar isUndefined = (val) => val === undefined;\n\nvar get = (obj, path, defaultValue) => {\n    if (!path || !isObject(obj)) {\n        return defaultValue;\n    }\n    const result = compact(path.split(/[,[\\].]+?/)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], obj);\n    return isUndefined(result) || result === obj\n        ? isUndefined(obj[path])\n            ? defaultValue\n            : obj[path]\n        : result;\n};\n\nvar isBoolean = (value) => typeof value === 'boolean';\n\nconst EVENTS = {\n    BLUR: 'blur',\n    FOCUS_OUT: 'focusout',\n    CHANGE: 'change',\n};\nconst VALIDATION_MODE = {\n    onBlur: 'onBlur',\n    onChange: 'onChange',\n    onSubmit: 'onSubmit',\n    onTouched: 'onTouched',\n    all: 'all',\n};\nconst INPUT_VALIDATION_RULES = {\n    max: 'max',\n    min: 'min',\n    maxLength: 'maxLength',\n    minLength: 'minLength',\n    pattern: 'pattern',\n    required: 'required',\n    validate: 'validate',\n};\n\nconst HookFormContext = React.createContext(null);\n/**\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) \u2022 [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @returns return all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n *   const methods = useForm();\n *   const onSubmit = data => console.log(data);\n *\n *   return (\n *     <FormProvider {...methods} >\n *       <form onSubmit={methods.handleSubmit(onSubmit)}>\n *         <NestedInput />\n *         <input type=\"submit\" />\n *       </form>\n *     </FormProvider>\n *   );\n * }\n *\n *  function NestedInput() {\n *   const { register } = useFormContext(); // retrieve all hook methods\n *   return <input {...register(\"test\")} />;\n * }\n * ```\n */\nconst useFormContext = () => React.useContext(HookFormContext);\n/**\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://reactjs.org/docs/context.html) API. To be used with {@link useFormContext}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) \u2022 [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @param props - all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n *   const methods = useForm();\n *   const onSubmit = data => console.log(data);\n *\n *   return (\n *     <FormProvider {...methods} >\n *       <form onSubmit={methods.handleSubmit(onSubmit)}>\n *         <NestedInput />\n *         <input type=\"submit\" />\n *       </form>\n *     </FormProvider>\n *   );\n * }\n *\n *  function NestedInput() {\n *   const { register } = useFormContext(); // retrieve all hook methods\n *   return <input {...register(\"test\")} />;\n * }\n * ```\n */\nconst FormProvider = (props) => {\n    const { children, ...data } = props;\n    return (React.createElement(HookFormContext.Provider, { value: data }, children));\n};\n\nvar getProxyFormState = (formState, control, localProxyFormState, isRoot = true) => {\n    const result = {\n        defaultValues: control._defaultValues,\n    };\n    for (const key in formState) {\n        Object.defineProperty(result, key, {\n            get: () => {\n                const _key = key;\n                if (control._proxyFormState[_key] !== VALIDATION_MODE.all) {\n                    control._proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\n                }\n                localProxyFormState && (localProxyFormState[_key] = true);\n                return formState[_key];\n            },\n        });\n    }\n    return result;\n};\n\nvar isEmptyObject = (value) => isObject(value) && !Object.keys(value).length;\n\nvar shouldRenderFormState = (formStateData, _proxyFormState, updateFormState, isRoot) => {\n    updateFormState(formStateData);\n    const { name, ...formState } = formStateData;\n    return (isEmptyObject(formState) ||\n        Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\n        Object.keys(formState).find((key) => _proxyFormState[key] ===\n            (!isRoot || VALIDATION_MODE.all)));\n};\n\nvar convertToArrayPayload = (value) => (Array.isArray(value) ? value : [value]);\n\nvar shouldSubscribeByName = (name, signalName, exact) => !name ||\n    !signalName ||\n    name === signalName ||\n    convertToArrayPayload(name).some((currentName) => currentName &&\n        (exact\n            ? currentName === signalName\n            : currentName.startsWith(signalName) ||\n                signalName.startsWith(currentName)));\n\nfunction useSubscribe(props) {\n    const _props = React.useRef(props);\n    _props.current = props;\n    React.useEffect(() => {\n        const subscription = !props.disabled &&\n            _props.current.subject &&\n            _props.current.subject.subscribe({\n                next: _props.current.next,\n            });\n        return () => {\n            subscription && subscription.unsubscribe();\n        };\n    }, [props.disabled]);\n}\n\n/**\n * This custom hook allows you to subscribe to each form state, and isolate the re-render at the custom hook level. It has its scope in terms of form state subscription, so it would not affect other useFormState and useForm. Using this hook can reduce the re-render impact on large and complex form application.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformstate) \u2022 [Demo](https://codesandbox.io/s/useformstate-75xly)\n *\n * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}\n *\n * @example\n * ```tsx\n * function App() {\n *   const { register, handleSubmit, control } = useForm({\n *     defaultValues: {\n *     firstName: \"firstName\"\n *   }});\n *   const { dirtyFields } = useFormState({\n *     control\n *   });\n *   const onSubmit = (data) => console.log(data);\n *\n *   return (\n *     <form onSubmit={handleSubmit(onSubmit)}>\n *       <input {...register(\"firstName\")} placeholder=\"First Name\" />\n *       {dirtyFields.firstName && <p>Field is dirty.</p>}\n *       <input type=\"submit\" />\n *     </form>\n *   );\n * }\n * ```\n */\nfunction useFormState(props) {\n    const methods = useFormContext();\n    const { control = methods.control, disabled, name, exact } = props || {};\n    const [formState, updateFormState] = React.useState(control._formState);\n    const _mounted = React.useRef(true);\n    const _localProxyFormState = React.useRef({\n        isDirty: false,\n        isLoading: false,\n        dirtyFields: false,\n        touchedFields: false,\n        isValidating: false,\n        isValid: false,\n        errors: false,\n    });\n    const _name = React.useRef(name);\n    _name.current = name;\n    useSubscribe({\n        disabled,\n        next: (value) => _mounted.current &&\n            shouldSubscribeByName(_name.current, value.name, exact) &&\n            shouldRenderFormState(value, _localProxyFormState.current, control._updateFormState) &&\n            updateFormState({\n                ...control._formState,\n                ...value,\n            }),\n        subject: control._subjects.state,\n    });\n    React.useEffect(() => {\n        _mounted.current = true;\n        _localProxyFormState.current.isValid && control._updateValid(true);\n        return () => {\n            _mounted.current = false;\n        };\n    }, [control]);\n    return getProxyFormState(formState, control, _localProxyFormState.current, false);\n}\n\nvar isString = (value) => typeof value === 'string';\n\nvar generateWatchOutput = (names, _names, formValues, isGlobal, defaultValue) => {\n    if (isString(names)) {\n        isGlobal && _names.watch.add(names);\n        return get(formValues, names, defaultValue);\n    }\n    if (Array.isArray(names)) {\n        return names.map((fieldName) => (isGlobal && _names.watch.add(fieldName), get(formValues, fieldName)));\n    }\n    isGlobal && (_names.watchAll = true);\n    return formValues;\n};\n\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) \u2022 [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n *   name: \"fieldName\"\n *   control,\n * })\n * ```\n */\nfunction useWatch(props) {\n    const methods = useFormContext();\n    const { control = methods.control, name, defaultValue, disabled, exact, } = props || {};\n    const _name = React.useRef(name);\n    _name.current = name;\n    useSubscribe({\n        disabled,\n        subject: control._subjects.values,\n        next: (formState) => {\n            if (shouldSubscribeByName(_name.current, formState.name, exact)) {\n                updateValue(cloneObject(generateWatchOutput(_name.current, control._names, formState.values || control._formValues, false, defaultValue)));\n            }\n        },\n    });\n    const [value, updateValue] = React.useState(control._getWatch(name, defaultValue));\n    React.useEffect(() => control._removeUnmounted());\n    return value;\n}\n\nvar isKey = (value) => /^\\w*$/.test(value);\n\nvar stringToPath = (input) => compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n\nfunction set(object, path, value) {\n    let index = -1;\n    const tempPath = isKey(path) ? [path] : stringToPath(path);\n    const length = tempPath.length;\n    const lastIndex = length - 1;\n    while (++index < length) {\n        const key = tempPath[index];\n        let newValue = value;\n        if (index !== lastIndex) {\n            const objValue = object[key];\n            newValue =\n                isObject(objValue) || Array.isArray(objValue)\n                    ? objValue\n                    : !isNaN(+tempPath[index + 1])\n                        ? []\n                        : {};\n        }\n        object[key] = newValue;\n        object = object[key];\n    }\n    return object;\n}\n\n/**\n * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller) \u2022 [Demo](https://codesandbox.io/s/usecontroller-0o8px)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns field properties, field and form state. {@link UseControllerReturn}\n *\n * @example\n * ```tsx\n * function Input(props) {\n *   const { field, fieldState, formState } = useController(props);\n *   return (\n *     <div>\n *       <input {...field} placeholder={props.name} />\n *       <p>{fieldState.isTouched && \"Touched\"}</p>\n *       <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n *     </div>\n *   );\n * }\n * ```\n */\nfunction useController(props) {\n    const methods = useFormContext();\n    const { name, disabled, control = methods.control, shouldUnregister } = props;\n    const isArrayField = isNameInFieldArray(control._names.array, name);\n    const value = useWatch({\n        control,\n        name,\n        defaultValue: get(control._formValues, name, get(control._defaultValues, name, props.defaultValue)),\n        exact: true,\n    });\n    const formState = useFormState({\n        control,\n        name,\n    });\n    const _registerProps = React.useRef(control.register(name, {\n        ...props.rules,\n        value,\n    }));\n    _registerProps.current = control.register(name, props.rules);\n    React.useEffect(() => {\n        const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;\n        const updateMounted = (name, value) => {\n            const field = get(control._fields, name);\n            if (field) {\n                field._f.mount = value;\n            }\n        };\n        updateMounted(name, true);\n        if (_shouldUnregisterField) {\n            const value = cloneObject(get(control._options.defaultValues, name));\n            set(control._defaultValues, name, value);\n            if (isUndefined(get(control._formValues, name))) {\n                set(control._formValues, name, value);\n            }\n        }\n        return () => {\n            (isArrayField\n                ? _shouldUnregisterField && !control._state.action\n                : _shouldUnregisterField)\n                ? control.unregister(name)\n                : updateMounted(name, false);\n        };\n    }, [name, control, isArrayField, shouldUnregister]);\n    React.useEffect(() => {\n        if (get(control._fields, name)) {\n            control._updateDisabledField({\n                disabled,\n                fields: control._fields,\n                name,\n                value: get(control._fields, name)._f.value,\n            });\n        }\n    }, [disabled, name, control]);\n    return {\n        field: {\n            name,\n            value,\n            ...(isBoolean(disabled) || isBoolean(formState.disabled)\n                ? { disabled: formState.disabled || disabled }\n                : {}),\n            onChange: React.useCallback((event) => _registerProps.current.onChange({\n                target: {\n                    value: getEventValue(event),\n                    name: name,\n                },\n                type: EVENTS.CHANGE,\n            }), [name]),\n            onBlur: React.useCallback(() => _registerProps.current.onBlur({\n                target: {\n                    value: get(control._formValues, name),\n                    name: name,\n                },\n                type: EVENTS.BLUR,\n            }), [name, control]),\n            ref: (elm) => {\n                const field = get(control._fields, name);\n                if (field && elm) {\n                    field._f.ref = {\n                        focus: () => elm.focus(),\n                        select: () => elm.select(),\n                        setCustomValidity: (message) => elm.setCustomValidity(message),\n                        reportValidity: () => elm.reportValidity(),\n                    };\n                }\n            },\n        },\n        formState,\n        fieldState: Object.defineProperties({}, {\n            invalid: {\n                enumerable: true,\n                get: () => !!get(formState.errors, name),\n            },\n            isDirty: {\n                enumerable: true,\n                get: () => !!get(formState.dirtyFields, name),\n            },\n            isTouched: {\n                enumerable: true,\n                get: () => !!get(formState.touchedFields, name),\n            },\n            error: {\n                enumerable: true,\n                get: () => get(formState.errors, name),\n            },\n        }),\n    };\n}\n\n/**\n * Component based on `useController` hook to work with controlled component.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller/controller) \u2022 [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) \u2022 [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns provide field handler functions, field and form state.\n *\n * @example\n * ```tsx\n * function App() {\n *   const { control } = useForm<FormValues>({\n *     defaultValues: {\n *       test: \"\"\n *     }\n *   });\n *\n *   return (\n *     <form>\n *       <Controller\n *         control={control}\n *         name=\"test\"\n *         render={({ field: { onChange, onBlur, value, ref }, formState, fieldState }) => (\n *           <>\n *             <input\n *               onChange={onChange} // send value to hook form\n *               onBlur={onBlur} // notify when input is touched\n *               value={value} // return updated value\n *               ref={ref} // set ref for focus management\n *             />\n *             <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n *             <p>{fieldState.isTouched ? \"touched\" : \"\"}</p>\n *           </>\n *         )}\n *       />\n *     </form>\n *   );\n * }\n * ```\n */\nconst Controller = (props) => props.render(useController(props));\n\nconst POST_REQUEST = 'post';\n/**\n * Form component to manage submission.\n *\n * @param props - to setup submission detail. {@link FormProps}\n *\n * @returns form component or headless render prop.\n *\n * @example\n * ```tsx\n * function App() {\n *   const { control, formState: { errors } } = useForm();\n *\n *   return (\n *     <Form action=\"/api\" control={control}>\n *       <input {...register(\"name\")} />\n *       <p>{errors?.root?.server && 'Server error'}</p>\n *       <button>Submit</button>\n *     </Form>\n *   );\n * }\n * ```\n */\nfunction Form(props) {\n    const methods = useFormContext();\n    const [mounted, setMounted] = React.useState(false);\n    const { control = methods.control, onSubmit, children, action, method = POST_REQUEST, headers, encType, onError, render, onSuccess, validateStatus, ...rest } = props;\n    const submit = async (event) => {\n        let hasError = false;\n        let type = '';\n        await control.handleSubmit(async (data) => {\n            const formData = new FormData();\n            let formDataJson = '';\n            try {\n                formDataJson = JSON.stringify(data);\n            }\n            catch (_a) { }\n            for (const name of control._names.mount) {\n                formData.append(name, get(data, name));\n            }\n            if (onSubmit) {\n                await onSubmit({\n                    data,\n                    event,\n                    method,\n                    formData,\n                    formDataJson,\n                });\n            }\n            if (action) {\n                try {\n                    const shouldStringifySubmissionData = [\n                        headers && headers['Content-Type'],\n                        encType,\n                    ].some((value) => value && value.includes('json'));\n                    const response = await fetch(action, {\n                        method,\n                        headers: {\n                            ...headers,\n                            ...(encType ? { 'Content-Type': encType } : {}),\n                        },\n                        body: shouldStringifySubmissionData ? formDataJson : formData,\n                    });\n                    if (response &&\n                        (validateStatus\n                            ? !validateStatus(response.status)\n                            : response.status < 200 || response.status >= 300)) {\n                        hasError = true;\n                        onError && onError({ response });\n                        type = String(response.status);\n                    }\n                    else {\n                        onSuccess && onSuccess({ response });\n                    }\n                }\n                catch (error) {\n                    hasError = true;\n                    onError && onError({ error });\n                }\n            }\n        })(event);\n        if (hasError && props.control) {\n            props.control._subjects.state.next({\n                isSubmitSuccessful: false,\n            });\n            props.control.setError('root.server', {\n                type,\n            });\n        }\n    };\n    React.useEffect(() => {\n        setMounted(true);\n    }, []);\n    return render ? (React.createElement(React.Fragment, null, render({\n        submit,\n    }))) : (React.createElement(\"form\", { noValidate: mounted, action: action, method: method, encType: encType, onSubmit: submit, ...rest }, children));\n}\n\nvar appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria\n    ? {\n        ...errors[name],\n        types: {\n            ...(errors[name] && errors[name].types ? errors[name].types : {}),\n            [type]: message || true,\n        },\n    }\n    : {};\n\nvar generateId = () => {\n    const d = typeof performance === 'undefined' ? Date.now() : performance.now() * 1000;\n    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n        const r = (Math.random() * 16 + d) % 16 | 0;\n        return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\n    });\n};\n\nvar getFocusFieldName = (name, index, options = {}) => options.shouldFocus || isUndefined(options.shouldFocus)\n    ? options.focusName ||\n        `${name}.${isUndefined(options.focusIndex) ? index : options.focusIndex}.`\n    : '';\n\nvar getValidationModes = (mode) => ({\n    isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n    isOnBlur: mode === VALIDATION_MODE.onBlur,\n    isOnChange: mode === VALIDATION_MODE.onChange,\n    isOnAll: mode === VALIDATION_MODE.all,\n    isOnTouch: mode === VALIDATION_MODE.onTouched,\n});\n\nvar isWatched = (name, _names, isBlurEvent) => !isBlurEvent &&\n    (_names.watchAll ||\n        _names.watch.has(name) ||\n        [..._names.watch].some((watchName) => name.startsWith(watchName) &&\n            /^\\.\\w+/.test(name.slice(watchName.length))));\n\nconst iterateFieldsByAction = (fields, action, fieldsNames, abortEarly) => {\n    for (const key of fieldsNames || Object.keys(fields)) {\n        const field = get(fields, key);\n        if (field) {\n            const { _f, ...currentField } = field;\n            if (_f) {\n                if (_f.refs && _f.refs[0] && action(_f.refs[0], key) && !abortEarly) {\n                    break;\n                }\n                else if (_f.ref && action(_f.ref, _f.name) && !abortEarly) {\n                    break;\n                }\n            }\n            else if (isObject(currentField)) {\n                iterateFieldsByAction(currentField, action);\n            }\n        }\n    }\n};\n\nvar updateFieldArrayRootError = (errors, error, name) => {\n    const fieldArrayErrors = compact(get(errors, name));\n    set(fieldArrayErrors, 'root', error[name]);\n    set(errors, name, fieldArrayErrors);\n    return errors;\n};\n\nvar isFileInput = (element) => element.type === 'file';\n\nvar isFunction = (value) => typeof value === 'function';\n\nvar isHTMLElement = (value) => {\n    if (!isWeb) {\n        return false;\n    }\n    const owner = value ? value.ownerDocument : 0;\n    return (value instanceof\n        (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement));\n};\n\nvar isMessage = (value) => isString(value);\n\nvar isRadioInput = (element) => element.type === 'radio';\n\nvar isRegex = (value) => value instanceof RegExp;\n\nconst defaultResult = {\n    value: false,\n    isValid: false,\n};\nconst validResult = { value: true, isValid: true };\nvar getCheckboxValue = (options) => {\n    if (Array.isArray(options)) {\n        if (options.length > 1) {\n            const values = options\n                .filter((option) => option && option.checked && !option.disabled)\n                .map((option) => option.value);\n            return { value: values, isValid: !!values.length };\n        }\n        return options[0].checked && !options[0].disabled\n            ? // @ts-expect-error expected to work in the browser\n                options[0].attributes && !isUndefined(options[0].attributes.value)\n                    ? isUndefined(options[0].value) || options[0].value === ''\n                        ? validResult\n                        : { value: options[0].value, isValid: true }\n                    : validResult\n            : defaultResult;\n    }\n    return defaultResult;\n};\n\nconst defaultReturn = {\n    isValid: false,\n    value: null,\n};\nvar getRadioValue = (options) => Array.isArray(options)\n    ? options.reduce((previous, option) => option && option.checked && !option.disabled\n        ? {\n            isValid: true,\n            value: option.value,\n        }\n        : previous, defaultReturn)\n    : defaultReturn;\n\nfunction getValidateError(result, ref, type = 'validate') {\n    if (isMessage(result) ||\n        (Array.isArray(result) && result.every(isMessage)) ||\n        (isBoolean(result) && !result)) {\n        return {\n            type,\n            message: isMessage(result) ? result : '',\n            ref,\n        };\n    }\n}\n\nvar getValueAndMessage = (validationData) => isObject(validationData) && !isRegex(validationData)\n    ? validationData\n    : {\n        value: validationData,\n        message: '',\n    };\n\nvar validateField = async (field, formValues, validateAllFieldCriteria, shouldUseNativeValidation, isFieldArray) => {\n    const { ref, refs, required, maxLength, minLength, min, max, pattern, validate, name, valueAsNumber, mount, disabled, } = field._f;\n    const inputValue = get(formValues, name);\n    if (!mount || disabled) {\n        return {};\n    }\n    const inputRef = refs ? refs[0] : ref;\n    const setCustomValidity = (message) => {\n        if (shouldUseNativeValidation && inputRef.reportValidity) {\n            inputRef.setCustomValidity(isBoolean(message) ? '' : message || '');\n            inputRef.reportValidity();\n        }\n    };\n    const error = {};\n    const isRadio = isRadioInput(ref);\n    const isCheckBox = isCheckBoxInput(ref);\n    const isRadioOrCheckbox = isRadio || isCheckBox;\n    const isEmpty = ((valueAsNumber || isFileInput(ref)) &&\n        isUndefined(ref.value) &&\n        isUndefined(inputValue)) ||\n        (isHTMLElement(ref) && ref.value === '') ||\n        inputValue === '' ||\n        (Array.isArray(inputValue) && !inputValue.length);\n    const appendErrorsCurry = appendErrors.bind(null, name, validateAllFieldCriteria, error);\n    const getMinMaxMessage = (exceedMax, maxLengthMessage, minLengthMessage, maxType = INPUT_VALIDATION_RULES.maxLength, minType = INPUT_VALIDATION_RULES.minLength) => {\n        const message = exceedMax ? maxLengthMessage : minLengthMessage;\n        error[name] = {\n            type: exceedMax ? maxType : minType,\n            message,\n            ref,\n            ...appendErrorsCurry(exceedMax ? maxType : minType, message),\n        };\n    };\n    if (isFieldArray\n        ? !Array.isArray(inputValue) || !inputValue.length\n        : required &&\n            ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\n                (isBoolean(inputValue) && !inputValue) ||\n                (isCheckBox && !getCheckboxValue(refs).isValid) ||\n                (isRadio && !getRadioValue(refs).isValid))) {\n        const { value, message } = isMessage(required)\n            ? { value: !!required, message: required }\n            : getValueAndMessage(required);\n        if (value) {\n            error[name] = {\n                type: INPUT_VALIDATION_RULES.required,\n                message,\n                ref: inputRef,\n                ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n            };\n            if (!validateAllFieldCriteria) {\n                setCustomValidity(message);\n                return error;\n            }\n        }\n    }\n    if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n        let exceedMax;\n        let exceedMin;\n        const maxOutput = getValueAndMessage(max);\n        const minOutput = getValueAndMessage(min);\n        if (!isNullOrUndefined(inputValue) && !isNaN(inputValue)) {\n            const valueNumber = ref.valueAsNumber ||\n                (inputValue ? +inputValue : inputValue);\n            if (!isNullOrUndefined(maxOutput.value)) {\n                exceedMax = valueNumber > maxOutput.value;\n            }\n            if (!isNullOrUndefined(minOutput.value)) {\n                exceedMin = valueNumber < minOutput.value;\n            }\n        }\n        else {\n            const valueDate = ref.valueAsDate || new Date(inputValue);\n            const convertTimeToDate = (time) => new Date(new Date().toDateString() + ' ' + time);\n            const isTime = ref.type == 'time';\n            const isWeek = ref.type == 'week';\n            if (isString(maxOutput.value) && inputValue) {\n                exceedMax = isTime\n                    ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)\n                    : isWeek\n                        ? inputValue > maxOutput.value\n                        : valueDate > new Date(maxOutput.value);\n            }\n            if (isString(minOutput.value) && inputValue) {\n                exceedMin = isTime\n                    ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)\n                    : isWeek\n                        ? inputValue < minOutput.value\n                        : valueDate < new Date(minOutput.value);\n            }\n        }\n        if (exceedMax || exceedMin) {\n            getMinMaxMessage(!!exceedMax, maxOutput.message, minOutput.message, INPUT_VALIDATION_RULES.max, INPUT_VALIDATION_RULES.min);\n            if (!validateAllFieldCriteria) {\n                setCustomValidity(error[name].message);\n                return error;\n            }\n        }\n    }\n    if ((maxLength || minLength) &&\n        !isEmpty &&\n        (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))) {\n        const maxLengthOutput = getValueAndMessage(maxLength);\n        const minLengthOutput = getValueAndMessage(minLength);\n        const exceedMax = !isNullOrUndefined(maxLengthOutput.value) &&\n            inputValue.length > +maxLengthOutput.value;\n        const exceedMin = !isNullOrUndefined(minLengthOutput.value) &&\n            inputValue.length < +minLengthOutput.value;\n        if (exceedMax || exceedMin) {\n            getMinMaxMessage(exceedMax, maxLengthOutput.message, minLengthOutput.message);\n            if (!validateAllFieldCriteria) {\n                setCustomValidity(error[name].message);\n                return error;\n            }\n        }\n    }\n    if (pattern && !isEmpty && isString(inputValue)) {\n        const { value: patternValue, message } = getValueAndMessage(pattern);\n        if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n            error[name] = {\n                type: INPUT_VALIDATION_RULES.pattern,\n                message,\n                ref,\n                ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n            };\n            if (!validateAllFieldCriteria) {\n                setCustomValidity(message);\n                return error;\n            }\n        }\n    }\n    if (validate) {\n        if (isFunction(validate)) {\n            const result = await validate(inputValue, formValues);\n            const validateError = getValidateError(result, inputRef);\n            if (validateError) {\n                error[name] = {\n                    ...validateError,\n                    ...appendErrorsCurry(INPUT_VALIDATION_RULES.validate, validateError.message),\n                };\n                if (!validateAllFieldCriteria) {\n                    setCustomValidity(validateError.message);\n                    return error;\n                }\n            }\n        }\n        else if (isObject(validate)) {\n            let validationResult = {};\n            for (const key in validate) {\n                if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n                    break;\n                }\n                const validateError = getValidateError(await validate[key](inputValue, formValues), inputRef, key);\n                if (validateError) {\n                    validationResult = {\n                        ...validateError,\n                        ...appendErrorsCurry(key, validateError.message),\n                    };\n                    setCustomValidity(validateError.message);\n                    if (validateAllFieldCriteria) {\n                        error[name] = validationResult;\n                    }\n                }\n            }\n            if (!isEmptyObject(validationResult)) {\n                error[name] = {\n                    ref: inputRef,\n                    ...validationResult,\n                };\n                if (!validateAllFieldCriteria) {\n                    return error;\n                }\n            }\n        }\n    }\n    setCustomValidity(true);\n    return error;\n};\n\nfunction append(data, value) {\n    return [...data, ...convertToArrayPayload(value)];\n}\n\nvar fillEmptyArray = (value) => Array.isArray(value) ? value.map(() => undefined) : undefined;\n\nfunction insert(data, index, value) {\n    return [\n        ...data.slice(0, index),\n        ...convertToArrayPayload(value),\n        ...data.slice(index),\n    ];\n}\n\nvar moveArrayAt = (data, from, to) => {\n    if (!Array.isArray(data)) {\n        return [];\n    }\n    if (isUndefined(data[to])) {\n        data[to] = undefined;\n    }\n    data.splice(to, 0, data.splice(from, 1)[0]);\n    return data;\n};\n\nfunction prepend(data, value) {\n    return [...convertToArrayPayload(value), ...convertToArrayPayload(data)];\n}\n\nfunction removeAtIndexes(data, indexes) {\n    let i = 0;\n    const temp = [...data];\n    for (const index of indexes) {\n        temp.splice(index - i, 1);\n        i++;\n    }\n    return compact(temp).length ? temp : [];\n}\nvar removeArrayAt = (data, index) => isUndefined(index)\n    ? []\n    : removeAtIndexes(data, convertToArrayPayload(index).sort((a, b) => a - b));\n\nvar swapArrayAt = (data, indexA, indexB) => {\n    data[indexA] = [data[indexB], (data[indexB] = data[indexA])][0];\n};\n\nfunction baseGet(object, updatePath) {\n    const length = updatePath.slice(0, -1).length;\n    let index = 0;\n    while (index < length) {\n        object = isUndefined(object) ? index++ : object[updatePath[index++]];\n    }\n    return object;\n}\nfunction isEmptyArray(obj) {\n    for (const key in obj) {\n        if (obj.hasOwnProperty(key) && !isUndefined(obj[key])) {\n            return false;\n        }\n    }\n    return true;\n}\nfunction unset(object, path) {\n    const paths = Array.isArray(path)\n        ? path\n        : isKey(path)\n            ? [path]\n            : stringToPath(path);\n    const childObject = paths.length === 1 ? object : baseGet(object, paths);\n    const index = paths.length - 1;\n    const key = paths[index];\n    if (childObject) {\n        delete childObject[key];\n    }\n    if (index !== 0 &&\n        ((isObject(childObject) && isEmptyObject(childObject)) ||\n            (Array.isArray(childObject) && isEmptyArray(childObject)))) {\n        unset(object, paths.slice(0, -1));\n    }\n    return object;\n}\n\nvar updateAt = (fieldValues, index, value) => {\n    fieldValues[index] = value;\n    return fieldValues;\n};\n\n/**\n * A custom hook that exposes convenient methods to perform operations with a list of dynamic inputs that need to be appended, updated, removed etc. \u2022 [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn) \u2022 [Video](https://youtu.be/4MrbfGSFY2A)\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usefieldarray) \u2022 [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn)\n *\n * @param props - useFieldArray props\n *\n * @returns methods - functions to manipulate with the Field Arrays (dynamic inputs) {@link UseFieldArrayReturn}\n *\n * @example\n * ```tsx\n * function App() {\n *   const { register, control, handleSubmit, reset, trigger, setError } = useForm({\n *     defaultValues: {\n *       test: []\n *     }\n *   });\n *   const { fields, append } = useFieldArray({\n *     control,\n *     name: \"test\"\n *   });\n *\n *   return (\n *     <form onSubmit={handleSubmit(data => console.log(data))}>\n *       {fields.map((item, index) => (\n *          <input key={item.id} {...register(`test.${index}.firstName`)}  />\n *       ))}\n *       <button type=\"button\" onClick={() => append({ firstName: \"bill\" })}>\n *         append\n *       </button>\n *       <input type=\"submit\" />\n *     </form>\n *   );\n * }\n * ```\n */\nfunction useFieldArray(props) {\n    const methods = useFormContext();\n    const { control = methods.control, name, keyName = 'id', shouldUnregister, } = props;\n    const [fields, setFields] = React.useState(control._getFieldArray(name));\n    const ids = React.useRef(control._getFieldArray(name).map(generateId));\n    const _fieldIds = React.useRef(fields);\n    const _name = React.useRef(name);\n    const _actioned = React.useRef(false);\n    _name.current = name;\n    _fieldIds.current = fields;\n    control._names.array.add(name);\n    props.rules &&\n        control.register(name, props.rules);\n    useSubscribe({\n        next: ({ values, name: fieldArrayName, }) => {\n            if (fieldArrayName === _name.current || !fieldArrayName) {\n                const fieldValues = get(values, _name.current);\n                if (Array.isArray(fieldValues)) {\n                    setFields(fieldValues);\n                    ids.current = fieldValues.map(generateId);\n                }\n            }\n        },\n        subject: control._subjects.array,\n    });\n    const updateValues = React.useCallback((updatedFieldArrayValues) => {\n        _actioned.current = true;\n        control._updateFieldArray(name, updatedFieldArrayValues);\n    }, [control, name]);\n    const append$1 = (value, options) => {\n        const appendValue = convertToArrayPayload(cloneObject(value));\n        const updatedFieldArrayValues = append(control._getFieldArray(name), appendValue);\n        control._names.focus = getFocusFieldName(name, updatedFieldArrayValues.length - 1, options);\n        ids.current = append(ids.current, appendValue.map(generateId));\n        updateValues(updatedFieldArrayValues);\n        setFields(updatedFieldArrayValues);\n        control._updateFieldArray(name, updatedFieldArrayValues, append, {\n            argA: fillEmptyArray(value),\n        });\n    };\n    const prepend$1 = (value, options) => {\n        const prependValue = convertToArrayPayload(cloneObject(value));\n        const updatedFieldArrayValues = prepend(control._getFieldArray(name), prependValue);\n        control._names.focus = getFocusFieldName(name, 0, options);\n        ids.current = prepend(ids.current, prependValue.map(generateId));\n        updateValues(updatedFieldArrayValues);\n        setFields(updatedFieldArrayValues);\n        control._updateFieldArray(name, updatedFieldArrayValues, prepend, {\n            argA: fillEmptyArray(value),\n        });\n    };\n    const remove = (index) => {\n        const updatedFieldArrayValues = removeArrayAt(control._getFieldArray(name), index);\n        ids.current = removeArrayAt(ids.current, index);\n        updateValues(updatedFieldArrayValues);\n        setFields(updatedFieldArrayValues);\n        control._updateFieldArray(name, updatedFieldArrayValues, removeArrayAt, {\n            argA: index,\n        });\n    };\n    const insert$1 = (index, value, options) => {\n        const insertValue = convertToArrayPayload(cloneObject(value));\n        const updatedFieldArrayValues = insert(control._getFieldArray(name), index, insertValue);\n        control._names.focus = getFocusFieldName(name, index, options);\n        ids.current = insert(ids.current, index, insertValue.map(generateId));\n        updateValues(updatedFieldArrayValues);\n        setFields(updatedFieldArrayValues);\n        control._updateFieldArray(name, updatedFieldArrayValues, insert, {\n            argA: index,\n            argB: fillEmptyArray(value),\n        });\n    };\n    const swap = (indexA, indexB) => {\n        const updatedFieldArrayValues = control._getFieldArray(name);\n        swapArrayAt(updatedFieldArrayValues, indexA, indexB);\n        swapArrayAt(ids.current, indexA, indexB);\n        updateValues(updatedFieldArrayValues);\n        setFields(updatedFieldArrayValues);\n        control._updateFieldArray(name, updatedFieldArrayValues, swapArrayAt, {\n            argA: indexA,\n            argB: indexB,\n        }, false);\n    };\n    const move = (from, to) => {\n        const updatedFieldArrayValues = control._getFieldArray(name);\n        moveArrayAt(updatedFieldArrayValues, from, to);\n        moveArrayAt(ids.current, from, to);\n        updateValues(updatedFieldArrayValues);\n        setFields(updatedFieldArrayValues);\n        control._updateFieldArray(name, updatedFieldArrayValues, moveArrayAt, {\n            argA: from,\n            argB: to,\n        }, false);\n    };\n    const update = (index, value) => {\n        const updateValue = cloneObject(value);\n        const updatedFieldArrayValues = updateAt(control._getFieldArray(name), index, updateValue);\n        ids.current = [...updatedFieldArrayValues].map((item, i) => !item || i === index ? generateId() : ids.current[i]);\n        updateValues(updatedFieldArrayValues);\n        setFields([...updatedFieldArrayValues]);\n        control._updateFieldArray(name, updatedFieldArrayValues, updateAt, {\n            argA: index,\n            argB: updateValue,\n        }, true, false);\n    };\n    const replace = (value) => {\n        const updatedFieldArrayValues = convertToArrayPayload(cloneObject(value));\n        ids.current = updatedFieldArrayValues.map(generateId);\n        updateValues([...updatedFieldArrayValues]);\n        setFields([...updatedFieldArrayValues]);\n        control._updateFieldArray(name, [...updatedFieldArrayValues], (data) => data, {}, true, false);\n    };\n    React.useEffect(() => {\n        control._state.action = false;\n        isWatched(name, control._names) &&\n            control._subjects.state.next({\n                ...control._formState,\n            });\n        if (_actioned.current &&\n            (!getValidationModes(control._options.mode).isOnSubmit ||\n                control._formState.isSubmitted)) {\n            if (control._options.resolver) {\n                control._executeSchema([name]).then((result) => {\n                    const error = get(result.errors, name);\n                    const existingError = get(control._formState.errors, name);\n                    if (existingError\n                        ? (!error && existingError.type) ||\n                            (error &&\n                                (existingError.type !== error.type ||\n                                    existingError.message !== error.message))\n                        : error && error.type) {\n                        error\n                            ? set(control._formState.errors, name, error)\n                            : unset(control._formState.errors, name);\n                        control._subjects.state.next({\n                            errors: control._formState.errors,\n                        });\n                    }\n                });\n            }\n            else {\n                const field = get(control._fields, name);\n                if (field && field._f) {\n                    validateField(field, control._formValues, control._options.criteriaMode === VALIDATION_MODE.all, control._options.shouldUseNativeValidation, true).then((error) => !isEmptyObject(error) &&\n                        control._subjects.state.next({\n                            errors: updateFieldArrayRootError(control._formState.errors, error, name),\n                        }));\n                }\n            }\n        }\n        control._subjects.values.next({\n            name,\n            values: { ...control._formValues },\n        });\n        control._names.focus &&\n            iterateFieldsByAction(control._fields, (ref, key) => {\n                if (control._names.focus &&\n                    key.startsWith(control._names.focus) &&\n                    ref.focus) {\n                    ref.focus();\n                    return 1;\n                }\n                return;\n            });\n        control._names.focus = '';\n        control._updateValid();\n        _actioned.current = false;\n    }, [fields, name, control]);\n    React.useEffect(() => {\n        !get(control._formValues, name) && control._updateFieldArray(name);\n        return () => {\n            (control._options.shouldUnregister || shouldUnregister) &&\n                control.unregister(name);\n        };\n    }, [name, control, keyName, shouldUnregister]);\n    return {\n        swap: React.useCallback(swap, [updateValues, name, control]),\n        move: React.useCallback(move, [updateValues, name, control]),\n        prepend: React.useCallback(prepend$1, [updateValues, name, control]),\n        append: React.useCallback(append$1, [updateValues, name, control]),\n        remove: React.useCallback(remove, [updateValues, name, control]),\n        insert: React.useCallback(insert$1, [updateValues, name, control]),\n        update: React.useCallback(update, [updateValues, name, control]),\n        replace: React.useCallback(replace, [updateValues, name, control]),\n        fields: React.useMemo(() => fields.map((field, index) => ({\n            ...field,\n            [keyName]: ids.current[index] || generateId(),\n        })), [fields, keyName]),\n    };\n}\n\nfunction createSubject() {\n    let _observers = [];\n    const next = (value) => {\n        for (const observer of _observers) {\n            observer.next && observer.next(value);\n        }\n    };\n    const subscribe = (observer) => {\n        _observers.push(observer);\n        return {\n            unsubscribe: () => {\n                _observers = _observers.filter((o) => o !== observer);\n            },\n        };\n    };\n    const unsubscribe = () => {\n        _observers = [];\n    };\n    return {\n        get observers() {\n            return _observers;\n        },\n        next,\n        subscribe,\n        unsubscribe,\n    };\n}\n\nvar isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);\n\nfunction deepEqual(object1, object2) {\n    if (isPrimitive(object1) || isPrimitive(object2)) {\n        return object1 === object2;\n    }\n    if (isDateObject(object1) && isDateObject(object2)) {\n        return object1.getTime() === object2.getTime();\n    }\n    const keys1 = Object.keys(object1);\n    const keys2 = Object.keys(object2);\n    if (keys1.length !== keys2.length) {\n        return false;\n    }\n    for (const key of keys1) {\n        const val1 = object1[key];\n        if (!keys2.includes(key)) {\n            return false;\n        }\n        if (key !== 'ref') {\n            const val2 = object2[key];\n            if ((isDateObject(val1) && isDateObject(val2)) ||\n                (isObject(val1) && isObject(val2)) ||\n                (Array.isArray(val1) && Array.isArray(val2))\n                ? !deepEqual(val1, val2)\n                : val1 !== val2) {\n                return false;\n            }\n        }\n    }\n    return true;\n}\n\nvar isMultipleSelect = (element) => element.type === `select-multiple`;\n\nvar isRadioOrCheckbox = (ref) => isRadioInput(ref) || isCheckBoxInput(ref);\n\nvar live = (ref) => isHTMLElement(ref) && ref.isConnected;\n\nvar objectHasFunction = (data) => {\n    for (const key in data) {\n        if (isFunction(data[key])) {\n            return true;\n        }\n    }\n    return false;\n};\n\nfunction markFieldsDirty(data, fields = {}) {\n    const isParentNodeArray = Array.isArray(data);\n    if (isObject(data) || isParentNodeArray) {\n        for (const key in data) {\n            if (Array.isArray(data[key]) ||\n                (isObject(data[key]) && !objectHasFunction(data[key]))) {\n                fields[key] = Array.isArray(data[key]) ? [] : {};\n                markFieldsDirty(data[key], fields[key]);\n            }\n            else if (!isNullOrUndefined(data[key])) {\n                fields[key] = true;\n            }\n        }\n    }\n    return fields;\n}\nfunction getDirtyFieldsFromDefaultValues(data, formValues, dirtyFieldsFromValues) {\n    const isParentNodeArray = Array.isArray(data);\n    if (isObject(data) || isParentNodeArray) {\n        for (const key in data) {\n            if (Array.isArray(data[key]) ||\n                (isObject(data[key]) && !objectHasFunction(data[key]))) {\n                if (isUndefined(formValues) ||\n                    isPrimitive(dirtyFieldsFromValues[key])) {\n                    dirtyFieldsFromValues[key] = Array.isArray(data[key])\n                        ? markFieldsDirty(data[key], [])\n                        : { ...markFieldsDirty(data[key]) };\n                }\n                else {\n                    getDirtyFieldsFromDefaultValues(data[key], isNullOrUndefined(formValues) ? {} : formValues[key], dirtyFieldsFromValues[key]);\n                }\n            }\n            else {\n                dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);\n            }\n        }\n    }\n    return dirtyFieldsFromValues;\n}\nvar getDirtyFields = (defaultValues, formValues) => getDirtyFieldsFromDefaultValues(defaultValues, formValues, markFieldsDirty(formValues));\n\nvar getFieldValueAs = (value, { valueAsNumber, valueAsDate, setValueAs }) => isUndefined(value)\n    ? value\n    : valueAsNumber\n        ? value === ''\n            ? NaN\n            : value\n                ? +value\n                : value\n        : valueAsDate && isString(value)\n            ? new Date(value)\n            : setValueAs\n                ? setValueAs(value)\n                : value;\n\nfunction getFieldValue(_f) {\n    const ref = _f.ref;\n    if (_f.refs ? _f.refs.every((ref) => ref.disabled) : ref.disabled) {\n        return;\n    }\n    if (isFileInput(ref)) {\n        return ref.files;\n    }\n    if (isRadioInput(ref)) {\n        return getRadioValue(_f.refs).value;\n    }\n    if (isMultipleSelect(ref)) {\n        return [...ref.selectedOptions].map(({ value }) => value);\n    }\n    if (isCheckBoxInput(ref)) {\n        return getCheckboxValue(_f.refs).value;\n    }\n    return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\n\nvar getResolverOptions = (fieldsNames, _fields, criteriaMode, shouldUseNativeValidation) => {\n    const fields = {};\n    for (const name of fieldsNames) {\n        const field = get(_fields, name);\n        field && set(fields, name, field._f);\n    }\n    return {\n        criteriaMode,\n        names: [...fieldsNames],\n        fields,\n        shouldUseNativeValidation,\n    };\n};\n\nvar getRuleValue = (rule) => isUndefined(rule)\n    ? rule\n    : isRegex(rule)\n        ? rule.source\n        : isObject(rule)\n            ? isRegex(rule.value)\n                ? rule.value.source\n                : rule.value\n            : rule;\n\nvar hasValidation = (options) => options.mount &&\n    (options.required ||\n        options.min ||\n        options.max ||\n        options.maxLength ||\n        options.minLength ||\n        options.pattern ||\n        options.validate);\n\nfunction schemaErrorLookup(errors, _fields, name) {\n    const error = get(errors, name);\n    if (error || isKey(name)) {\n        return {\n            error,\n            name,\n        };\n    }\n    const names = name.split('.');\n    while (names.length) {\n        const fieldName = names.join('.');\n        const field = get(_fields, fieldName);\n        const foundError = get(errors, fieldName);\n        if (field && !Array.isArray(field) && name !== fieldName) {\n            return { name };\n        }\n        if (foundError && foundError.type) {\n            return {\n                name: fieldName,\n                error: foundError,\n            };\n        }\n        names.pop();\n    }\n    return {\n        name,\n    };\n}\n\nvar skipValidation = (isBlurEvent, isTouched, isSubmitted, reValidateMode, mode) => {\n    if (mode.isOnAll) {\n        return false;\n    }\n    else if (!isSubmitted && mode.isOnTouch) {\n        return !(isTouched || isBlurEvent);\n    }\n    else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\n        return !isBlurEvent;\n    }\n    else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\n        return isBlurEvent;\n    }\n    return true;\n};\n\nvar unsetEmptyArray = (ref, name) => !compact(get(ref, name)).length && unset(ref, name);\n\nconst defaultOptions = {\n    mode: VALIDATION_MODE.onSubmit,\n    reValidateMode: VALIDATION_MODE.onChange,\n    shouldFocusError: true,\n};\nfunction createFormControl(props = {}, flushRootRender) {\n    let _options = {\n        ...defaultOptions,\n        ...props,\n    };\n    let _formState = {\n        submitCount: 0,\n        isDirty: false,\n        isLoading: isFunction(_options.defaultValues),\n        isValidating: false,\n        isSubmitted: false,\n        isSubmitting: false,\n        isSubmitSuccessful: false,\n        isValid: false,\n        touchedFields: {},\n        dirtyFields: {},\n        errors: {},\n        disabled: false,\n    };\n    let _fields = {};\n    let _defaultValues = isObject(_options.defaultValues) || isObject(_options.values)\n        ? cloneObject(_options.defaultValues || _options.values) || {}\n        : {};\n    let _formValues = _options.shouldUnregister\n        ? {}\n        : cloneObject(_defaultValues);\n    let _state = {\n        action: false,\n        mount: false,\n        watch: false,\n    };\n    let _names = {\n        mount: new Set(),\n        unMount: new Set(),\n        array: new Set(),\n        watch: new Set(),\n    };\n    let delayErrorCallback;\n    let timer = 0;\n    const _proxyFormState = {\n        isDirty: false,\n        dirtyFields: false,\n        touchedFields: false,\n        isValidating: false,\n        isValid: false,\n        errors: false,\n    };\n    const _subjects = {\n        values: createSubject(),\n        array: createSubject(),\n        state: createSubject(),\n    };\n    const shouldCaptureDirtyFields = props.resetOptions && props.resetOptions.keepDirtyValues;\n    const validationModeBeforeSubmit = getValidationModes(_options.mode);\n    const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\n    const shouldDisplayAllAssociatedErrors = _options.criteriaMode === VALIDATION_MODE.all;\n    const debounce = (callback) => (wait) => {\n        clearTimeout(timer);\n        timer = setTimeout(callback, wait);\n    };\n    const _updateValid = async (shouldUpdateValid) => {\n        if (_proxyFormState.isValid || shouldUpdateValid) {\n            const isValid = _options.resolver\n                ? isEmptyObject((await _executeSchema()).errors)\n                : await executeBuiltInValidation(_fields, true);\n            if (isValid !== _formState.isValid) {\n                _subjects.state.next({\n                    isValid,\n                });\n            }\n        }\n    };\n    const _updateIsValidating = (value) => _proxyFormState.isValidating &&\n        _subjects.state.next({\n            isValidating: value,\n        });\n    const _updateFieldArray = (name, values = [], method, args, shouldSetValues = true, shouldUpdateFieldsAndState = true) => {\n        if (args && method) {\n            _state.action = true;\n            if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\n                const fieldValues = method(get(_fields, name), args.argA, args.argB);\n                shouldSetValues && set(_fields, name, fieldValues);\n            }\n            if (shouldUpdateFieldsAndState &&\n                Array.isArray(get(_formState.errors, name))) {\n                const errors = method(get(_formState.errors, name), args.argA, args.argB);\n                shouldSetValues && set(_formState.errors, name, errors);\n                unsetEmptyArray(_formState.errors, name);\n            }\n            if (_proxyFormState.touchedFields &&\n                shouldUpdateFieldsAndState &&\n                Array.isArray(get(_formState.touchedFields, name))) {\n                const touchedFields = method(get(_formState.touchedFields, name), args.argA, args.argB);\n                shouldSetValues && set(_formState.touchedFields, name, touchedFields);\n            }\n            if (_proxyFormState.dirtyFields) {\n                _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n            }\n            _subjects.state.next({\n                name,\n                isDirty: _getDirty(name, values),\n                dirtyFields: _formState.dirtyFields,\n                errors: _formState.errors,\n                isValid: _formState.isValid,\n            });\n        }\n        else {\n            set(_formValues, name, values);\n        }\n    };\n    const updateErrors = (name, error) => {\n        set(_formState.errors, name, error);\n        _subjects.state.next({\n            errors: _formState.errors,\n        });\n    };\n    const updateValidAndValue = (name, shouldSkipSetValueAs, value, ref) => {\n        const field = get(_fields, name);\n        if (field) {\n            const defaultValue = get(_formValues, name, isUndefined(value) ? get(_defaultValues, name) : value);\n            isUndefined(defaultValue) ||\n                (ref && ref.defaultChecked) ||\n                shouldSkipSetValueAs\n                ? set(_formValues, name, shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f))\n                : setFieldValue(name, defaultValue);\n            _state.mount && _updateValid();\n        }\n    };\n    const updateTouchAndDirty = (name, fieldValue, isBlurEvent, shouldDirty, shouldRender) => {\n        let shouldUpdateField = false;\n        let isPreviousDirty = false;\n        const output = {\n            name,\n        };\n        if (!isBlurEvent || shouldDirty) {\n            if (_proxyFormState.isDirty) {\n                isPreviousDirty = _formState.isDirty;\n                _formState.isDirty = output.isDirty = _getDirty();\n                shouldUpdateField = isPreviousDirty !== output.isDirty;\n            }\n            const isCurrentFieldPristine = deepEqual(get(_defaultValues, name), fieldValue);\n            isPreviousDirty = get(_formState.dirtyFields, name);\n            isCurrentFieldPristine\n                ? unset(_formState.dirtyFields, name)\n                : set(_formState.dirtyFields, name, true);\n            output.dirtyFields = _formState.dirtyFields;\n            shouldUpdateField =\n                shouldUpdateField ||\n                    (_proxyFormState.dirtyFields &&\n                        isPreviousDirty !== !isCurrentFieldPristine);\n        }\n        if (isBlurEvent) {\n            const isPreviousFieldTouched = get(_formState.touchedFields, name);\n            if (!isPreviousFieldTouched) {\n                set(_formState.touchedFields, name, isBlurEvent);\n                output.touchedFields = _formState.touchedFields;\n                shouldUpdateField =\n                    shouldUpdateField ||\n                        (_proxyFormState.touchedFields &&\n                            isPreviousFieldTouched !== isBlurEvent);\n            }\n        }\n        shouldUpdateField && shouldRender && _subjects.state.next(output);\n        return shouldUpdateField ? output : {};\n    };\n    const shouldRenderByError = (name, isValid, error, fieldState) => {\n        const previousFieldError = get(_formState.errors, name);\n        const shouldUpdateValid = _proxyFormState.isValid &&\n            isBoolean(isValid) &&\n            _formState.isValid !== isValid;\n        if (props.delayError && error) {\n            delayErrorCallback = debounce(() => updateErrors(name, error));\n            delayErrorCallback(props.delayError);\n        }\n        else {\n            clearTimeout(timer);\n            delayErrorCallback = null;\n            error\n                ? set(_formState.errors, name, error)\n                : unset(_formState.errors, name);\n        }\n        if ((error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\n            !isEmptyObject(fieldState) ||\n            shouldUpdateValid) {\n            const updatedFormState = {\n                ...fieldState,\n                ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),\n                errors: _formState.errors,\n                name,\n            };\n            _formState = {\n                ..._formState,\n                ...updatedFormState,\n            };\n            _subjects.state.next(updatedFormState);\n        }\n        _updateIsValidating(false);\n    };\n    const _executeSchema = async (name) => _options.resolver(_formValues, _options.context, getResolverOptions(name || _names.mount, _fields, _options.criteriaMode, _options.shouldUseNativeValidation));\n    const executeSchemaAndUpdateState = async (names) => {\n        const { errors } = await _executeSchema(names);\n        if (names) {\n            for (const name of names) {\n                const error = get(errors, name);\n                error\n                    ? set(_formState.errors, name, error)\n                    : unset(_formState.errors, name);\n            }\n        }\n        else {\n            _formState.errors = errors;\n        }\n        return errors;\n    };\n    const executeBuiltInValidation = async (fields, shouldOnlyCheckValid, context = {\n        valid: true,\n    }) => {\n        for (const name in fields) {\n            const field = fields[name];\n            if (field) {\n                const { _f, ...fieldValue } = field;\n                if (_f) {\n                    const isFieldArrayRoot = _names.array.has(_f.name);\n                    const fieldError = await validateField(field, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation && !shouldOnlyCheckValid, isFieldArrayRoot);\n                    if (fieldError[_f.name]) {\n                        context.valid = false;\n                        if (shouldOnlyCheckValid) {\n                            break;\n                        }\n                    }\n                    !shouldOnlyCheckValid &&\n                        (get(fieldError, _f.name)\n                            ? isFieldArrayRoot\n                                ? updateFieldArrayRootError(_formState.errors, fieldError, _f.name)\n                                : set(_formState.errors, _f.name, fieldError[_f.name])\n                            : unset(_formState.errors, _f.name));\n                }\n                fieldValue &&\n                    (await executeBuiltInValidation(fieldValue, shouldOnlyCheckValid, context));\n            }\n        }\n        return context.valid;\n    };\n    const _removeUnmounted = () => {\n        for (const name of _names.unMount) {\n            const field = get(_fields, name);\n            field &&\n                (field._f.refs\n                    ? field._f.refs.every((ref) => !live(ref))\n                    : !live(field._f.ref)) &&\n                unregister(name);\n        }\n        _names.unMount = new Set();\n    };\n    const _getDirty = (name, data) => (name && data && set(_formValues, name, data),\n        !deepEqual(getValues(), _defaultValues));\n    const _getWatch = (names, defaultValue, isGlobal) => generateWatchOutput(names, _names, {\n        ...(_state.mount\n            ? _formValues\n            : isUndefined(defaultValue)\n                ? _defaultValues\n                : isString(names)\n                    ? { [names]: defaultValue }\n                    : defaultValue),\n    }, isGlobal, defaultValue);\n    const _getFieldArray = (name) => compact(get(_state.mount ? _formValues : _defaultValues, name, props.shouldUnregister ? get(_defaultValues, name, []) : []));\n    const setFieldValue = (name, value, options = {}) => {\n        const field = get(_fields, name);\n        let fieldValue = value;\n        if (field) {\n            const fieldReference = field._f;\n            if (fieldReference) {\n                !fieldReference.disabled &&\n                    set(_formValues, name, getFieldValueAs(value, fieldReference));\n                fieldValue =\n                    isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\n                        ? ''\n                        : value;\n                if (isMultipleSelect(fieldReference.ref)) {\n                    [...fieldReference.ref.options].forEach((optionRef) => (optionRef.selected = fieldValue.includes(optionRef.value)));\n                }\n                else if (fieldReference.refs) {\n                    if (isCheckBoxInput(fieldReference.ref)) {\n                        fieldReference.refs.length > 1\n                            ? fieldReference.refs.forEach((checkboxRef) => (!checkboxRef.defaultChecked || !checkboxRef.disabled) &&\n                                (checkboxRef.checked = Array.isArray(fieldValue)\n                                    ? !!fieldValue.find((data) => data === checkboxRef.value)\n                                    : fieldValue === checkboxRef.value))\n                            : fieldReference.refs[0] &&\n                                (fieldReference.refs[0].checked = !!fieldValue);\n                    }\n                    else {\n                        fieldReference.refs.forEach((radioRef) => (radioRef.checked = radioRef.value === fieldValue));\n                    }\n                }\n                else if (isFileInput(fieldReference.ref)) {\n                    fieldReference.ref.value = '';\n                }\n                else {\n                    fieldReference.ref.value = fieldValue;\n                    if (!fieldReference.ref.type) {\n                        _subjects.values.next({\n                            name,\n                            values: { ..._formValues },\n                        });\n                    }\n                }\n            }\n        }\n        (options.shouldDirty || options.shouldTouch) &&\n            updateTouchAndDirty(name, fieldValue, options.shouldTouch, options.shouldDirty, true);\n        options.shouldValidate && trigger(name);\n    };\n    const setValues = (name, value, options) => {\n        for (const fieldKey in value) {\n            const fieldValue = value[fieldKey];\n            const fieldName = `${name}.${fieldKey}`;\n            const field = get(_fields, fieldName);\n            (_names.array.has(name) ||\n                !isPrimitive(fieldValue) ||\n                (field && !field._f)) &&\n                !isDateObject(fieldValue)\n                ? setValues(fieldName, fieldValue, options)\n                : setFieldValue(fieldName, fieldValue, options);\n        }\n    };\n    const setValue = (name, value, options = {}) => {\n        const field = get(_fields, name);\n        const isFieldArray = _names.array.has(name);\n        const cloneValue = cloneObject(value);\n        set(_formValues, name, cloneValue);\n        if (isFieldArray) {\n            _subjects.array.next({\n                name,\n                values: { ..._formValues },\n            });\n            if ((_proxyFormState.isDirty || _proxyFormState.dirtyFields) &&\n                options.shouldDirty) {\n                _subjects.state.next({\n                    name,\n                    dirtyFields: getDirtyFields(_defaultValues, _formValues),\n                    isDirty: _getDirty(name, cloneValue),\n                });\n            }\n        }\n        else {\n            field && !field._f && !isNullOrUndefined(cloneValue)\n                ? setValues(name, cloneValue, options)\n                : setFieldValue(name, cloneValue, options);\n        }\n        isWatched(name, _names) && _subjects.state.next({ ..._formState });\n        _subjects.values.next({\n            name,\n            values: { ..._formValues },\n        });\n        !_state.mount && flushRootRender();\n    };\n    const onChange = async (event) => {\n        const target = event.target;\n        let name = target.name;\n        let isFieldValueUpdated = true;\n        const field = get(_fields, name);\n        const getCurrentFieldValue = () => target.type ? getFieldValue(field._f) : getEventValue(event);\n        const _updateIsFieldValueUpdated = (fieldValue) => {\n            isFieldValueUpdated =\n                Number.isNaN(fieldValue) ||\n                    fieldValue === get(_formValues, name, fieldValue);\n        };\n        if (field) {\n            let error;\n            let isValid;\n            const fieldValue = getCurrentFieldValue();\n            const isBlurEvent = event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n            const shouldSkipValidation = (!hasValidation(field._f) &&\n                !_options.resolver &&\n                !get(_formState.errors, name) &&\n                !field._f.deps) ||\n                skipValidation(isBlurEvent, get(_formState.touchedFields, name), _formState.isSubmitted, validationModeAfterSubmit, validationModeBeforeSubmit);\n            const watched = isWatched(name, _names, isBlurEvent);\n            set(_formValues, name, fieldValue);\n            if (isBlurEvent) {\n                field._f.onBlur && field._f.onBlur(event);\n                delayErrorCallback && delayErrorCallback(0);\n            }\n            else if (field._f.onChange) {\n                field._f.onChange(event);\n            }\n            const fieldState = updateTouchAndDirty(name, fieldValue, isBlurEvent, false);\n            const shouldRender = !isEmptyObject(fieldState) || watched;\n            !isBlurEvent &&\n                _subjects.values.next({\n                    name,\n                    type: event.type,\n                    values: { ..._formValues },\n                });\n            if (shouldSkipValidation) {\n                _proxyFormState.isValid && _updateValid();\n                return (shouldRender &&\n                    _subjects.state.next({ name, ...(watched ? {} : fieldState) }));\n            }\n            !isBlurEvent && watched && _subjects.state.next({ ..._formState });\n            _updateIsValidating(true);\n            if (_options.resolver) {\n                const { errors } = await _executeSchema([name]);\n                _updateIsFieldValueUpdated(fieldValue);\n                if (isFieldValueUpdated) {\n                    const previousErrorLookupResult = schemaErrorLookup(_formState.errors, _fields, name);\n                    const errorLookupResult = schemaErrorLookup(errors, _fields, previousErrorLookupResult.name || name);\n                    error = errorLookupResult.error;\n                    name = errorLookupResult.name;\n                    isValid = isEmptyObject(errors);\n                }\n            }\n            else {\n                error = (await validateField(field, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation))[name];\n                _updateIsFieldValueUpdated(fieldValue);\n                if (isFieldValueUpdated) {\n                    if (error) {\n                        isValid = false;\n                    }\n                    else if (_proxyFormState.isValid) {\n                        isValid = await executeBuiltInValidation(_fields, true);\n                    }\n                }\n            }\n            if (isFieldValueUpdated) {\n                field._f.deps &&\n                    trigger(field._f.deps);\n                shouldRenderByError(name, isValid, error, fieldState);\n            }\n        }\n    };\n    const _focusInput = (ref, key) => {\n        if (get(_formState.errors, key) && ref.focus) {\n            ref.focus();\n            return 1;\n        }\n        return;\n    };\n    const trigger = async (name, options = {}) => {\n        let isValid;\n        let validationResult;\n        const fieldNames = convertToArrayPayload(name);\n        _updateIsValidating(true);\n        if (_options.resolver) {\n            const errors = await executeSchemaAndUpdateState(isUndefined(name) ? name : fieldNames);\n            isValid = isEmptyObject(errors);\n            validationResult = name\n                ? !fieldNames.some((name) => get(errors, name))\n                : isValid;\n        }\n        else if (name) {\n            validationResult = (await Promise.all(fieldNames.map(async (fieldName) => {\n                const field = get(_fields, fieldName);\n                return await executeBuiltInValidation(field && field._f ? { [fieldName]: field } : field);\n            }))).every(Boolean);\n            !(!validationResult && !_formState.isValid) && _updateValid();\n        }\n        else {\n            validationResult = isValid = await executeBuiltInValidation(_fields);\n        }\n        _subjects.state.next({\n            ...(!isString(name) ||\n                (_proxyFormState.isValid && isValid !== _formState.isValid)\n                ? {}\n                : { name }),\n            ...(_options.resolver || !name ? { isValid } : {}),\n            errors: _formState.errors,\n            isValidating: false,\n        });\n        options.shouldFocus &&\n            !validationResult &&\n            iterateFieldsByAction(_fields, _focusInput, name ? fieldNames : _names.mount);\n        return validationResult;\n    };\n    const getValues = (fieldNames) => {\n        const values = {\n            ..._defaultValues,\n            ...(_state.mount ? _formValues : {}),\n        };\n        return isUndefined(fieldNames)\n            ? values\n            : isString(fieldNames)\n                ? get(values, fieldNames)\n                : fieldNames.map((name) => get(values, name));\n    };\n    const getFieldState = (name, formState) => ({\n        invalid: !!get((formState || _formState).errors, name),\n        isDirty: !!get((formState || _formState).dirtyFields, name),\n        isTouched: !!get((formState || _formState).touchedFields, name),\n        error: get((formState || _formState).errors, name),\n    });\n    const clearErrors = (name) => {\n        name &&\n            convertToArrayPayload(name).forEach((inputName) => unset(_formState.errors, inputName));\n        _subjects.state.next({\n            errors: name ? _formState.errors : {},\n        });\n    };\n    const setError = (name, error, options) => {\n        const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\n        set(_formState.errors, name, {\n            ...error,\n            ref,\n        });\n        _subjects.state.next({\n            name,\n            errors: _formState.errors,\n            isValid: false,\n        });\n        options && options.shouldFocus && ref && ref.focus && ref.focus();\n    };\n    const watch = (name, defaultValue) => isFunction(name)\n        ? _subjects.values.subscribe({\n            next: (payload) => name(_getWatch(undefined, defaultValue), payload),\n        })\n        : _getWatch(name, defaultValue, true);\n    const unregister = (name, options = {}) => {\n        for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\n            _names.mount.delete(fieldName);\n            _names.array.delete(fieldName);\n            if (!options.keepValue) {\n                unset(_fields, fieldName);\n                unset(_formValues, fieldName);\n            }\n            !options.keepError && unset(_formState.errors, fieldName);\n            !options.keepDirty && unset(_formState.dirtyFields, fieldName);\n            !options.keepTouched && unset(_formState.touchedFields, fieldName);\n            !_options.shouldUnregister &&\n                !options.keepDefaultValue &&\n                unset(_defaultValues, fieldName);\n        }\n        _subjects.values.next({\n            values: { ..._formValues },\n        });\n        _subjects.state.next({\n            ..._formState,\n            ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\n        });\n        !options.keepIsValid && _updateValid();\n    };\n    const _updateDisabledField = ({ disabled, name, field, fields, value, }) => {\n        if (isBoolean(disabled)) {\n            const inputValue = disabled\n                ? undefined\n                : isUndefined(value)\n                    ? getFieldValue(field ? field._f : get(fields, name)._f)\n                    : value;\n            set(_formValues, name, inputValue);\n            updateTouchAndDirty(name, inputValue, false, false, true);\n        }\n    };\n    const register = (name, options = {}) => {\n        let field = get(_fields, name);\n        const disabledIsDefined = isBoolean(options.disabled);\n        set(_fields, name, {\n            ...(field || {}),\n            _f: {\n                ...(field && field._f ? field._f : { ref: { name } }),\n                name,\n                mount: true,\n                ...options,\n            },\n        });\n        _names.mount.add(name);\n        if (field) {\n            _updateDisabledField({\n                field,\n                disabled: options.disabled,\n                name,\n            });\n        }\n        else {\n            updateValidAndValue(name, true, options.value);\n        }\n        return {\n            ...(disabledIsDefined ? { disabled: options.disabled } : {}),\n            ...(_options.progressive\n                ? {\n                    required: !!options.required,\n                    min: getRuleValue(options.min),\n                    max: getRuleValue(options.max),\n                    minLength: getRuleValue(options.minLength),\n                    maxLength: getRuleValue(options.maxLength),\n                    pattern: getRuleValue(options.pattern),\n                }\n                : {}),\n            name,\n            onChange,\n            onBlur: onChange,\n            ref: (ref) => {\n                if (ref) {\n                    register(name, options);\n                    field = get(_fields, name);\n                    const fieldRef = isUndefined(ref.value)\n                        ? ref.querySelectorAll\n                            ? ref.querySelectorAll('input,select,textarea')[0] || ref\n                            : ref\n                        : ref;\n                    const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n                    const refs = field._f.refs || [];\n                    if (radioOrCheckbox\n                        ? refs.find((option) => option === fieldRef)\n                        : fieldRef === field._f.ref) {\n                        return;\n                    }\n                    set(_fields, name, {\n                        _f: {\n                            ...field._f,\n                            ...(radioOrCheckbox\n                                ? {\n                                    refs: [\n                                        ...refs.filter(live),\n                                        fieldRef,\n                                        ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),\n                                    ],\n                                    ref: { type: fieldRef.type, name },\n                                }\n                                : { ref: fieldRef }),\n                        },\n                    });\n                    updateValidAndValue(name, false, undefined, fieldRef);\n                }\n                else {\n                    field = get(_fields, name, {});\n                    if (field._f) {\n                        field._f.mount = false;\n                    }\n                    (_options.shouldUnregister || options.shouldUnregister) &&\n                        !(isNameInFieldArray(_names.array, name) && _state.action) &&\n                        _names.unMount.add(name);\n                }\n            },\n        };\n    };\n    const _focusError = () => _options.shouldFocusError &&\n        iterateFieldsByAction(_fields, _focusInput, _names.mount);\n    const _disableForm = (disabled) => {\n        if (isBoolean(disabled)) {\n            _subjects.state.next({ disabled });\n            iterateFieldsByAction(_fields, (ref) => {\n                ref.disabled = disabled;\n            }, 0, false);\n        }\n    };\n    const handleSubmit = (onValid, onInvalid) => async (e) => {\n        if (e) {\n            e.preventDefault && e.preventDefault();\n            e.persist && e.persist();\n        }\n        let fieldValues = cloneObject(_formValues);\n        _subjects.state.next({\n            isSubmitting: true,\n        });\n        if (_options.resolver) {\n            const { errors, values } = await _executeSchema();\n            _formState.errors = errors;\n            fieldValues = values;\n        }\n        else {\n            await executeBuiltInValidation(_fields);\n        }\n        unset(_formState.errors, 'root');\n        if (isEmptyObject(_formState.errors)) {\n            _subjects.state.next({\n                errors: {},\n            });\n            await onValid(fieldValues, e);\n        }\n        else {\n            if (onInvalid) {\n                await onInvalid({ ..._formState.errors }, e);\n            }\n            _focusError();\n            setTimeout(_focusError);\n        }\n        _subjects.state.next({\n            isSubmitted: true,\n            isSubmitting: false,\n            isSubmitSuccessful: isEmptyObject(_formState.errors),\n            submitCount: _formState.submitCount + 1,\n            errors: _formState.errors,\n        });\n    };\n    const resetField = (name, options = {}) => {\n        if (get(_fields, name)) {\n            if (isUndefined(options.defaultValue)) {\n                setValue(name, get(_defaultValues, name));\n            }\n            else {\n                setValue(name, options.defaultValue);\n                set(_defaultValues, name, options.defaultValue);\n            }\n            if (!options.keepTouched) {\n                unset(_formState.touchedFields, name);\n            }\n            if (!options.keepDirty) {\n                unset(_formState.dirtyFields, name);\n                _formState.isDirty = options.defaultValue\n                    ? _getDirty(name, get(_defaultValues, name))\n                    : _getDirty();\n            }\n            if (!options.keepError) {\n                unset(_formState.errors, name);\n                _proxyFormState.isValid && _updateValid();\n            }\n            _subjects.state.next({ ..._formState });\n        }\n    };\n    const _reset = (formValues, keepStateOptions = {}) => {\n        const updatedValues = formValues ? cloneObject(formValues) : _defaultValues;\n        const cloneUpdatedValues = cloneObject(updatedValues);\n        const values = formValues && !isEmptyObject(formValues)\n            ? cloneUpdatedValues\n            : _defaultValues;\n        if (!keepStateOptions.keepDefaultValues) {\n            _defaultValues = updatedValues;\n        }\n        if (!keepStateOptions.keepValues) {\n            if (keepStateOptions.keepDirtyValues || shouldCaptureDirtyFields) {\n                for (const fieldName of _names.mount) {\n                    get(_formState.dirtyFields, fieldName)\n                        ? set(values, fieldName, get(_formValues, fieldName))\n                        : setValue(fieldName, get(values, fieldName));\n                }\n            }\n            else {\n                if (isWeb && isUndefined(formValues)) {\n                    for (const name of _names.mount) {\n                        const field = get(_fields, name);\n                        if (field && field._f) {\n                            const fieldReference = Array.isArray(field._f.refs)\n                                ? field._f.refs[0]\n                                : field._f.ref;\n                            if (isHTMLElement(fieldReference)) {\n                                const form = fieldReference.closest('form');\n                                if (form) {\n                                    form.reset();\n                                    break;\n                                }\n                            }\n                        }\n                    }\n                }\n                _fields = {};\n            }\n            _formValues = props.shouldUnregister\n                ? keepStateOptions.keepDefaultValues\n                    ? cloneObject(_defaultValues)\n                    : {}\n                : cloneObject(values);\n            _subjects.array.next({\n                values: { ...values },\n            });\n            _subjects.values.next({\n                values: { ...values },\n            });\n        }\n        _names = {\n            mount: new Set(),\n            unMount: new Set(),\n            array: new Set(),\n            watch: new Set(),\n            watchAll: false,\n            focus: '',\n        };\n        !_state.mount && flushRootRender();\n        _state.mount = !_proxyFormState.isValid || !!keepStateOptions.keepIsValid;\n        _state.watch = !!props.shouldUnregister;\n        _subjects.state.next({\n            submitCount: keepStateOptions.keepSubmitCount\n                ? _formState.submitCount\n                : 0,\n            isDirty: keepStateOptions.keepDirty\n                ? _formState.isDirty\n                : !!(keepStateOptions.keepDefaultValues &&\n                    !deepEqual(formValues, _defaultValues)),\n            isSubmitted: keepStateOptions.keepIsSubmitted\n                ? _formState.isSubmitted\n                : false,\n            dirtyFields: keepStateOptions.keepDirtyValues\n                ? _formState.dirtyFields\n                : keepStateOptions.keepDefaultValues && formValues\n                    ? getDirtyFields(_defaultValues, formValues)\n                    : {},\n            touchedFields: keepStateOptions.keepTouched\n                ? _formState.touchedFields\n                : {},\n            errors: keepStateOptions.keepErrors ? _formState.errors : {},\n            isSubmitSuccessful: keepStateOptions.keepIsSubmitSuccessful\n                ? _formState.isSubmitSuccessful\n                : false,\n            isSubmitting: false,\n        });\n    };\n    const reset = (formValues, keepStateOptions) => _reset(isFunction(formValues)\n        ? formValues(_formValues)\n        : formValues, keepStateOptions);\n    const setFocus = (name, options = {}) => {\n        const field = get(_fields, name);\n        const fieldReference = field && field._f;\n        if (fieldReference) {\n            const fieldRef = fieldReference.refs\n                ? fieldReference.refs[0]\n                : fieldReference.ref;\n            if (fieldRef.focus) {\n                fieldRef.focus();\n                options.shouldSelect && fieldRef.select();\n            }\n        }\n    };\n    const _updateFormState = (updatedFormState) => {\n        _formState = {\n            ..._formState,\n            ...updatedFormState,\n        };\n    };\n    const _resetDefaultValues = () => isFunction(_options.defaultValues) &&\n        _options.defaultValues().then((values) => {\n            reset(values, _options.resetOptions);\n            _subjects.state.next({\n                isLoading: false,\n            });\n        });\n    return {\n        control: {\n            register,\n            unregister,\n            getFieldState,\n            handleSubmit,\n            setError,\n            _executeSchema,\n            _getWatch,\n            _getDirty,\n            _updateValid,\n            _removeUnmounted,\n            _updateFieldArray,\n            _updateDisabledField,\n            _getFieldArray,\n            _reset,\n            _resetDefaultValues,\n            _updateFormState,\n            _disableForm,\n            _subjects,\n            _proxyFormState,\n            get _fields() {\n                return _fields;\n            },\n            get _formValues() {\n                return _formValues;\n            },\n            get _state() {\n                return _state;\n            },\n            set _state(value) {\n                _state = value;\n            },\n            get _defaultValues() {\n                return _defaultValues;\n            },\n            get _names() {\n                return _names;\n            },\n            set _names(value) {\n                _names = value;\n            },\n            get _formState() {\n                return _formState;\n            },\n            set _formState(value) {\n                _formState = value;\n            },\n            get _options() {\n                return _options;\n            },\n            set _options(value) {\n                _options = {\n                    ..._options,\n                    ...value,\n                };\n            },\n        },\n        trigger,\n        register,\n        handleSubmit,\n        watch,\n        setValue,\n        getValues,\n        reset,\n        resetField,\n        clearErrors,\n        unregister,\n        setError,\n        setFocus,\n        getFieldState,\n    };\n}\n\n/**\n * Custom hook to manage the entire form.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useform) \u2022 [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) \u2022 [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\n *\n * @param props - form configuration and validation parameters.\n *\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\n *\n * @example\n * ```tsx\n * function App() {\n *   const { register, handleSubmit, watch, formState: { errors } } = useForm();\n *   const onSubmit = data => console.log(data);\n *\n *   console.log(watch(\"example\"));\n *\n *   return (\n *     <form onSubmit={handleSubmit(onSubmit)}>\n *       <input defaultValue=\"test\" {...register(\"example\")} />\n *       <input {...register(\"exampleRequired\", { required: true })} />\n *       {errors.exampleRequired && <span>This field is required</span>}\n *       <button>Submit</button>\n *     </form>\n *   );\n * }\n * ```\n */\nfunction useForm(props = {}) {\n    const _formControl = React.useRef();\n    const _values = React.useRef();\n    const [formState, updateFormState] = React.useState({\n        isDirty: false,\n        isValidating: false,\n        isLoading: isFunction(props.defaultValues),\n        isSubmitted: false,\n        isSubmitting: false,\n        isSubmitSuccessful: false,\n        isValid: false,\n        submitCount: 0,\n        dirtyFields: {},\n        touchedFields: {},\n        errors: {},\n        disabled: false,\n        defaultValues: isFunction(props.defaultValues)\n            ? undefined\n            : props.defaultValues,\n    });\n    if (!_formControl.current) {\n        _formControl.current = {\n            ...createFormControl(props, () => updateFormState((formState) => ({ ...formState }))),\n            formState,\n        };\n    }\n    const control = _formControl.current.control;\n    control._options = props;\n    useSubscribe({\n        subject: control._subjects.state,\n        next: (value) => {\n            if (shouldRenderFormState(value, control._proxyFormState, control._updateFormState, true)) {\n                updateFormState({ ...control._formState });\n            }\n        },\n    });\n    React.useEffect(() => control._disableForm(props.disabled), [control, props.disabled]);\n    React.useEffect(() => {\n        if (control._proxyFormState.isDirty) {\n            const isDirty = control._getDirty();\n            if (isDirty !== formState.isDirty) {\n                control._subjects.state.next({\n                    isDirty,\n                });\n            }\n        }\n    }, [control, formState.isDirty]);\n    React.useEffect(() => {\n        if (props.values && !deepEqual(props.values, _values.current)) {\n            control._reset(props.values, control._options.resetOptions);\n            _values.current = props.values;\n        }\n        else {\n            control._resetDefaultValues();\n        }\n    }, [props.values, control]);\n    React.useEffect(() => {\n        if (!control._state.mount) {\n            control._updateValid();\n            control._state.mount = true;\n        }\n        if (control._state.watch) {\n            control._state.watch = false;\n            control._subjects.state.next({ ...control._formState });\n        }\n        control._removeUnmounted();\n    });\n    _formControl.current.formState = getProxyFormState(formState, control);\n    return _formControl.current;\n}\n\nexport { Controller, Form, FormProvider, appendErrors, get, set, useController, useFieldArray, useForm, useFormContext, useFormState, useWatch };\n//# sourceMappingURL=index.esm.mjs.map\n", "import{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[];export const css=[\".framer-yKCQj .framer-styles-preset-4wxbki:not(.rich-text-wrapper), .framer-yKCQj .framer-styles-preset-4wxbki.rich-text-wrapper a { --framer-link-current-text-decoration: underline; --framer-link-hover-text-decoration: none; --framer-link-text-color: var(--token-35bc8e00-be1f-407d-bf35-077c29f2e3f1, #646464); --framer-link-text-decoration: underline; }\"];export const className=\"framer-yKCQj\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],
  "mappings": "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",
  "names": ["init_ssg_sandbox_shims", "fontStore", "fonts", "css", "className", "init_ssg_sandbox_shims", "fontStore", "fonts", "css", "className", "init_ssg_sandbox_shims", "fontStore", "fonts", "css", "className", "init_ssg_sandbox_shims", "fontStore", "fonts", "css", "className", "init_ssg_sandbox_shims", "fontStore", "fonts", "css", "className", "init_ssg_sandbox_shims", "init_ssg_sandbox_shims", "createStore", "state1", "dataStore", "Data", "setDataStore", "newState", "storeState", "storeSetters", "setStoreState", "setter", "useStore", "state", "setState", "ye", "ue", "useObserveData", "i", "createStore", "withPopupCenter", "t", "r", "n", "p", "withVariant", "s", "o", "a", "withSetSuccess", "e", "ye", "ue", "wZFOzXRbo_exports", "__export", "__FramerMetadata__", "wZFOzXRbo_default", "init_ssg_sandbox_shims", "init_ssg_sandbox_shims", "init_ssg_sandbox_shims", "isCheckBoxInput", "element", "isDateObject", "value", "isNullOrUndefined", "isObjectType", "isObject", "getEventValue", "event", "getNodeParentName", "name", "isNameInFieldArray", "names", "isPlainObject", "tempObject", "prototypeCopy", "isWeb", "cloneObject", "data", "copy", "isArray", "key", "compact", "isUndefined", "val", "get", "obj", "path", "defaultValue", "result", "isBoolean", "EVENTS", "VALIDATION_MODE", "INPUT_VALIDATION_RULES", "HookFormContext", "e", "getProxyFormState", "formState", "control", "localProxyFormState", "isRoot", "result", "key", "_key", "VALIDATION_MODE", "isEmptyObject", "value", "isObject", "shouldRenderFormState", "formStateData", "_proxyFormState", "updateFormState", "name", "convertToArrayPayload", "useSubscribe", "props", "_props", "e", "subscription", "isString", "value", "generateWatchOutput", "names", "_names", "formValues", "isGlobal", "defaultValue", "get", "fieldName", "isKey", "value", "stringToPath", "input", "compact", "set", "object", "path", "index", "tempPath", "length", "lastIndex", "key", "newValue", "objValue", "isObject", "appendErrors", "name", "validateAllFieldCriteria", "errors", "type", "message", "getValidationModes", "mode", "VALIDATION_MODE", "isWatched", "name", "_names", "isBlurEvent", "watchName", "iterateFieldsByAction", "fields", "action", "fieldsNames", "abortEarly", "key", "field", "get", "_f", "currentField", "isObject", "updateFieldArrayRootError", "errors", "error", "fieldArrayErrors", "compact", "set", "isFileInput", "element", "isFunction", "value", "isHTMLElement", "isWeb", "owner", "isMessage", "isString", "isRadioInput", "isRegex", "defaultResult", "validResult", "getCheckboxValue", "options", "values", "option", "isUndefined", "defaultReturn", "getRadioValue", "previous", "getValidateError", "result", "ref", "type", "isBoolean", "getValueAndMessage", "validationData", "validateField", "formValues", "validateAllFieldCriteria", "shouldUseNativeValidation", "isFieldArray", "refs", "required", "maxLength", "minLength", "min", "max", "pattern", "validate", "valueAsNumber", "mount", "disabled", "inputValue", "inputRef", "setCustomValidity", "message", "isRadio", "isCheckBox", "isCheckBoxInput", "isRadioOrCheckbox", "isEmpty", "appendErrorsCurry", "appendErrors", "getMinMaxMessage", "exceedMax", "maxLengthMessage", "minLengthMessage", "maxType", "INPUT_VALIDATION_RULES", "minType", "isNullOrUndefined", "exceedMin", "maxOutput", "minOutput", "valueNumber", "valueDate", "convertTimeToDate", "time", "isTime", "isWeek", "maxLengthOutput", "minLengthOutput", "patternValue", "validateError", "validationResult", "isEmptyObject", "baseGet", "object", "updatePath", "length", "index", "isUndefined", "isEmptyArray", "obj", "key", "unset", "path", "paths", "isKey", "stringToPath", "childObject", "isObject", "isEmptyObject", "createSubject", "_observers", "value", "observer", "isPrimitive", "isNullOrUndefined", "isObjectType", "deepEqual", "object1", "object2", "isDateObject", "keys1", "keys2", "key", "val1", "val2", "isObject", "isMultipleSelect", "element", "isRadioOrCheckbox", "ref", "isRadioInput", "isCheckBoxInput", "live", "isHTMLElement", "objectHasFunction", "data", "isFunction", "markFieldsDirty", "fields", "isParentNodeArray", "getDirtyFieldsFromDefaultValues", "formValues", "dirtyFieldsFromValues", "isUndefined", "getDirtyFields", "defaultValues", "getFieldValueAs", "valueAsNumber", "valueAsDate", "setValueAs", "isString", "getFieldValue", "_f", "isFileInput", "getRadioValue", "getCheckboxValue", "getResolverOptions", "fieldsNames", "_fields", "criteriaMode", "shouldUseNativeValidation", "name", "field", "get", "set", "getRuleValue", "rule", "isRegex", "hasValidation", "options", "schemaErrorLookup", "errors", "error", "isKey", "names", "fieldName", "foundError", "skipValidation", "isBlurEvent", "isTouched", "isSubmitted", "reValidateMode", "mode", "unsetEmptyArray", "compact", "unset", "defaultOptions", "VALIDATION_MODE", "createFormControl", "props", "flushRootRender", "_options", "_formState", "_defaultValues", "cloneObject", "_formValues", "_state", "_names", "delayErrorCallback", "timer", "_proxyFormState", "_subjects", "shouldCaptureDirtyFields", "validationModeBeforeSubmit", "getValidationModes", "validationModeAfterSubmit", "shouldDisplayAllAssociatedErrors", "debounce", "callback", "wait", "_updateValid", "shouldUpdateValid", "isValid", "isEmptyObject", "_executeSchema", "executeBuiltInValidation", "_updateIsValidating", "_updateFieldArray", "values", "method", "args", "shouldSetValues", "shouldUpdateFieldsAndState", "fieldValues", "touchedFields", "_getDirty", "updateErrors", "updateValidAndValue", "shouldSkipSetValueAs", "defaultValue", "setFieldValue", "updateTouchAndDirty", "fieldValue", "shouldDirty", "shouldRender", "shouldUpdateField", "isPreviousDirty", "output", "isCurrentFieldPristine", "isPreviousFieldTouched", "shouldRenderByError", "fieldState", "previousFieldError", "isBoolean", "updatedFormState", "executeSchemaAndUpdateState", "shouldOnlyCheckValid", "context", "isFieldArrayRoot", "fieldError", "validateField", "updateFieldArrayRootError", "_removeUnmounted", "unregister", "getValues", "_getWatch", "isGlobal", "generateWatchOutput", "_getFieldArray", "fieldReference", "optionRef", "checkboxRef", "radioRef", "trigger", "setValues", "fieldKey", "setValue", "isFieldArray", "cloneValue", "isWatched", "onChange", "event", "target", "isFieldValueUpdated", "getCurrentFieldValue", "getEventValue", "_updateIsFieldValueUpdated", "EVENTS", "shouldSkipValidation", "watched", "previousErrorLookupResult", "errorLookupResult", "_focusInput", "validationResult", "fieldNames", "convertToArrayPayload", "iterateFieldsByAction", "getFieldState", "formState", "clearErrors", "inputName", "setError", "watch", "payload", "_updateDisabledField", "disabled", "inputValue", "register", "disabledIsDefined", "fieldRef", "radioOrCheckbox", "refs", "option", "isNameInFieldArray", "_focusError", "_disableForm", "handleSubmit", "onValid", "onInvalid", "e", "resetField", "_reset", "keepStateOptions", "updatedValues", "cloneUpdatedValues", "isWeb", "form", "reset", "useForm", "_formControl", "_values", "updateFormState", "control", "useSubscribe", "shouldRenderFormState", "isDirty", "getProxyFormState", "css", "FormCustom", "props", "register", "handleSubmit", "errors", "useForm", "status", "setStatus", "e", "url", "fields", "setSuccess", "u", "p", "formData", "r", "err", "f", "name", "placeholder", "required", "type", "width", "basicProps", "className", "colWidth", "snakeName", "snakeCase", "values", "val", "fieldTypes", "addPropertyControls", "ControlType", "str", "init_ssg_sandbox_shims", "fontStore", "fonts", "css", "className", "FormCustomFonts", "getFonts", "FormCustom", "FormCustomWithSetSuccess", "withSetSuccess", "MotionDivWithPopupCenter", "withPopupCenter", "motion", "cycleOrder", "serializationHash", "variantClassNames", "addPropertyOverrides", "overrides", "variants", "nextOverrides", "variant", "transitions", "Transition", "value", "children", "config", "re", "MotionConfigContext", "transition", "contextValue", "se", "p", "humanReadableVariantMap", "getProps", "closePopup", "height", "id", "width", "props", "_humanReadableVariantMap_props_variant", "_ref", "createLayoutDependency", "Component", "Y", "ref", "activeLocale", "setLocale", "useLocaleInfo", "style", "className", "layoutId", "TuDuUFGJ4", "restProps", "baseVariant", "classNames", "gestureVariant", "setGestureState", "setVariant", "useVariantState", "layoutDependency", "activeVariantCallback", "delay", "useActiveVariantCallback", "onTap5t73ml", "args", "isOnCanvas", "useIsOnFramerCanvas", "initialVariant", "useConstant", "ref1", "pe", "isDisplayed", "isDisplayed1", "isDisplayed2", "defaultLayoutId", "ae", "sharedStyleClassNames", "LayoutGroup", "u", "cx", "RichText2", "x", "Link", "SVG", "css", "FramerwZFOzXRbo", "withCSS", "wZFOzXRbo_default", "addPropertyControls", "ControlType", "addFonts", "fonts", "__FramerMetadata__"]
}
