{"version":3,"file":"TallyForms.Bjyrf3eF.mjs","names":["useRef","useMemo","useCallback","__esmMin","init_npm_react_18_3_1","pe","ce","init_jsx_runtime","ne","c","de","addPropertyControls","ControlType","init_framer_D6uXRwWs","TallyForms","props","iframeRef","embedUrl","searchParams","title","alignLeft","background","url","form","matches","loadEmbeds","iframeEl","loadWidgetScript","scriptEl","WIDGET_URL","init_TallyForms"],"sources":["https:/framerusercontent.com/modules/wK8r9CRnmNFLJyrAjgYX/eAwoxCEH17J2KKURdLKv/TallyForms.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useCallback,useEffect,useMemo,useRef}from\"react\";import{addPropertyControls,ControlType}from\"framer\";const WIDGET_URL=\"https://tally.so/widgets/embed.js\";/**\n * @framerIntrinsicWidth 700\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight any\n */export default function TallyForms(props){const{form,title,alignLeft,background}=props;const iframeRef=useRef(null);const embedUrl=useMemo(()=>{const searchParams=new URLSearchParams({hideTitle:title?\"0\":\"1\",alignLeft:alignLeft?\"1\":\"0\",transparentBackground:background?\"0\":\"1\",dynamicHeight:\"1\",formEventsForwarding:\"1\"});let url=\"\";if(form.includes(\"tally.so/\")){// Tally link with form ID\nconst matches=form.match(/\\/(?:r|embed|popup|forms)\\/([a-zA-Z0-9]+)/);if(matches!==null){const formId=matches[1];url=`https://tally.so/embed/${formId}`;}}else if(form.startsWith(\"http\")&&form.includes(\".\")){// Custom domain\nurl=form;searchParams.set(\"embed\",\"1\");}// If we still don't have URL, we assume the form is the form ID itself\nif(!url){url=`https://tally.so/embed/${form}`;}// Append query params\nreturn`${url}?${searchParams.toString()}`;},[form,title,alignLeft,background]);const loadEmbeds=useCallback(()=>{// Remove initialized attribute if any, so we can reload\nconst iframeEl=iframeRef.current;if(iframeEl?.dataset?.tallyEmbedWidgetInitialized){iframeEl.removeAttribute(\"data-tally-embed-widget-initialized\");}// @ts-expect-error Tally is not defined in the global scope\nif(typeof Tally!==\"undefined\"){// @ts-expect-error Tally is not defined in the global scope\nTally.loadEmbeds();}else{document.querySelectorAll(\"iframe[data-tally-src]:not([src])\").forEach(e=>{e.src=e.dataset.tallySrc;});}},[]);const loadWidgetScript=useCallback(()=>{const scriptEl=document.createElement(\"script\");scriptEl.src=WIDGET_URL;scriptEl.onload=loadEmbeds;scriptEl.onerror=loadEmbeds;document.body.appendChild(scriptEl);},[loadEmbeds]);useEffect(()=>{const iframeEl=iframeRef.current;if(!iframeEl){return;}// @ts-expect-error Tally is not defined in the global scope\nif(typeof Tally!==\"undefined\"){/**\n             * Reset iframe to uninitialized state so Tally's widget can reinitialize it properly.\n             * This ensures dynamic height and all other Tally features work correctly.\n             */if(iframeEl.dataset.tallyEmbedWidgetInitialized){iframeEl.removeAttribute(\"data-tally-embed-widget-initialized\");iframeEl.removeAttribute(\"src\");iframeEl.style.height=\"\";// Force a reflow before calling loadEmbeds to ensure DOM updates are applied\nvoid iframeEl.offsetHeight;}// Use setTimeout to ensure the DOM has updated before Tally processes it\nsetTimeout(()=>{// @ts-expect-error Tally is not defined in the global scope\nif(typeof Tally!==\"undefined\"){// @ts-expect-error Tally is not defined in the global scope\nTally.loadEmbeds();}},0);}else if(document.querySelector(`script[src=\"${WIDGET_URL}\"]`)==null){loadWidgetScript();}},[embedUrl,loadWidgetScript]);return /*#__PURE__*/_jsx(\"iframe\",{ref:iframeRef,title:\"Tally form\",\"data-tally-src\":embedUrl,width:\"100%\",height:\"100%\",frameBorder:0,marginHeight:0,marginWidth:0});}addPropertyControls(TallyForms,{form:{type:ControlType.String,title:\"Form\",defaultValue:\"tally.so/r/3EKXW4\",description:\"Create a form in [Tally](https://tally.so?ref=framer) and copy the form link\"},title:{type:ControlType.Boolean,title:\"Title\",enabledTitle:\"Show\",disabledTitle:\"Hide\",defaultValue:false},alignLeft:{type:ControlType.Boolean,title:\"Align\",enabledTitle:\"Left\",disabledTitle:\"Center\",defaultValue:true},background:{type:ControlType.Boolean,title:\"Background\",enabledTitle:\"Show\",disabledTitle:\"Hide\",defaultValue:false}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"TallyForms\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicWidth\":\"700\",\"framerSupportedLayoutHeight\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TallyForms.map"],"mappings":"A,+LAIG,SAAwBc,EAAW,EAAM,CAAC,GAAK,CAAC,OAAK,QAAM,YAAU,cAAYC,EAAYC,EAAUhB,EAAO,IAAI,EAAQiB,EAAShB,MAAY,CAAC,IAAMiB,EAAa,IAAI,gBAAgB,CAAC,UAAUC,EAAM,IAAI,IAAI,UAAUC,EAAU,IAAI,IAAI,sBAAsBC,EAAW,IAAI,IAAI,cAAc,IAAI,qBAAqB,GAAG,CAAC,EAAMC,EAAI,GAAG,GAAGC,EAAK,SAAS,WAAW,EAAE,CAC9W,IAAMC,EAAQD,EAAK,MAAM,2CAA2C,EAAKC,IAAU,OAA8B,EAAI,0BAAfA,EAAQ,KAA2C,MAASD,EAAK,WAAW,MAAM,GAAGA,EAAK,SAAS,GAAG,IAC5M,EAAIA,EAAKL,EAAa,IAAI,QAAQ,GAAG,GAErC,MADA,CAASI,IAAI,0BAA0BC,IACjC,GAAGD,EAAI,GAAGJ,EAAa,SAAS,GAAI,EAAE,CAACK,EAAKJ,EAAMC,EAAUC,CAAU,CAAC,EAAQI,EAAWvB,MAAgB,CAChH,IAAMwB,EAASV,EAAU,QAAWU,GAAU,SAAS,6BAA6BA,EAAS,gBAAgB,qCAAqC,EAC/I,OAAO,MAAQ,IAClB,MAAM,WAAW,EAAQ,SAAS,iBAAiB,mCAAmC,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,QAAS,CAAC,CAAG,EAAE,CAAC,CAAC,EAAQC,EAAiBzB,MAAgB,CAAC,IAAM0B,EAAS,SAAS,cAAc,QAAQ,EAAE,EAAS,IAAIC,EAAW,EAAS,OAAOJ,EAAW,EAAS,QAAQA,EAAW,SAAS,KAAK,YAAYG,CAAQ,CAAE,EAAE,CAACH,CAAU,CAAC,EAQ9M,OARgNnB,MAAc,CAAC,IAAMoB,EAASV,EAAU,QAAYU,IACnZ,OAAO,MAAQ,KAGAA,EAAS,QAAQ,8BAA6BA,EAAS,gBAAgB,qCAAqC,EAAEA,EAAS,gBAAgB,KAAK,EAAE,EAAS,MAAM,OAAO,GACtLA,EAAc,cACd,eAAe,CACZ,OAAO,MAAQ,KAClB,MAAM,WAAW,CAAG,EAAE,CAAC,GAAW,SAAS,cAAc,eAAeG,EAAW,GAAG,GAASF,EAAiB,EAAG,EAAE,CAACV,EAASU,CAAgB,CAAC,EAAsB,gBAAK,SAAS,CAAC,IAAIX,EAAU,MAAM,aAAa,iBAAiBC,EAAS,MAAM,OAAO,OAAO,OAAO,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC,CAAE,C,gDAnB3J,EAAW,oCAmBiJN,EAAoBG,EAAW,CAAC,KAAK,CAAC,KAAKF,EAAY,OAAO,MAAM,OAAO,aAAa,oBAAoB,YAAY,8EAA8E,EAAE,MAAM,CAAC,KAAKA,EAAY,QAAQ,MAAM,QAAQ,aAAa,OAAO,cAAc,OAAO,aAAa,EAAK,EAAE,UAAU,CAAC,KAAKA,EAAY,QAAQ,MAAM,QAAQ,aAAa,OAAO,cAAc,SAAS,aAAa,EAAI,EAAE,WAAW,CAAC,KAAKA,EAAY,QAAQ,MAAM,aAAa,aAAa,OAAO,cAAc,OAAO,aAAa,EAAK,CAAC,CAAC,C"}