{"version":3,"file":"NotifyForm.IX_I9uEB.mjs","names":["useState","useRef","_Fragment"],"sources":["https:/framerusercontent.com/modules/sWBjRYHhiWHS35GZLyHn/V4RoYuFiKByohSbLodEA/NotifyForm.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useEffect,useRef,useState}from\"react\";import{createPortal}from\"react-dom\";// @ts-ignore Cross-file import: the Framer bundler resolves this, TS does not\nimport{ArrowGlyph,BRAND,DURATION,EASE,FIELD_CSS,HAIRLINE,INK,WHITE,useLeadCapture}from\"https://framerusercontent.com/modules/5mBPxJgaMDYEOueuR7mD/qcMWSMuhlOHnjaCFrdph/useLeadCapture.js\";/**\n * FRANKLIN — GET NOTIFIED\n *\n * One component for every \"Coming soon\" surface. It carries an `interestId`,\n * so a signup says which integration or feature it was for — that identifier\n * is the reason this exists at all. Without it the site collects anonymous\n * email addresses and learns nothing about what to build next.\n *\n * On an integration card this REPLACES the CMS card description rather than\n * sitting under it. A coming-soon card has one thing to say, and the form's\n * own Description says it. Two descriptions competing in 260px is what the\n * swap exists to avoid.\n *\n * Two modes, one form underneath:\n *\n *  - Inline   The field row sits in the layout. Preferred everywhere it fits.\n *  - Dialog   A trigger opens a centred panel holding the same row. Only for\n *             places too narrow or too dense for a field row.\n *\n * THE FIELD ROW NEVER WRAPS. Input and button are one horizontal flex row with\n * an 8px gap, and the input shrinks (flex 1 1 0, min-width 0) rather than\n * pushing the button onto a second line. That is what makes it survive the\n * 260px integration card and the 390px phone viewport with the same markup.\n * A labelled button leaves the card's field too narrow for its own\n * placeholder, so set Submit to \"Arrow\" there: a square at the row height.\n *\n * Row height and type come from FIELD_CSS in useLeadCapture.tsx, shared with\n * ToolRequestForm so the two forms on /integrations cannot differ. The input\n * uses --trf-ifs rather than a fixed size; see the note in that file for why\n * the input and the button label are two separate variables.\n *\n * Heading and Description are plain strings. Empty means they are not\n * rendered at all.\n *\n * Radius follows the project scale: 8 for controls, 12 for the dialog surface.\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 260\n * @framerIntrinsicHeight 44\n */const Z_INDEX=2147483e3;const STYLE_ID=\"franklin-notify-styles\";const DIALOG_CSS=`\n.fk-nf-root{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;}\n.fk-nf-backdrop{position:absolute;inset:0;background:rgba(8,12,10,.82);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);}\n.fk-nf-panel{position:relative;width:100%;max-width:520px;padding:32px;border-radius:12px;box-shadow:0 2em 6em rgba(0,0,0,.5);}\n.fk-nf-close{position:absolute;top:16px;right:16px;width:32px;height:32px;border:0;border-radius:50%;background:rgba(35,35,35,.06);color:${INK};cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;}\n.fk-nf-close:hover{background:rgba(35,35,35,.12);}\n.fk-nf-close:focus-visible{outline:2px solid ${BRAND};outline-offset:2px;}\n.fk-nf-trigger{margin:0;padding:0;border:0;background:none;font:inherit;color:inherit;cursor:pointer;appearance:none;-webkit-appearance:none;}\n`;/* Re-sync rather than bail when the tag exists: Framer hot-swaps the module\n   without reloading the page, so an early return leaves the previous build's\n   CSS in place. */function ensureStyles(){if(typeof document===\"undefined\")return;let el=document.getElementById(STYLE_ID);if(!el){el=document.createElement(\"style\");el.id=STYLE_ID;document.head.appendChild(el);}if(el.textContent!==DIALOG_CSS)el.textContent=DIALOG_CSS;}/* \"{name}\" in a string is replaced with the interest label, so one line in the\n   property panel serves every integration when it is bound from the CMS. */function fill(template,label){return template.replace(/\\{name\\}/g,label||\"this\");}export default function NotifyForm(props){const{mode,interestId,interestLabel,source,destination,portalId,formId,interestProperty,sourceProperty,endpoint,payloadFormat,fireAndForget,triggerLabel,triggerStyle,heading,description,emailPlaceholder,buttonLabel,submittingLabel,submitStyle,showArrow,successMessage,errorMessage,invalidEmailMessage,consentRequiredMessage,consentMode,consentText,subscriptionTypeId,fieldBackground,buttonBackground,buttonLabelColor,textColor,panelBackground,radius,style}=props;const[email,setEmail]=useState(\"\");const[consent,setConsent]=useState(false);const[trap,setTrap]=useState(\"\");const[hover,setHover]=useState(false);const[isOpen,setIsOpen]=useState(false);const inputRef=useRef(null);const panelRef=useRef(null);const lastFocused=useRef(null);const{status,message,submit,reset}=useLeadCapture({destination,portalId,formId,interestProperty,sourceProperty,endpoint,payloadFormat,fireAndForget,interestId,interestLabel,source,successMessage,errorMessage,invalidEmailMessage,consentRequiredMessage,consentMode,consentText,subscriptionTypeId});ensureStyles();const isCanvas=RenderTarget.current()===RenderTarget.canvas;const showing=isOpen&&!isCanvas;useEffect(()=>{if(!showing)return;const previousOverflow=document.documentElement.style.overflow;document.documentElement.style.overflow=\"hidden\";window.setTimeout(()=>inputRef.current?.focus(),0);const onKeyDown=event=>{if(event.key===\"Escape\"){setIsOpen(false);return;}if(event.key!==\"Tab\")return;const panel=panelRef.current;if(!panel)return;const focusables=panel.querySelectorAll('button, input, [href], [tabindex]:not([tabindex=\"-1\"])');if(!focusables.length)return;const first=focusables[0];const last=focusables[focusables.length-1];if(event.shiftKey&&document.activeElement===first){event.preventDefault();last.focus();}else if(!event.shiftKey&&document.activeElement===last){event.preventDefault();first.focus();}};document.addEventListener(\"keydown\",onKeyDown);return()=>{document.documentElement.style.overflow=previousOverflow;document.removeEventListener(\"keydown\",onKeyDown);};},[showing]);/* Clear the field on success so a second signup starts empty, and so the\n       address is not left sitting in the DOM. */useEffect(()=>{if(status===\"success\")setEmail(\"\");},[status]);/* The trigger usually sits INSIDE the card's own <a> on /integrations, so\n       the click has to be stopped here or the page navigates to the guide the\n       moment the dialog opens. Framer wraps the whole card in one link; this\n       is not hypothetical. */function open(event){event?.preventDefault();event?.stopPropagation();/* A fixed overlay on canvas would cover the whole editor, so the\n           portal is off there. Say so out loud, otherwise it just looks like\n           a trigger that does nothing. */if(isCanvas){console.info(\"[NotifyForm] The dialog opens in Preview, not on canvas.\");return;}lastFocused.current=document.activeElement;reset();setIsOpen(true);}function close(){setIsOpen(false);const previous=lastFocused.current;if(previous&&typeof previous.focus===\"function\")previous.focus();}function handleSubmit(event){event.preventDefault();/* Inline on a card means this form sits inside the card's link too, so\n           the same guard the dialog trigger needs applies to submitting. */event.stopPropagation();submit({email,consent,trap});}const submitting=status===\"submitting\";/* The arrow-only square is not a shrunken button, it is the arrow box from\n       Franklin's split primary button standing on its own. That is why it is\n       square at the row height rather than a smaller pill. */const arrowOnly=submitStyle===\"arrow\"&&mode===\"inline\";/* flex 1 1 0 with min-width 0 is what lets the input give way instead of\n       forcing a wrap. A min-width above zero would reintroduce the overflow\n       the nowrap row exists to avoid. */const fieldStyle={flex:\"1 1 0%\",minWidth:0,height:\"var(--trf-h)\",padding:\"0 var(--trf-fpx)\",background:fieldBackground,borderRadius:radius,border:`1px solid ${HAIRLINE}`,outline:\"none\",fontFamily:'\"Geist\", sans-serif',fontWeight:400,// 15px on a mouse, 16px on a finger. See FIELD_CSS.\nfontSize:\"var(--trf-ifs)\",lineHeight:\"1.4em\",color:textColor,appearance:\"none\",WebkitAppearance:\"none\",transition:`border-color ${DURATION} ${EASE}`};function renderForm(inDialog){if(status===\"success\"){return /*#__PURE__*/_jsxs(\"div\",{className:\"fk-trf\",style:{display:\"flex\",alignItems:\"center\",justifyContent:inDialog?\"center\":\"flex-start\",minHeight:\"var(--trf-h)\",fontFamily:'\"Geist\", sans-serif',fontSize:15,lineHeight:\"1.4em\",color:textColor},children:[/*#__PURE__*/_jsx(\"style\",{children:FIELD_CSS}),message]});}return /*#__PURE__*/_jsxs(\"form\",{className:\"fk-trf\",onSubmit:handleSubmit,noValidate:true,style:{display:\"flex\",flexDirection:\"column\",gap:10,width:\"100%\"},children:[/*#__PURE__*/_jsx(\"style\",{children:FIELD_CSS}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"row\",flexWrap:\"nowrap\",alignItems:\"center\",gap:8,width:\"100%\"},children:[/*#__PURE__*/_jsx(\"input\",{ref:inputRef,type:\"email\",name:\"email\",autoComplete:\"email\",required:true,placeholder:emailPlaceholder,value:email,onChange:e=>setEmail(e.target.value),onClick:e=>e.stopPropagation(),style:fieldStyle,onFocus:e=>e.currentTarget.style.borderColor=BRAND,onBlur:e=>e.currentTarget.style.borderColor=HAIRLINE}),/*#__PURE__*/_jsx(\"input\",{type:\"text\",name:\"company\",tabIndex:-1,autoComplete:\"off\",\"aria-hidden\":\"true\",value:trap,onChange:e=>setTrap(e.target.value),style:{position:\"absolute\",width:1,height:1,opacity:0,pointerEvents:\"none\",left:\"-9999px\"}}),/*#__PURE__*/_jsx(\"button\",{type:\"submit\",disabled:submitting,\"aria-label\":arrowOnly?buttonLabel:undefined,title:arrowOnly?buttonLabel:undefined,onMouseEnter:()=>setHover(true),onMouseLeave:()=>setHover(false),style:{display:\"flex\",alignItems:\"center\",justifyContent:\"center\",gap:arrowOnly?0:8,flex:\"none\",height:\"var(--trf-h)\",width:arrowOnly?\"var(--trf-h)\":undefined,padding:arrowOnly?0:showArrow?\"0 var(--trf-bax) 0 var(--trf-bpx)\":\"0 var(--trf-bpx)\",background:buttonBackground,borderRadius:radius,border:\"none\",cursor:submitting?\"wait\":\"pointer\",fontFamily:'\"Geist\", sans-serif',fontWeight:500,fontSize:\"var(--trf-fs)\",lineHeight:\"var(--trf-lh)\",letterSpacing:\"var(--trf-ls)\",color:buttonLabelColor,whiteSpace:\"nowrap\",opacity:submitting?.6:1,filter:hover&&!submitting?\"brightness(1.35)\":\"brightness(1)\",transition:`filter ${DURATION} ${EASE}, opacity ${DURATION} ${EASE}`},children:arrowOnly?/*#__PURE__*/_jsx(ArrowGlyph,{color:buttonLabelColor}):/*#__PURE__*/_jsxs(_Fragment,{children:[submitting?submittingLabel:buttonLabel,showArrow&&!submitting&&/*#__PURE__*/_jsx(ArrowGlyph,{color:buttonLabelColor})]})})]}),consentMode===\"checkbox\"&&/*#__PURE__*/_jsxs(\"label\",{style:{display:\"flex\",alignItems:\"flex-start\",gap:8,fontFamily:'\"Geist\", sans-serif',fontSize:13,lineHeight:\"1.4em\",color:textColor,opacity:.7,cursor:\"pointer\"},children:[/*#__PURE__*/_jsx(\"input\",{type:\"checkbox\",checked:consent,onChange:e=>setConsent(e.target.checked),onClick:e=>e.stopPropagation(),style:{marginTop:2,accentColor:BRAND}}),/*#__PURE__*/_jsx(\"span\",{children:consentText})]}),consentMode===\"notice\"&&consentText&&/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:'\"Geist\", sans-serif',fontSize:13,lineHeight:\"1.4em\",color:textColor,opacity:.6},children:consentText}),status===\"error\"&&message&&/*#__PURE__*/_jsx(\"div\",{role:\"alert\",style:{fontFamily:'\"Geist\", sans-serif',fontSize:13,lineHeight:\"1.4em\",color:textColor,opacity:.7},children:message})]});}if(mode===\"inline\"){return /*#__PURE__*/_jsxs(\"div\",{style:{...style,width:\"100%\"},children:[heading&&/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:'\"Geist\", sans-serif',fontWeight:500,fontSize:18,lineHeight:\"1.2em\",letterSpacing:\"-0.36px\",color:textColor,marginBottom:description?6:12},children:fill(heading,interestLabel)}),description&&/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:'\"Geist\", sans-serif',fontSize:15,lineHeight:\"1.4em\",color:textColor,opacity:.7,marginBottom:12},children:fill(description,interestLabel)}),renderForm(false)]});}/* Hover goes toward Surface/Brand, never toward accent green. Accent green\n       is a surface colour in this system, never a text colour. */const triggerVisual=triggerStyle===\"pill\"?{display:\"inline-flex\",alignItems:\"center\",height:28,padding:\"0 12px\",borderRadius:999,border:`1px solid ${HAIRLINE}`,background:WHITE,fontFamily:'\"Geist\", sans-serif',fontWeight:500,fontSize:12,letterSpacing:\"-0.28px\",color:hover?BRAND:textColor,transition:`color ${DURATION} ${EASE}`}:{display:\"inline-flex\",alignItems:\"center\",gap:4,fontFamily:'\"Geist\", sans-serif',fontWeight:500,fontSize:15,letterSpacing:\"-0.3px\",color:hover?BRAND:textColor,textDecoration:\"underline\",transition:`color ${DURATION} ${EASE}`};return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"fk-nf-trigger\",style:{...style,width:\"fit-content\"},onClick:open,onKeyDown:e=>{/* Enter and Space already fire onClick on a <button>, but\n                       an enclosing link would answer them as well. */if(e.key===\"Enter\"||e.key===\" \")e.stopPropagation();},onMouseEnter:()=>setHover(true),onMouseLeave:()=>setHover(false),\"aria-haspopup\":\"dialog\",children:/*#__PURE__*/_jsxs(\"span\",{style:triggerVisual,children:[triggerLabel,triggerStyle===\"link\"&&/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",children:\"→\"})]})}),showing&&typeof document!==\"undefined\"&&/*#__PURE__*/createPortal(/*#__PURE__*/_jsxs(\"div\",{className:\"fk-nf-root\",style:{zIndex:Z_INDEX},children:[/*#__PURE__*/_jsx(\"div\",{className:\"fk-nf-backdrop\",onClick:close}),/*#__PURE__*/_jsxs(\"div\",{ref:panelRef,className:\"fk-nf-panel\",role:\"dialog\",\"aria-modal\":\"true\",\"aria-label\":fill(heading,interestLabel),style:{background:panelBackground},children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"fk-nf-close\",\"aria-label\":\"Close\",onClick:close,children:/*#__PURE__*/_jsx(\"svg\",{width:\"12\",height:\"12\",viewBox:\"0 0 16 16\",fill:\"none\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M2 2L14 14M14 2L2 14\",stroke:\"currentColor\",strokeWidth:\"1.75\"})})}),/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:'\"Instrument Serif\", serif',fontSize:36,lineHeight:\"1.1em\",letterSpacing:\"-0.5px\",color:textColor,marginBottom:description?8:20,paddingRight:32},children:fill(heading,interestLabel)}),description&&/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:'\"Geist\", sans-serif',fontSize:15,lineHeight:\"1.4em\",color:textColor,opacity:.7,marginBottom:20},children:fill(description,interestLabel)}),renderForm(true)]})]}),document.body)]});}NotifyForm.defaultProps={mode:\"inline\",interestId:\"\",interestLabel:\"\",source:\"Integration card\",destination:\"hubspot\",portalId:\"\",formId:\"\",interestProperty:\"waitlist_interest\",sourceProperty:\"waitlist_source\",endpoint:\"\",payloadFormat:\"form\",fireAndForget:false,triggerLabel:\"Get notified\",triggerStyle:\"link\",heading:\"\",description:\"Not live yet. Leave your email and we will tell you the day it ships.\",emailPlaceholder:\"Your email\",buttonLabel:\"Notify me\",submittingLabel:\"Sending...\",submitStyle:\"label\",showArrow:true,successMessage:\"You are on the list. We will let you know.\",errorMessage:\"Something went wrong. Please try again.\",invalidEmailMessage:\"Please enter a valid email address.\",consentRequiredMessage:\"Please accept the terms to continue.\",consentMode:\"none\",consentText:\"We use your email only to tell you when this goes live. See our privacy policy.\",subscriptionTypeId:\"\",fieldBackground:WHITE,buttonBackground:BRAND,buttonLabelColor:WHITE,textColor:INK,panelBackground:\"#F7F7F5\",radius:8};addPropertyControls(NotifyForm,{mode:{type:ControlType.Enum,title:\"Mode\",options:[\"inline\",\"dialog\"],optionTitles:[\"Inline\",\"Dialog\"],defaultValue:\"inline\",displaySegmentedControl:true,description:\"Inline puts the field row in the layout. Dialog only where a row will not fit.\"},interestId:{type:ControlType.String,title:\"Interest ID\",placeholder:\"exact-online\",description:\"Bind to the CMS slug. This is what tells you which thing the lead signed up for.\"},interestLabel:{type:ControlType.String,title:\"Interest name\",placeholder:\"Exact Online\",description:\"Bind to the CMS name. Fills {name} in the copy.\"},source:{type:ControlType.String,title:\"Source\",defaultValue:\"Integration card\",description:\"Which surface the signup came from.\"},destination:{type:ControlType.Enum,title:\"Send to\",options:[\"hubspot\",\"webhook\"],optionTitles:[\"HubSpot\",\"Webhook\"],defaultValue:\"hubspot\",displaySegmentedControl:true},portalId:{type:ControlType.String,title:\"Portal ID\",placeholder:\"12345678\",hidden:props=>props.destination!==\"hubspot\"},formId:{type:ControlType.String,title:\"Form ID\",placeholder:\"GUID from the HubSpot form\",hidden:props=>props.destination!==\"hubspot\"},interestProperty:{type:ControlType.String,title:\"Interest field\",defaultValue:\"waitlist_interest\",description:\"Internal name of the HubSpot contact property. It must exist first.\",hidden:props=>props.destination!==\"hubspot\"},sourceProperty:{type:ControlType.String,title:\"Source field\",defaultValue:\"waitlist_source\",hidden:props=>props.destination!==\"hubspot\"},endpoint:{type:ControlType.String,title:\"Endpoint\",placeholder:\"https://hooks.zapier.com/...\",hidden:props=>props.destination!==\"webhook\"},payloadFormat:{type:ControlType.Enum,title:\"Body\",options:[\"form\",\"text\",\"json\"],optionTitles:[\"Form data\",\"Text (Sheets)\",\"JSON\"],defaultValue:\"form\",hidden:props=>props.destination!==\"webhook\"},fireAndForget:{type:ControlType.Boolean,title:\"No CORS\",defaultValue:false,hidden:props=>props.destination!==\"webhook\"},triggerLabel:{type:ControlType.String,title:\"Trigger\",defaultValue:\"Get notified\",hidden:props=>props.mode!==\"dialog\"},triggerStyle:{type:ControlType.Enum,title:\"Trigger as\",options:[\"link\",\"pill\"],optionTitles:[\"Link\",\"Pill\"],defaultValue:\"link\",displaySegmentedControl:true,hidden:props=>props.mode!==\"dialog\"},heading:{type:ControlType.String,title:\"Heading\",placeholder:\"Get notified when {name} is live\",description:\"Leave empty for no heading. {name} becomes the integration name.\"},description:{type:ControlType.String,title:\"Description\",displayTextArea:true,defaultValue:\"Not live yet. Leave your email and we will tell you the day it ships.\",description:\"On a card this stands in for the CMS card description, so keep it short.\"},emailPlaceholder:{type:ControlType.String,title:\"Email hint\",defaultValue:\"Your email\"},buttonLabel:{type:ControlType.String,title:\"Button\",defaultValue:\"Notify me\",description:\"With Submit set to Arrow this becomes the button's accessible label.\"},submittingLabel:{type:ControlType.String,title:\"Sending\",defaultValue:\"Sending...\"},submitStyle:{type:ControlType.Enum,title:\"Submit\",options:[\"label\",\"arrow\"],optionTitles:[\"Label\",\"Arrow\"],defaultValue:\"label\",displaySegmentedControl:true,description:\"Arrow is a square at the row height. Use it on the cards: a labelled button leaves the field too narrow for its own placeholder.\",hidden:props=>props.mode!==\"inline\"},showArrow:{type:ControlType.Boolean,title:\"Arrow\",defaultValue:true,hidden:props=>props.submitStyle===\"arrow\"},successMessage:{type:ControlType.String,title:\"Success\",displayTextArea:true,defaultValue:\"You are on the list. We will let you know.\"},errorMessage:{type:ControlType.String,title:\"Error\",displayTextArea:true,defaultValue:\"Something went wrong. Please try again.\"},invalidEmailMessage:{type:ControlType.String,title:\"Invalid email\",defaultValue:\"Please enter a valid email address.\"},consentRequiredMessage:{type:ControlType.String,title:\"Missing consent\",defaultValue:\"Please accept the terms to continue.\",hidden:props=>props.consentMode!==\"checkbox\"},consentMode:{type:ControlType.Enum,title:\"Consent\",options:[\"none\",\"notice\",\"checkbox\"],optionTitles:[\"None\",\"Notice\",\"Checkbox\"],defaultValue:\"none\",description:\"Notice shows the line only. Checkbox requires a tick and sends explicit consent to HubSpot.\"},consentText:{type:ControlType.String,title:\"Consent text\",displayTextArea:true,defaultValue:\"We use your email only to tell you when this goes live. See our privacy policy.\",hidden:props=>props.consentMode===\"none\"},subscriptionTypeId:{type:ControlType.String,title:\"Subscription\",placeholder:\"HubSpot subscription type ID\",description:\"Only needed with the checkbox mode and a HubSpot subscription type.\",hidden:props=>props.consentMode!==\"checkbox\"||props.destination!==\"hubspot\"},fieldBackground:{type:ControlType.Color,title:\"Field bg\",defaultValue:WHITE},buttonBackground:{type:ControlType.Color,title:\"Button bg\",defaultValue:BRAND},buttonLabelColor:{type:ControlType.Color,title:\"Button text\",defaultValue:WHITE},textColor:{type:ControlType.Color,title:\"Text\",defaultValue:INK},panelBackground:{type:ControlType.Color,title:\"Panel bg\",defaultValue:\"#F7F7F5\",hidden:props=>props.mode!==\"dialog\"},radius:{type:ControlType.Number,title:\"Radius\",defaultValue:8,min:0,max:24,step:1,unit:\"px\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"NotifyForm\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"+VAmDmB,SAAS,IAAc,CAAC,GAAG,OAAO,SAAW,IAAY,OAAO,IAAI,EAAG,SAAS,eAAe,CAAQ,EAAM,IAAI,EAAG,SAAS,cAAc,OAAO,EAAE,EAAG,GAAG,EAAS,SAAS,KAAK,YAAY,CAAE,GAAM,EAAG,cAAc,IAAW,EAAG,YAAY,EAAW,CAClM,SAAS,EAAK,EAAS,EAAM,CAAC,OAAO,EAAS,QAAQ,YAAY,GAAO,MAAM,CAAE,CAAC,SAAwB,EAAW,EAAM,CAAC,GAAK,CAAC,OAAK,aAAW,gBAAc,SAAO,cAAY,WAAS,UAAO,mBAAiB,kBAAe,WAAS,gBAAc,gBAAc,eAAa,eAAa,UAAQ,cAAY,oBAAiB,cAAY,mBAAgB,eAAY,YAAU,kBAAe,gBAAa,uBAAoB,0BAAuB,cAAY,cAAY,sBAAmB,mBAAgB,oBAAiB,mBAAiB,YAAU,mBAAgB,SAAO,SAAO,EAAW,CAAC,EAAM,GAAUA,EAAS,EAAE,EAAO,CAAC,EAAQ,IAAYA,EAAS,EAAK,EAAO,CAAC,EAAK,IAASA,EAAS,EAAE,EAAO,CAAC,EAAM,GAAUA,EAAS,EAAK,EAAO,CAAC,GAAO,GAAWA,EAAS,EAAK,EAAQ,EAASC,EAAO,IAAI,EAAQ,EAASA,EAAO,IAAI,EAAQ,EAAYA,EAAO,IAAI,EAAO,CAAC,SAAO,UAAQ,UAAO,UAAO,GAAe,CAAC,cAAY,WAAS,UAAO,mBAAiB,kBAAe,WAAS,gBAAc,gBAAc,aAAW,gBAAc,SAAO,kBAAe,gBAAa,uBAAoB,0BAAuB,cAAY,cAAY,qBAAkB,CAAC,EAAE,GAAa,EAAE,IAAM,GAAS,EAAa,QAAQ,IAAI,EAAa,OAAa,EAAQ,IAAQ,CAAC,GAAS,MAAc,CAAC,GAAG,CAAC,EAAQ,OAAO,IAAM,EAAiB,SAAS,gBAAgB,MAAM,SAAS,SAAS,gBAAgB,MAAM,SAAS,SAAS,EAAO,eAAe,EAAS,SAAS,MAAM,EAAE,CAAC,EAAE,IAAM,EAAU,GAAO,CAAC,GAAG,EAAM,MAAM,SAAS,CAAC,EAAU,EAAK,EAAE,MAAO,CAAC,GAAG,EAAM,MAAM,MAAM,OAAO,IAAM,EAAM,EAAS,QAAQ,GAAG,CAAC,EAAM,OAAO,IAAM,EAAW,EAAM,iBAAiB,wDAAwD,EAAE,GAAG,CAAC,EAAW,OAAO,OAAO,IAAM,EAAM,EAAW,GAAS,EAAK,EAAW,EAAW,OAAO,GAAM,EAAM,UAAU,SAAS,gBAAgB,GAAO,EAAM,eAAe,EAAE,EAAK,MAAM,GAAW,CAAC,EAAM,UAAU,SAAS,gBAAgB,IAAM,EAAM,eAAe,EAAE,EAAM,MAAM,EAAG,EAAiD,OAA/C,SAAS,iBAAiB,UAAU,CAAS,MAAY,CAAC,SAAS,gBAAgB,MAAM,SAAS,EAAiB,SAAS,oBAAoB,UAAU,CAAS,CAAE,CAAE,EAAE,CAAC,CAAO,CAAC,EACnpE,MAAc,CAAI,IAAS,WAAU,EAAS,EAAE,CAAE,EAAE,CAAC,CAAM,CAAC,EAG/E,SAAS,GAAK,EAAM,CAER,GAFS,GAAO,eAAe,EAAE,GAAO,gBAAgB,EAErD,GAAS,CAAC,QAAQ,KAAK,0DAA0D,EAAE,MAAO,CAAC,EAAY,QAAQ,SAAS,cAAc,GAAM,EAAE,EAAU,EAAI,CAAE,CAAC,SAAS,IAAO,CAAC,EAAU,EAAK,EAAE,IAAM,EAAS,EAAY,QAAW,GAAU,OAAO,EAAS,OAAQ,YAAW,EAAS,MAAM,CAAE,CAAC,SAAS,GAAa,EAAM,CAAC,EAAM,eAAe,EACzT,EAAM,gBAAgB,EAAE,GAAO,CAAC,QAAM,UAAQ,MAAI,CAAC,CAAE,CAAC,IAAM,EAAW,IAAS,aAExF,EAAU,KAAc,SAAS,IAAO,SAE7D,GAAW,CAAC,KAAK,SAAS,SAAS,EAAE,OAAO,eAAe,QAAQ,mBAAmB,WAAW,GAAgB,aAAa,EAAO,OAAO,aAAa,IAAW,QAAQ,OAAO,WAAW,sBAAsB,WAAW,IAC9Q,SAAS,iBAAiB,WAAW,QAAQ,MAAM,EAAU,WAAW,OAAO,iBAAiB,OAAO,WAAW,gBAAgB,EAAS,GAAG,GAAM,EAAE,SAAS,GAAW,EAAS,CAAoV,OAAhV,IAAS,UAA+B,EAAM,MAAM,CAAC,UAAU,SAAS,MAAM,CAAC,QAAQ,OAAO,WAAW,SAAS,eAAe,EAAS,SAAS,aAAa,UAAU,eAAe,WAAW,sBAAsB,SAAS,GAAG,WAAW,QAAQ,MAAM,CAAS,EAAE,SAAS,CAAc,EAAK,QAAQ,CAAC,SAAS,CAAS,CAAC,EAAE,CAAO,CAAC,CAAC,EAAuB,EAAM,OAAO,CAAC,UAAU,SAAS,SAAS,GAAa,WAAW,GAAK,MAAM,CAAC,QAAQ,OAAO,cAAc,SAAS,IAAI,GAAG,MAAM,MAAM,EAAE,SAAS,CAAc,EAAK,QAAQ,CAAC,SAAS,CAAS,CAAC,EAAe,EAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,cAAc,MAAM,SAAS,SAAS,WAAW,SAAS,IAAI,EAAE,MAAM,MAAM,EAAE,SAAS,CAAc,EAAK,QAAQ,CAAC,IAAI,EAAS,KAAK,QAAQ,KAAK,QAAQ,aAAa,QAAQ,SAAS,GAAK,YAAY,GAAiB,MAAM,EAAM,SAAS,GAAG,EAAS,EAAE,OAAO,KAAK,EAAE,QAAQ,GAAG,EAAE,gBAAgB,EAAE,MAAM,GAAW,QAAQ,GAAG,EAAE,cAAc,MAAM,YAAY,EAAM,OAAO,GAAG,EAAE,cAAc,MAAM,YAAY,CAAQ,CAAC,EAAe,EAAK,QAAQ,CAAC,KAAK,OAAO,KAAK,UAAU,SAAS,GAAG,aAAa,MAAM,cAAc,OAAO,MAAM,EAAK,SAAS,GAAG,GAAQ,EAAE,OAAO,KAAK,EAAE,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,OAAO,KAAK,SAAS,CAAC,CAAC,EAAe,EAAK,SAAS,CAAC,KAAK,SAAS,SAAS,EAAW,aAAa,EAAU,EAAY,IAAA,GAAU,MAAM,EAAU,EAAY,IAAA,GAAU,iBAAiB,EAAS,EAAI,EAAE,iBAAiB,EAAS,EAAK,EAAE,MAAM,CAAC,QAAQ,OAAO,WAAW,SAAS,eAAe,SAAS,IAAI,EAAU,EAAE,EAAE,KAAK,OAAO,OAAO,eAAe,MAAM,EAAU,eAAe,IAAA,GAAU,QAAQ,EAAU,EAAE,EAAU,oCAAoC,mBAAmB,WAAW,GAAiB,aAAa,EAAO,OAAO,OAAO,OAAO,EAAW,OAAO,UAAU,WAAW,sBAAsB,WAAW,IAAI,SAAS,gBAAgB,WAAW,gBAAgB,cAAc,gBAAgB,MAAM,EAAiB,WAAW,SAAS,QAAQ,EAAW,GAAG,EAAE,OAAO,GAAO,CAAC,EAAW,mBAAmB,gBAAgB,WAAW,UAAU,EAAS,GAAG,EAAK,YAAY,EAAS,GAAG,GAAM,EAAE,SAAS,EAAuB,EAAK,GAAW,CAAC,MAAM,CAAgB,CAAC,EAAe,EAAMC,EAAU,CAAC,SAAS,CAAC,EAAW,GAAgB,EAAY,GAAW,CAAC,GAAyB,EAAK,GAAW,CAAC,MAAM,CAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAc,YAAyB,EAAM,QAAQ,CAAC,MAAM,CAAC,QAAQ,OAAO,WAAW,aAAa,IAAI,EAAE,WAAW,sBAAsB,SAAS,GAAG,WAAW,QAAQ,MAAM,EAAU,QAAQ,GAAG,OAAO,SAAS,EAAE,SAAS,CAAc,EAAK,QAAQ,CAAC,KAAK,WAAW,QAAQ,EAAQ,SAAS,GAAG,GAAW,EAAE,OAAO,OAAO,EAAE,QAAQ,GAAG,EAAE,gBAAgB,EAAE,MAAM,CAAC,UAAU,EAAE,YAAA,SAAiB,CAAC,CAAC,EAAe,EAAK,OAAO,CAAC,SAAS,CAAW,CAAC,CAAC,CAAC,CAAC,EAAE,IAAc,UAAU,GAA0B,EAAK,MAAM,CAAC,MAAM,CAAC,WAAW,sBAAsB,SAAS,GAAG,WAAW,QAAQ,MAAM,EAAU,QAAQ,EAAE,EAAE,SAAS,CAAW,CAAC,EAAE,IAAS,SAAS,GAAsB,EAAK,MAAM,CAAC,KAAK,QAAQ,MAAM,CAAC,WAAW,sBAAsB,SAAS,GAAG,WAAW,QAAQ,MAAM,EAAU,QAAQ,EAAE,EAAE,SAAS,CAAO,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,GAAG,IAAO,SAAU,OAAoB,EAAM,MAAM,CAAC,MAAM,CAAC,GAAG,EAAM,MAAM,MAAM,EAAE,SAAS,CAAC,GAAsB,EAAK,MAAM,CAAC,MAAM,CAAC,WAAW,sBAAsB,WAAW,IAAI,SAAS,GAAG,WAAW,QAAQ,cAAc,UAAU,MAAM,EAAU,aAAa,EAAY,EAAE,EAAE,EAAE,SAAS,EAAK,EAAQ,CAAa,CAAC,CAAC,EAAE,GAA0B,EAAK,MAAM,CAAC,MAAM,CAAC,WAAW,sBAAsB,SAAS,GAAG,WAAW,QAAQ,MAAM,EAAU,QAAQ,GAAG,aAAa,EAAE,EAAE,SAAS,EAAK,EAAY,CAAa,CAAC,CAAC,EAAE,GAAW,EAAK,CAAC,CAAC,CAAC,EACnxH,IAAM,GAAc,IAAe,OAAO,CAAC,QAAQ,cAAc,WAAW,SAAS,OAAO,GAAG,QAAQ,SAAS,aAAa,IAAI,OAAO,aAAa,IAAW,WAAW,EAAM,WAAW,sBAAsB,WAAW,IAAI,SAAS,GAAG,cAAc,UAAU,MAAM,EAAM,EAAM,EAAU,WAAW,SAAS,EAAS,GAAG,GAAM,EAAE,CAAC,QAAQ,cAAc,WAAW,SAAS,IAAI,EAAE,WAAW,sBAAsB,WAAW,IAAI,SAAS,GAAG,cAAc,SAAS,MAAM,EAAM,EAAM,EAAU,eAAe,YAAY,WAAW,SAAS,EAAS,GAAG,GAAM,EAAE,OAAoB,EAAMA,EAAU,CAAC,SAAS,CAAc,EAAK,SAAS,CAAC,KAAK,SAAS,UAAU,gBAAgB,MAAM,CAAC,GAAG,EAAM,MAAM,aAAa,EAAE,QAAQ,GAAK,UAAU,GAAG,EACvtB,EAAE,MAAM,SAAS,EAAE,MAAM,MAAI,EAAE,gBAAgB,CAAE,EAAE,iBAAiB,EAAS,EAAI,EAAE,iBAAiB,EAAS,EAAK,EAAE,gBAAgB,SAAS,SAAsB,EAAM,OAAO,CAAC,MAAM,GAAc,SAAS,CAAC,EAAa,IAAe,QAAqB,EAAK,OAAO,CAAC,cAAc,OAAO,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAS,OAAO,SAAW,KAA0B,GAA0B,EAAM,MAAM,CAAC,UAAU,aAAa,MAAM,CAAC,OAAO,CAAO,EAAE,SAAS,CAAc,EAAK,MAAM,CAAC,UAAU,iBAAiB,QAAQ,EAAK,CAAC,EAAe,EAAM,MAAM,CAAC,IAAI,EAAS,UAAU,cAAc,KAAK,SAAS,aAAa,OAAO,aAAa,EAAK,EAAQ,CAAa,EAAE,MAAM,CAAC,WAAW,EAAe,EAAE,SAAS,CAAc,EAAK,SAAS,CAAC,KAAK,SAAS,UAAU,cAAc,aAAa,QAAQ,QAAQ,GAAM,SAAsB,EAAK,MAAM,CAAC,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,cAAc,OAAO,SAAsB,EAAK,OAAO,CAAC,EAAE,uBAAuB,OAAO,eAAe,YAAY,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAe,EAAK,MAAM,CAAC,MAAM,CAAC,WAAW,4BAA4B,SAAS,GAAG,WAAW,QAAQ,cAAc,SAAS,MAAM,EAAU,aAAa,EAAY,EAAE,GAAG,aAAa,EAAE,EAAE,SAAS,EAAK,EAAQ,CAAa,CAAC,CAAC,EAAE,GAA0B,EAAK,MAAM,CAAC,MAAM,CAAC,WAAW,sBAAsB,SAAS,GAAG,WAAW,QAAQ,MAAM,EAAU,QAAQ,GAAG,aAAa,EAAE,EAAE,SAAS,EAAK,EAAY,CAAa,CAAC,CAAC,EAAE,GAAW,EAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,CAAC,CAAC,CAAC,CAAE,2BAlE98C,KAAiE,IAA6C,IAAoC,KACvC,EAwChL,EAAQ,UAAgB,EAAS,yBAA+B,EAAW;;;;2IAIuD,EAAI;;+CAEhG,EAAM;;EAmBw+C,EAAW,aAAa,CAAC,KAAK,SAAS,WAAW,GAAG,cAAc,GAAG,OAAO,mBAAmB,YAAY,UAAU,SAAS,GAAG,OAAO,GAAG,iBAAiB,oBAAoB,eAAe,kBAAkB,SAAS,GAAG,cAAc,OAAO,cAAc,GAAM,aAAa,eAAe,aAAa,OAAO,QAAQ,GAAG,YAAY,wEAAwE,iBAAiB,aAAa,YAAY,YAAY,gBAAgB,aAAa,YAAY,QAAQ,UAAU,GAAK,eAAe,6CAA6C,aAAa,0CAA0C,oBAAoB,sCAAsC,uBAAuB,uCAAuC,YAAY,OAAO,YAAY,kFAAkF,mBAAmB,GAAG,gBAAgB,EAAM,iBAAiB,EAAM,iBAAiB,EAAM,UAAU,EAAI,gBAAgB,UAAU,OAAO,CAAC,EAAE,EAAoB,EAAW,CAAC,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,QAAQ,CAAC,SAAS,QAAQ,EAAE,aAAa,CAAC,SAAS,QAAQ,EAAE,aAAa,SAAS,wBAAwB,GAAK,YAAY,gFAAgF,EAAE,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,YAAY,eAAe,YAAY,kFAAkF,EAAE,cAAc,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,YAAY,eAAe,YAAY,iDAAiD,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,mBAAmB,YAAY,qCAAqC,EAAE,YAAY,CAAC,KAAK,EAAY,KAAK,MAAM,UAAU,QAAQ,CAAC,UAAU,SAAS,EAAE,aAAa,CAAC,UAAU,SAAS,EAAE,aAAa,UAAU,wBAAwB,EAAI,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,YAAY,WAAW,OAAO,GAAO,EAAM,cAAc,SAAS,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,YAAY,6BAA6B,OAAO,GAAO,EAAM,cAAc,SAAS,EAAE,iBAAiB,CAAC,KAAK,EAAY,OAAO,MAAM,iBAAiB,aAAa,oBAAoB,YAAY,sEAAsE,OAAO,GAAO,EAAM,cAAc,SAAS,EAAE,eAAe,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,aAAa,kBAAkB,OAAO,GAAO,EAAM,cAAc,SAAS,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,YAAY,+BAA+B,OAAO,GAAO,EAAM,cAAc,SAAS,EAAE,cAAc,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,QAAQ,CAAC,OAAO,OAAO,MAAM,EAAE,aAAa,CAAC,YAAY,gBAAgB,MAAM,EAAE,aAAa,OAAO,OAAO,GAAO,EAAM,cAAc,SAAS,EAAE,cAAc,CAAC,KAAK,EAAY,QAAQ,MAAM,UAAU,aAAa,GAAM,OAAO,GAAO,EAAM,cAAc,SAAS,EAAE,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,aAAa,eAAe,OAAO,GAAO,EAAM,OAAO,QAAQ,EAAE,aAAa,CAAC,KAAK,EAAY,KAAK,MAAM,aAAa,QAAQ,CAAC,OAAO,MAAM,EAAE,aAAa,CAAC,OAAO,MAAM,EAAE,aAAa,OAAO,wBAAwB,GAAK,OAAO,GAAO,EAAM,OAAO,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,YAAY,mCAAmC,YAAY,kEAAkE,EAAE,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,gBAAgB,GAAK,aAAa,wEAAwE,YAAY,0EAA0E,EAAE,iBAAiB,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,aAAa,YAAY,EAAE,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,YAAY,YAAY,sEAAsE,EAAE,gBAAgB,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,aAAa,YAAY,EAAE,YAAY,CAAC,KAAK,EAAY,KAAK,MAAM,SAAS,QAAQ,CAAC,QAAQ,OAAO,EAAE,aAAa,CAAC,QAAQ,OAAO,EAAE,aAAa,QAAQ,wBAAwB,GAAK,YAAY,mIAAmI,OAAO,GAAO,EAAM,OAAO,QAAQ,EAAE,UAAU,CAAC,KAAK,EAAY,QAAQ,MAAM,QAAQ,aAAa,GAAK,OAAO,GAAO,EAAM,cAAc,OAAO,EAAE,eAAe,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,gBAAgB,GAAK,aAAa,4CAA4C,EAAE,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,gBAAgB,GAAK,aAAa,yCAAyC,EAAE,oBAAoB,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,aAAa,qCAAqC,EAAE,uBAAuB,CAAC,KAAK,EAAY,OAAO,MAAM,kBAAkB,aAAa,uCAAuC,OAAO,GAAO,EAAM,cAAc,UAAU,EAAE,YAAY,CAAC,KAAK,EAAY,KAAK,MAAM,UAAU,QAAQ,CAAC,OAAO,SAAS,UAAU,EAAE,aAAa,CAAC,OAAO,SAAS,UAAU,EAAE,aAAa,OAAO,YAAY,6FAA6F,EAAE,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,gBAAgB,GAAK,aAAa,kFAAkF,OAAO,GAAO,EAAM,cAAc,MAAM,EAAE,mBAAmB,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,YAAY,+BAA+B,YAAY,sEAAsE,OAAO,GAAO,EAAM,cAAc,YAAY,EAAM,cAAc,SAAS,EAAE,gBAAgB,CAAC,KAAK,EAAY,MAAM,MAAM,WAAW,aAAa,CAAK,EAAE,iBAAiB,CAAC,KAAK,EAAY,MAAM,MAAM,YAAY,aAAa,CAAK,EAAE,iBAAiB,CAAC,KAAK,EAAY,MAAM,MAAM,cAAc,aAAa,CAAK,EAAE,UAAU,CAAC,KAAK,EAAY,MAAM,MAAM,OAAO,aAAa,CAAG,EAAE,gBAAgB,CAAC,KAAK,EAAY,MAAM,MAAM,WAAW,aAAa,UAAU,OAAO,GAAO,EAAM,OAAO,QAAQ,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,IAAI,CAAC,CAAC"}